Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Update helm chart to include ExternalSecret CRDs for env-level and stack level #19

43 changes: 43 additions & 0 deletions stack/templates/external_secrets_env.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
{{- define "secretsTemplate" -}}
`{{ range $key, $value := . }}{{ range $name, $val := $value | fromJson }}{{$name | upper}}: {{$val}}{{ end }}{{ end }}`
{{- end }}

{{ $global := . }}
{{ range $serviceName, $serviceValues := .Values.services }}
{{- $globalValuesDict := $global.Values.global | toYaml -}}
{{- $values := fromYaml $globalValuesDict -}}
{{- $values = set $values "name" $serviceName -}}
{{- $values := mergeOverwrite $values $serviceValues -}}
{{- $service := dict "Chart" $global.Chart "Release" $global.Release "Capabilities" $global.Capabilities "Values" $values -}}

{{- with $service -}}
{{ range $secretsKey, $secretValue := .Values.appSecrets }}
---
apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
name: {{ $secretValue.secretName }}
labels:
{{- include "service.labels" . | nindent 4 }}
annotations:
{{- include "stack.annotations" $service | nindent 4 }}
spec:
secretStoreRef:
name: aws-secretsmanager
kind: ClusterSecretStore
refreshInterval: "10m"
target:
deletionPolicy: Delete
template:
engineVersion: v2
mergePolicy: Replace
templateFrom:
- target: Data
literal: {{- include "secretsTemplate" . -}}
data:
- secretKey: {{ $secretValue.secretName }}
remoteRef:
key: {{ $secretValue.secretKey }}
{{end}}
{{end}}
{{end}}
12 changes: 9 additions & 3 deletions stack/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -66,11 +66,17 @@ global:
initContainers: []
sidecars: []

appConfig:
appContext:
envContextConfigMapName: "" # App environment level configuration configmap name
stackContextConfigMapName: "" # Stack level configuration configmap name
envSecretName: "" # App environment level configuration secret name
stackSecretName: "" # Stack level configuration secret name

appSecrets:
envSecret: # App environment level configuration secret
secretName: ""
secretKey: ""
stackSecret: # Stack level configuration secret
secretName: ""
secretKey: ""

# Global annotations to add to all resources
annotations: {}
Expand Down
Loading