From 7fbe8a3655c4b5709d3df55d12dba58f8d7b2ccf Mon Sep 17 00:00:00 2001 From: sbaier Date: Tue, 17 Nov 2020 14:41:19 +0100 Subject: [PATCH 1/5] fix template type --- pkg/apis/secretmanager/v1alpha1/externalsecret_types.go | 3 ++- pkg/apis/secretmanager/v1alpha1/zz_generated.deepcopy.go | 6 +----- pkg/controller/externalsecret/controller.go | 6 +++--- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/pkg/apis/secretmanager/v1alpha1/externalsecret_types.go b/pkg/apis/secretmanager/v1alpha1/externalsecret_types.go index 33d1c92..d2ee9c5 100644 --- a/pkg/apis/secretmanager/v1alpha1/externalsecret_types.go +++ b/pkg/apis/secretmanager/v1alpha1/externalsecret_types.go @@ -16,6 +16,7 @@ package v1alpha1 import ( smmeta "github.com/itscontained/secret-manager/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) @@ -37,7 +38,7 @@ type ExternalSecretSpec struct { // +kubebuilder:validation:Format=any // +kubebuilder:pruning:PreserveUnknownFields // +optional - Template []byte `json:"template,omitempty"` + Template runtime.RawExtension `json:"template,omitempty"` // Data is a list of references to secret values. // +optional diff --git a/pkg/apis/secretmanager/v1alpha1/zz_generated.deepcopy.go b/pkg/apis/secretmanager/v1alpha1/zz_generated.deepcopy.go index 2cd7b9f..61a76c9 100644 --- a/pkg/apis/secretmanager/v1alpha1/zz_generated.deepcopy.go +++ b/pkg/apis/secretmanager/v1alpha1/zz_generated.deepcopy.go @@ -199,11 +199,7 @@ func (in *ExternalSecretList) DeepCopyObject() runtime.Object { func (in *ExternalSecretSpec) DeepCopyInto(out *ExternalSecretSpec) { *out = *in out.StoreRef = in.StoreRef - if in.Template != nil { - in, out := &in.Template, &out.Template - *out = make([]byte, len(*in)) - copy(*out, *in) - } + in.Template.DeepCopyInto(&out.Template) if in.Data != nil { in, out := &in.Data, &out.Data *out = make([]KeyReference, len(*in)) diff --git a/pkg/controller/externalsecret/controller.go b/pkg/controller/externalsecret/controller.go index 042ceef..268432c 100644 --- a/pkg/controller/externalsecret/controller.go +++ b/pkg/controller/externalsecret/controller.go @@ -111,7 +111,7 @@ func (r *ExternalSecretReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err return fmt.Errorf("%s: %w", errGetSecretDataFailed, err) } - if extSecret.Spec.Template != nil { + if &extSecret.Spec.Template != nil && extSecret.Spec.Template.Raw != nil { err = r.templateSecret(secret, extSecret.Spec.Template) if err != nil { return fmt.Errorf("%s: %w", errTemplateFailed, err) @@ -202,9 +202,9 @@ func (r *ExternalSecretReconciler) getStore(ctx context.Context, extSecret *smv1 return secretStore, nil } -func (r *ExternalSecretReconciler) templateSecret(secret *corev1.Secret, template []byte) error { +func (r *ExternalSecretReconciler) templateSecret(secret *corev1.Secret, template runtime.RawExtension) error { templatedSecret := &corev1.Secret{} - if err := json.Unmarshal(template, templatedSecret); err != nil { + if err := json.Unmarshal(template.Raw, templatedSecret); err != nil { return fmt.Errorf("error unmarshalling json: %w", err) } From ddc929004549ab99cb71b0874e09b4e1782d14da Mon Sep 17 00:00:00 2001 From: sbaier Date: Tue, 17 Nov 2020 14:52:11 +0100 Subject: [PATCH 2/5] fix linter errors --- pkg/controller/externalsecret/controller_test.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/controller/externalsecret/controller_test.go b/pkg/controller/externalsecret/controller_test.go index 9576319..4b8fed9 100644 --- a/pkg/controller/externalsecret/controller_test.go +++ b/pkg/controller/externalsecret/controller_test.go @@ -18,6 +18,7 @@ import ( "context" "encoding/json" "fmt" + "k8s.io/apimachinery/pkg/runtime" "time" smmeta "github.com/itscontained/secret-manager/pkg/apis/meta/v1" @@ -377,7 +378,9 @@ var _ = Describe("ExternalSecrets Controller", func() { }, }, }, - Template: templateObjectBytes, + Template: runtime.RawExtension{ + Raw: templateObjectBytes, + }, } key := types.NamespacedName{ @@ -463,7 +466,9 @@ var _ = Describe("ExternalSecrets Controller", func() { }, }, }, - Template: templateObjectBytes, + Template: runtime.RawExtension{ + Raw: templateObjectBytes, + }, } key := types.NamespacedName{ From 1d9133bbb62a5bf9a0b5d0f47c2ece2b503e4e6d Mon Sep 17 00:00:00 2001 From: sbaier Date: Tue, 17 Nov 2020 14:58:13 +0100 Subject: [PATCH 3/5] fix linter errors --- pkg/controller/externalsecret/controller.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/controller/externalsecret/controller.go b/pkg/controller/externalsecret/controller.go index 268432c..1a1e89f 100644 --- a/pkg/controller/externalsecret/controller.go +++ b/pkg/controller/externalsecret/controller.go @@ -111,7 +111,7 @@ func (r *ExternalSecretReconciler) Reconcile(req ctrl.Request) (ctrl.Result, err return fmt.Errorf("%s: %w", errGetSecretDataFailed, err) } - if &extSecret.Spec.Template != nil && extSecret.Spec.Template.Raw != nil { + if extSecret.Spec.Template.Raw != nil { err = r.templateSecret(secret, extSecret.Spec.Template) if err != nil { return fmt.Errorf("%s: %w", errTemplateFailed, err) From 9fb7c5559a34f14e41984c14764376f57451613c Mon Sep 17 00:00:00 2001 From: sbaier Date: Tue, 17 Nov 2020 16:31:32 +0100 Subject: [PATCH 4/5] fix remaining linter errors (hopefully) --- pkg/controller/externalsecret/controller_test.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/controller/externalsecret/controller_test.go b/pkg/controller/externalsecret/controller_test.go index 4b8fed9..0d9b67b 100644 --- a/pkg/controller/externalsecret/controller_test.go +++ b/pkg/controller/externalsecret/controller_test.go @@ -18,9 +18,10 @@ import ( "context" "encoding/json" "fmt" - "k8s.io/apimachinery/pkg/runtime" "time" + "k8s.io/apimachinery/pkg/runtime" + smmeta "github.com/itscontained/secret-manager/pkg/apis/meta/v1" smv1alpha1 "github.com/itscontained/secret-manager/pkg/apis/secretmanager/v1alpha1" storeint "github.com/itscontained/secret-manager/pkg/store" From f1b34a82f75d34e1e4cb857b78904938e2dea224 Mon Sep 17 00:00:00 2001 From: sbaier Date: Tue, 17 Nov 2020 17:01:26 +0100 Subject: [PATCH 5/5] ran fmt from makefile --- pkg/apis/meta/v1/zz_generated.deepcopy.go | 2 -- pkg/apis/secretmanager/v1alpha1/externalsecret_types.go | 2 +- pkg/controller/externalsecret/controller_test.go | 3 +-- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/pkg/apis/meta/v1/zz_generated.deepcopy.go b/pkg/apis/meta/v1/zz_generated.deepcopy.go index af4d465..fbb7300 100755 --- a/pkg/apis/meta/v1/zz_generated.deepcopy.go +++ b/pkg/apis/meta/v1/zz_generated.deepcopy.go @@ -18,8 +18,6 @@ limitations under the License. package v1 -import () - // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Condition) DeepCopyInto(out *Condition) { *out = *in diff --git a/pkg/apis/secretmanager/v1alpha1/externalsecret_types.go b/pkg/apis/secretmanager/v1alpha1/externalsecret_types.go index d2ee9c5..650022e 100644 --- a/pkg/apis/secretmanager/v1alpha1/externalsecret_types.go +++ b/pkg/apis/secretmanager/v1alpha1/externalsecret_types.go @@ -16,9 +16,9 @@ package v1alpha1 import ( smmeta "github.com/itscontained/secret-manager/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" ) // ExternalSecretSpec defines the desired state of ExternalSecret diff --git a/pkg/controller/externalsecret/controller_test.go b/pkg/controller/externalsecret/controller_test.go index 0d9b67b..2dfa180 100644 --- a/pkg/controller/externalsecret/controller_test.go +++ b/pkg/controller/externalsecret/controller_test.go @@ -20,8 +20,6 @@ import ( "fmt" "time" - "k8s.io/apimachinery/pkg/runtime" - smmeta "github.com/itscontained/secret-manager/pkg/apis/meta/v1" smv1alpha1 "github.com/itscontained/secret-manager/pkg/apis/secretmanager/v1alpha1" storeint "github.com/itscontained/secret-manager/pkg/store" @@ -32,6 +30,7 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/types" "sigs.k8s.io/controller-runtime/pkg/client"