apiVersion: v1
kind: Secret
metadata:
  name: {{ include "garage.rpcSecretName" . }}
  labels:
    {{- include "garage.labels" . | nindent 4 }}
type: Opaque
data:
  {{/* retrieve the secret data using lookup function and when not exists, return an empty dictionary / map as result */}}
  {{- $prevSecret := (lookup "v1" "Secret" .Release.Namespace (include "garage.rpcSecretName" .)) | default dict }}
  {{- $prevSecretData := $prevSecret.data | default dict }}
  {{- $prevRpcSecret := $prevSecretData.rpcSecret | default "" | b64dec }}
  {{/* Priority is: 1. from values, 2. previous value, 3. generate random */}}
  rpcSecret: {{ .Values.garage.rpcSecret | default $prevRpcSecret | default (include "jupyterhub.randHex" 64) | b64enc | quote }}