{{- if not .Values.git.existingSecret }} {{- with .Values.git -}} {{- if coalesce .credentials.username .credentials.password .credentials.caFile .credentials.privateKey .credentials.publicKey .credentials.knownHosts -}} {{- $http := coalesce .credentials.username .credentials.password .credentials.caFile "" }} {{- $ssh := coalesce .credentials.privateKey .credentials.publicKey .credentials.knownHosts "" }} apiVersion: v1 kind: Secret metadata: name: {{ $.Release.Name }}-git-credentials namespace: {{ $.Release.Namespace }} type: Opaque data: {{- if $http }} {{- if .credentials.caFile }} caFile: {{ .credentials.caFile | b64enc }} {{- end }} {{- if and .credentials.username (not .credentials.password ) }} {{- fail "When using http git username, password must be specified" }} {{- end }} {{- if and .credentials.password (not .credentials.username ) }} {{- fail "When using http git password, username must be specified" }} {{- end }} {{- if and .credentials.username .credentials.password }} username: {{ .credentials.username | b64enc }} password: {{ .credentials.password | b64enc }} {{- end }} {{- else }} {{- if not (and (and .credentials.privateKey .credentials.publicKey) .credentials.knownHosts) }} {{- fail "When using ssh git credentials, privateKey, publicKey, and knownHosts must all be specified" }} {{- end }} identity: {{ .credentials.privateKey | b64enc }} identity.pub: {{ .credentials.publicKey | b64enc }} known_hosts: {{ .credentials.knownHosts | b64enc }} {{- end }} {{- end }} {{- end }} {{- end }}