apply keypair secret

This commit is contained in:
kkb0318
2024-04-10 23:08:23 +09:00
parent 0a81afa3f1
commit 720bc912b9
11 changed files with 149 additions and 59 deletions
-12
View File
@@ -1,12 +0,0 @@
package manifests
import (
"context"
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
)
type Handler interface {
Apply(ctx context.Context, obj *unstructured.Unstructured) error
Delete(ctx context.Context, obj *unstructured.Unstructured) error
}
+46 -1
View File
@@ -1,3 +1,48 @@
package manifests
// TODO: get keys from oidc, and create secret struct
import (
"fmt"
"github.com/kkb0318/irsa-manager/internal/selfhosted"
corev1 "k8s.io/api/core/v1"
v1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
type SecretBuilder struct {
data map[string][]byte
secretType corev1.SecretType
}
func NewSecretBuilder() *SecretBuilder {
return &SecretBuilder{
secretType: corev1.SecretTypeOpaque,
}
}
func (b *SecretBuilder) WithSSHKey(keyPair selfhosted.KeyPair) *SecretBuilder {
b.data = map[string][]byte{
"ssh-publickey": keyPair.PublicKey(),
corev1.SSHAuthPrivateKey: keyPair.PrivateKey(),
}
b.secretType = corev1.SecretTypeSSHAuth
return b
}
func (b *SecretBuilder) Build(name, ns string) (*corev1.Secret, error) {
if b.data == nil {
return nil, fmt.Errorf("Secret.Data is empty")
}
secret := &corev1.Secret{
ObjectMeta: v1.ObjectMeta{
Name: name,
Namespace: ns,
},
TypeMeta: v1.TypeMeta{
APIVersion: corev1.SchemeGroupVersion.String(),
Kind: "Secret",
},
Type: b.secretType,
Data: b.data,
}
return secret, nil
}
-8
View File
@@ -1,8 +0,0 @@
package manifests
import "context"
type Manifest interface {
Apply(ctx context.Context, handler Handler) error
Delete(ctx context.Context, handler Handler) error
}