Skip to content

Commit 6e1dee3

Browse files
committed
CH-170 fix secrets upgrade
1 parent 55f6362 commit 6e1dee3

File tree

1 file changed

+65
-0
lines changed

1 file changed

+65
-0
lines changed

deployment-configuration/helm/templates/auto-secrets.yaml

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,76 @@ type: Opaque
1414
stringData:
1515
{{- if $secret }}
1616
{{- range $k, $v := .app.harness.secrets }}
17+
{{- define "deploy_utils.secret" }}
18+
{{- $secret_name := printf "%s" .app.harness.deployment.name }}
19+
apiVersion: v1
20+
kind: Secret
21+
metadata:
22+
name: {{ $secret_name }}
23+
namespace: {{ .root.Values.namespace }}
24+
labels:
25+
app: {{ .app.harness.deployment.name }}
26+
type: Opaque
27+
{{- $secret := (lookup "v1" "Secret" .root.Values.namespace $secret_name) }}
28+
{{/*- $secret := dict "data" (dict "test" "test") */}}
29+
stringData:
30+
{{- if $secret }}
31+
{{- range $k, $v := .app.harness.secrets }}
32+
{{- if $v }}
33+
{{- if eq (typeOf $v) "string" }}
34+
{{- if ne $v "?" }}
35+
# Update/set value to value in values.yaml if specified
36+
{{ $k }}: {{ $v | quote }}
37+
# {{ $k }}-updated: "it's a non empty string"
38+
{{- else }}
39+
# Refresh at any deployment for ? (pure random) value
40+
# {{ $k }}-random: "set to a random string"
41+
{{ $k }}: {{ randAlphaNum 20 | quote }}
42+
{{- end }}
43+
{{- else }}
44+
# Type not recognized: setting to a empty string"
45+
{{ $k }}: ""
46+
# {{ $k }}-formatnotrecognized: {{ typeOf $v }}
47+
{{- end }}
48+
{{- else if eq (typeOf $secret.data) (typeOf dict) }}
49+
# Value empty or null in the values.yaml
50+
{{- if not (hasKey $secret.data $k) }}
51+
# Create a random secret value if not specified in values.yaml if it is not set and it is not already in the deployed secret (static random secret) */}}
52+
# {{ $k }}-random-empty: new-random
53+
{{ $k }}: {{ randAlphaNum 20 | quote }}
54+
{{- else }}
55+
# confirm previous value from the secret (static random secret already set, do nothing)
56+
# {{ $k }}-confirm: {{ index $secret.data $k | quote }}
57+
{{- end}}
58+
{{- end }}
59+
{{- end }} # range end
60+
{{- else }}
61+
# New secret
62+
{{- range $k, $v := .app.harness.secrets }}
63+
{{ $k }}-new: {{ $v | default (randAlphaNum 20) | quote }}
64+
{{ $k }}: {{ $v | default (randAlphaNum 20) | quote }}
65+
{{- end }}
66+
{{- end }}
67+
---
68+
{{- end }}
69+
{{- range $app := .Values.apps }}
70+
{{- if $app.harness.secrets }}{{- if ne (len $app.harness.secrets) 0 }}
71+
{{- include "deploy_utils.secret" (dict "root" $ "app" $app) }}
72+
{{- end }}{{- end }}
73+
{{- range $subapp := $app }}
74+
{{- if contains "map" (typeOf $subapp) }}
75+
{{- if hasKey $subapp "harness" }}{{- if $app.harness.secrets }}{{- if ne (len $app.harness.secrets) 0 }}
76+
{{- include "deploy_utils.secret" (dict "root" $ "app" $subapp) }}
77+
{{- end }}{{- end }}{{- end }}
78+
{{- end }}
79+
{{- end }}
80+
{{- end }}
1781
{{- if $v }}
1882
{{- if eq (typeOf $v) "string" }}
1983
{{- if ne $v "?" }}
2084
# Set secret value to value in values.yaml if specified
2185
{{ $k }}: {{ $v | quote }}
86+
{{ $k }}-new: {{ "updated" }}
2287
{{- else }}
2388
# Refresh at any deployment for ? (pure random) value
2489
{{ $k }}: {{ randAlphaNum 20 | quote }}

0 commit comments

Comments
 (0)