[COMMON] Allow to search secret by uid even if name is Overridden 66/100566/4
authorKrzysztof Opasiak <k.opasiak@samsung.com>
Thu, 9 Jan 2020 20:53:55 +0000 (21:53 +0100)
committerKrzysztof Opasiak <k.opasiak@samsung.com>
Fri, 31 Jan 2020 23:10:01 +0000 (00:10 +0100)
In some cases it is useful to bypass default policy for secret name
generation and provide a custom name for a secret. In this case
current search implementation got confused and couln't find a secret
based on uid. This patch fixes the issue by comaring not only name
but also uid.

Issue-ID: OOM-2246
Change-Id: Iaea7a23fee09aa388968aad792ba7f7e1fbf2f21
Signed-off-by: Krzysztof Opasiak <k.opasiak@samsung.com>
kubernetes/common/common/templates/_secret.yaml

index 0aff3a6..55cb9bb 100644 (file)
@@ -115,10 +115,13 @@ type: Opaque
 */}}
 {{- define "common.secret.getSecretName" -}}
   {{- $global := .global }}
-  {{- $targetName := include "common.secret._genName" (dict "global" $global "uid" .uid "name" .name) }}
+  {{- $name := tpl (default "" .name) $global }}
+  {{- $uid := .uid }}
+  {{- $targetName := default (include "common.secret._genName" (dict "global" $global "uid" .uid "name" .name)) $name}}
   {{- range $secret := $global.Values.secrets }}
-    {{- $currName := include "common.secret._genName" (dict "global" $global "uid" $secret.uid "name" $secret.name) }}
-    {{- if eq $currName $targetName }}
+    {{- $givenName := tpl (default "" $secret.name) $global }}
+    {{- $currName := default (include "common.secret._genName" (dict "global" $global "uid" $secret.uid "name" $secret.name)) $givenName }}
+    {{- if or (eq $uid $secret.uid) (eq $currName $targetName) }}
       {{- $externalSecret := tpl (default "" $secret.externalSecret) $global }}
       {{- default $currName $externalSecret }}
     {{- end }}