mirror of
https://github.com/storytold/irsa-manager.git
synced 2026-10-18 07:33:15 +00:00
apply keypair secret
This commit is contained in:
@@ -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
|
||||
}
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
Reference in New Issue
Block a user