-
Notifications
You must be signed in to change notification settings - Fork 70
/
secret_builder.go
36 lines (31 loc) 路 1.02 KB
/
secret_builder.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
package builder
import (
"fmt"
mariadbv1alpha1 "github.com/mariadb-operator/mariadb-operator/api/v1alpha1"
metadata "github.com/mariadb-operator/mariadb-operator/pkg/builder/metadata"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/types"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
)
type SecretOpts struct {
Metadata []*mariadbv1alpha1.Metadata
Key types.NamespacedName
Data map[string][]byte
}
func (b *Builder) BuildSecret(opts SecretOpts, owner metav1.Object) (*corev1.Secret, error) {
objMetaBuilder :=
metadata.NewMetadataBuilder(opts.Key)
for _, meta := range opts.Metadata {
objMetaBuilder = objMetaBuilder.WithMetadata(meta)
}
objMeta := objMetaBuilder.Build()
secret := &corev1.Secret{
ObjectMeta: objMeta,
Data: opts.Data,
}
if err := controllerutil.SetControllerReference(owner, secret, b.scheme); err != nil {
return nil, fmt.Errorf("error setting controller reference to Secret: %v", err)
}
return secret, nil
}