Skip to content

Commit 737d59c

Browse files
authored
Merge pull request #793 from MetaCell/release/2.4.4
CH-170 fix secrets upgrade
2 parents 784c630 + 6f3fc96 commit 737d59c

File tree

1 file changed

+36
-26
lines changed

1 file changed

+36
-26
lines changed
Lines changed: 36 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
{{- define "deploy_utils.secret" }}
2-
{{- if .app.harness.secrets }}
32
{{- $secret_name := printf "%s" .app.harness.deployment.name }}
43
apiVersion: v1
54
kind: Secret
@@ -9,42 +8,53 @@ metadata:
98
labels:
109
app: {{ .app.harness.deployment.name }}
1110
type: Opaque
12-
{{- $secret := (lookup "v1" "Secret" .root.Values.namespace $secret_name) }}
13-
{{- if $secret }}
14-
# secret already exists
15-
{{- if not (compact (values .app.harness.secrets)) }}
16-
# secret values are null, copy from the existing secret
17-
data:
18-
{{- range $k, $v := $secret.data }}
19-
{{ $k }}: {{ $v }}
20-
{{- end }}
21-
{{- else }}
22-
# there are non default values in values.yaml, use these
11+
{{- $secret := (lookup "v1" "Secret" .root.Values.namespace $secret_name) }}
12+
{{/*- $secret := dict "data" (dict "test" "test") */}}
2313
stringData:
24-
{{- range $k, $v := .app.harness.secrets }}
25-
{{ $k }}: {{ $v | default (randAlphaNum 20) }}
26-
{{- end }}
27-
{{- end }}
28-
{{- else }}
29-
# secret doesn't exist
30-
stringData:
31-
{{- range $k, $v := .app.harness.secrets }}
32-
{{ $k }}: {{ $v | default (randAlphaNum 20) }}
14+
updated: {{ now | quote }} # Added because in case of update, if no field is updated, alla data is erased
15+
{{- if $secret }}
16+
{{- range $k, $v := .app.harness.secrets }}
17+
{{- if $v }}
18+
{{- if eq (typeOf $v) "string" }}
19+
{{- if ne $v "?" }}
20+
# Update/set value to value in values.yaml if specified
21+
{{ $k }}: {{ $v | quote }}
22+
{{- else }}
23+
# Refresh at any deployment for ? (pure random) value
24+
{{ $k }}: {{ randAlphaNum 20 | quote }}
25+
{{- end }}
26+
{{- else }}
27+
# Type not recognized: setting to a empty string"
28+
{{ $k }}-formatnotrecognized: {{ $v }}
29+
{{ $k }}: ""
30+
{{- end }}
31+
{{- else if eq (typeOf $secret.data) (typeOf dict) }}
32+
# Value empty or null in the values.yaml
33+
{{- if not (hasKey $secret.data $k) }}
34+
# 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) */}}
35+
{{ $k }}: {{ randAlphaNum 20 | quote }}
36+
{{- else }}
37+
# confirm previous value from the secret (static random secret already set, do nothing)}
38+
{{- end}}
3339
{{- end }}
40+
{{- end }} # range end
41+
{{- else }}
42+
# New secret
43+
{{- range $k, $v := .app.harness.secrets }}
44+
{{ $k }}: {{ $v | default (randAlphaNum 20) | quote }}
3445
{{- end }}
3546
{{- end }}
3647
---
3748
{{- end }}
38-
---
3949
{{- range $app := .Values.apps }}
40-
---
50+
{{- if $app.harness.secrets }}{{- if ne (len $app.harness.secrets) 0 }}
4151
{{- include "deploy_utils.secret" (dict "root" $ "app" $app) }}
52+
{{- end }}{{- end }}
4253
{{- range $subapp := $app }}
4354
{{- if contains "map" (typeOf $subapp) }}
44-
{{- if hasKey $subapp "harness" }}
45-
---
55+
{{- if hasKey $subapp "harness" }}{{- if $app.harness.secrets }}{{- if ne (len $app.harness.secrets) 0 }}
4656
{{- include "deploy_utils.secret" (dict "root" $ "app" $subapp) }}
47-
{{- end }}
57+
{{- end }}{{- end }}{{- end }}
4858
{{- end }}
4959
{{- end }}
5060
{{- end }}

0 commit comments

Comments
 (0)