37 lines
1.3 KiB
YAML
37 lines
1.3 KiB
YAML
{{- 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 }}
|