{{- define "homey.randomsecret"}} apiVersion: v1 kind: Secret metadata: name: {{ .secretname }} type: Opaque data: {{- $secretObj := (lookup "v1" "Secret" .Release.Namespace (.secretname | quote)) | default dict }} {{- $secretData := (get $secretObj "data") | default dict }} {{- $pass := (get $secretData "password") | default (randAlphaNum 32 | b64enc) }} password: {{ $pass | quote }} {{- end }} {{- define "homey.lookuprandomsecret" -}} {{- $secretObj := (lookup "v1" "Secret" .Release.Namespace (.secretname | quote)) | default dict -}} {{- $secretData := (get $secretObj "data") | default dict -}} {{- $pass := (get $secretData "password") | default "UNDEFINED" -}} {{- $pass | quote -}} {{- end -}} {{- /* Returns given number of random Hex characters. - randNumeric 4 | atoi generates a random number in [0, 10^4) This is a range range evenly divisble by 16, but even if off by one, that last partial interval offsetting randomness is only 1 part in 625. - mod N 16 maps to the range 0-15 - printf "%x" represents a single number 0-15 as a single hex character */}} {{- define "randHex" -}} {{- $result := "" }} {{- range $i := until . }} {{- $rand_hex_char := mod (randNumeric 4 | atoi) 16 | printf "%x" }} {{- $result = print $result $rand_hex_char }} {{- end }} {{- $result }} {{- end }}