From 123cfa2c86eb3ee784f3092a352ea6a638785c98 Mon Sep 17 00:00:00 2001 From: Xabier Larrakoetxea Date: Thu, 14 Apr 2022 11:02:20 +0200 Subject: [PATCH] Avoid returning an error on secret update when secret types 'Opaque' and 'empty string' are treated as different Signed-off-by: Xabier Larrakoetxea --- .../kubernetes_secrets_builder.go | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pkg/kubernetessecrets/kubernetes_secrets_builder.go b/pkg/kubernetessecrets/kubernetes_secrets_builder.go index b7587c7..47987cc 100644 --- a/pkg/kubernetessecrets/kubernetes_secrets_builder.go +++ b/pkg/kubernetessecrets/kubernetes_secrets_builder.go @@ -27,7 +27,6 @@ import ( const OnepasswordPrefix = "operator.1password.io" const NameAnnotation = OnepasswordPrefix + "/item-name" const VersionAnnotation = OnepasswordPrefix + "/item-version" -const restartAnnotation = OnepasswordPrefix + "/last-restarted" const ItemPathAnnotation = OnepasswordPrefix + "/item-path" const RestartDeploymentsAnnotation = OnepasswordPrefix + "/auto-restart" @@ -63,13 +62,22 @@ func CreateKubernetesSecretFromItem(kubeClient kubernetesClient.Client, secretNa return err } - currentAnnotations := currentSecret.Annotations - currentLabels := currentSecret.Labels + // Check if the secret types are being changed on the update. + // Avoid Opaque and "" are treated as different on check. + wantSecretType := secretType + if wantSecretType == "" { + wantSecretType = string(corev1.SecretTypeOpaque) + } currentSecretType := string(currentSecret.Type) - if !reflect.DeepEqual(currentSecretType, secretType) { + if currentSecretType == "" { + currentSecretType = string(corev1.SecretTypeOpaque) + } + if currentSecretType != wantSecretType { return ErrCannotUpdateSecretType } + currentAnnotations := currentSecret.Annotations + currentLabels := currentSecret.Labels if !reflect.DeepEqual(currentAnnotations, secretAnnotations) || !reflect.DeepEqual(currentLabels, labels) { log.Info(fmt.Sprintf("Updating Secret %v at namespace '%v'", secret.Name, secret.Namespace)) currentSecret.ObjectMeta.Annotations = secretAnnotations