{{- if and (not .Values.existingSecret) (not .Values.generateEncryptionKey) }}
apiVersion: v1
kind: Secret
metadata:
  name: {{ include "trek.fullname" . }}-secret
  labels:
    app: {{ include "trek.name" . }}
type: Opaque
data:
  {{ .Values.existingSecretKey | default "ENCRYPTION_KEY" }}: {{ .Values.secretEnv.ENCRYPTION_KEY | b64enc | quote }}
  {{- if .Values.secretEnv.ADMIN_EMAIL }}
  ADMIN_EMAIL: {{ .Values.secretEnv.ADMIN_EMAIL | b64enc | quote }}
  {{- end }}
  {{- if .Values.secretEnv.ADMIN_PASSWORD }}
  ADMIN_PASSWORD: {{ .Values.secretEnv.ADMIN_PASSWORD | b64enc | quote }}
  {{- end }}
  {{- if .Values.secretEnv.OIDC_CLIENT_SECRET }}
  OIDC_CLIENT_SECRET: {{ .Values.secretEnv.OIDC_CLIENT_SECRET | b64enc | quote }}
  {{- end }}
{{- end }}

{{- if and (not .Values.existingSecret) (.Values.generateEncryptionKey) }}
{{- $secretName := printf "%s-secret" (include "trek.fullname" .) }}
{{- $existingSecret := (lookup "v1" "Secret" .Release.Namespace $secretName) }}
apiVersion: v1
kind: Secret
metadata:
  name: {{ $secretName }}
  labels:
    app: {{ include "trek.name" . }}
type: Opaque
stringData:
  {{- if and $existingSecret $existingSecret.data }}
  {{ .Values.existingSecretKey | default "ENCRYPTION_KEY" }}: {{ index $existingSecret.data (.Values.existingSecretKey | default "ENCRYPTION_KEY") | b64dec }}
  {{- else }}
  {{ .Values.existingSecretKey | default "ENCRYPTION_KEY" }}: {{ randAlphaNum 32 }}
  {{- end }}
  {{- if .Values.secretEnv.ADMIN_EMAIL }}
  ADMIN_EMAIL: {{ .Values.secretEnv.ADMIN_EMAIL }}
  {{- end }}
  {{- if .Values.secretEnv.ADMIN_PASSWORD }}
  ADMIN_PASSWORD: {{ .Values.secretEnv.ADMIN_PASSWORD }}
  {{- end }}
  {{- if .Values.secretEnv.OIDC_CLIENT_SECRET }}
  OIDC_CLIENT_SECRET: {{ .Values.secretEnv.OIDC_CLIENT_SECRET }}
  {{- end }}
{{- end }}
