# store the secret-name as var # in my case, the name was very long and containing a lot of fields # so it helps me a lot {{- $secret_name := "connect-secrets" -}} --- apiVersion: v1 kind: Secret metadata: name: "{{ $secret_name }}" data: # retrieve the secret data using lookup function and when not exists, return an empty dictionary / map as result {{- $secretObj := (lookup "v1" "Secret" .Release.Namespace "connect-secrets") | default dict }} {{- $secretData := (get $secretObj "data") | default dict }} # set $jwtSecret to existing secret data or generate a random one when not exists {{- $someSecret := (get $secretData "some-secret") | default (randAlphaNum 32 | b64enc) }} some-secret: {{ $jwtSecret | quote }} JWT_SECRET: "{{ .Values.connect.jwt.secret | b64enc }}" ADMIN_PASSWORD: "{{ .Values.connect.database.password | b64enc }}" DATASOURCE_USERNAME: "{{ .Values.connect.database.username | b64enc }}" DATASOURCE_PASSWORD: "{{ .Values.connect.database.password | b64enc }}" ELASTIC_USERNAME: "{{ .Values.connect.database.username | b64enc }}" ELASTIC_PASSWORD: "{{ .Values.connect.database.password | b64enc }}" OIDC_CLIENT_SECRET: "{{ .Values.connect.oidc.client_secret | b64enc }}" MAIL_USER: "{{ .Values.connect.mail.username | b64enc }}" MAIL_PASSWORD: "{{ .Values.connect.mail.password | b64enc }}"