move everything to src
All checks were successful
Build and Publish / build-release (push) Successful in 8m29s
All checks were successful
Build and Publish / build-release (push) Successful in 8m29s
This commit is contained in:
15
pkg/builder/builder.go
Normal file
15
pkg/builder/builder.go
Normal file
@@ -0,0 +1,15 @@
|
||||
package builder
|
||||
|
||||
import (
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
)
|
||||
|
||||
type Builder struct {
|
||||
scheme *runtime.Scheme
|
||||
}
|
||||
|
||||
func NewBuilder(scheme *runtime.Scheme) *Builder {
|
||||
return &Builder{
|
||||
scheme: scheme,
|
||||
}
|
||||
}
|
||||
21
pkg/builder/labels/labels.go
Normal file
21
pkg/builder/labels/labels.go
Normal file
@@ -0,0 +1,21 @@
|
||||
package builder
|
||||
|
||||
type LabelsBuilder struct {
|
||||
labels map[string]string
|
||||
}
|
||||
|
||||
func NewLabelsBuilder() *LabelsBuilder {
|
||||
return &LabelsBuilder{
|
||||
labels: map[string]string{},
|
||||
}
|
||||
}
|
||||
func (b *LabelsBuilder) WithLabels(labels map[string]string) *LabelsBuilder {
|
||||
for k, v := range labels {
|
||||
b.labels[k] = v
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *LabelsBuilder) Build() map[string]string {
|
||||
return b.labels
|
||||
}
|
||||
39
pkg/builder/metadata/metadata.go
Normal file
39
pkg/builder/metadata/metadata.go
Normal file
@@ -0,0 +1,39 @@
|
||||
package metadata
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
)
|
||||
|
||||
type MetadataBuilder struct {
|
||||
objMeta metav1.ObjectMeta
|
||||
}
|
||||
|
||||
func NewMetadataBuilder(key types.NamespacedName) *MetadataBuilder {
|
||||
return &MetadataBuilder{
|
||||
objMeta: metav1.ObjectMeta{
|
||||
Name: key.Name,
|
||||
Namespace: key.Namespace,
|
||||
Labels: map[string]string{},
|
||||
Annotations: map[string]string{},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
func (b *MetadataBuilder) WithLabels(labels map[string]string) *MetadataBuilder {
|
||||
for k, v := range labels {
|
||||
b.objMeta.Labels[k] = v
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *MetadataBuilder) WithAnnotations(annotations map[string]string) *MetadataBuilder {
|
||||
for k, v := range annotations {
|
||||
b.objMeta.Annotations[k] = v
|
||||
}
|
||||
return b
|
||||
}
|
||||
|
||||
func (b *MetadataBuilder) Build() metav1.ObjectMeta {
|
||||
return b.objMeta
|
||||
}
|
||||
35
pkg/builder/secret_builder.go
Normal file
35
pkg/builder/secret_builder.go
Normal file
@@ -0,0 +1,35 @@
|
||||
package builder
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
metadata "gitea.corredorconect.com/software-engineering/zitadel-resources-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 {
|
||||
Key types.NamespacedName
|
||||
Data map[string][]byte
|
||||
Labels map[string]string
|
||||
Annotations map[string]string
|
||||
Immutable bool
|
||||
}
|
||||
|
||||
func (b *Builder) BuildSecret(opts SecretOpts, owner metav1.Object) (*corev1.Secret, error) {
|
||||
objMeta :=
|
||||
metadata.NewMetadataBuilder(opts.Key).
|
||||
WithLabels(opts.Labels).
|
||||
WithAnnotations(opts.Annotations).
|
||||
Build()
|
||||
secret := &corev1.Secret{
|
||||
ObjectMeta: objMeta,
|
||||
Data: opts.Data,
|
||||
Immutable: &opts.Immutable,
|
||||
}
|
||||
if err := controllerutil.SetControllerReference(owner, secret, b.scheme); err != nil {
|
||||
return nil, fmt.Errorf("error setting controller reference in Secret manifest: %v", err)
|
||||
}
|
||||
return secret, nil
|
||||
}
|
||||
Reference in New Issue
Block a user