Files
gitops-ack-kro-argocd/charts/application-sets/templates/application-set.yaml
T

178 lines
7.2 KiB
YAML

{{- $values := .Values }}
{{- $chartType := .Values.chartType }}
{{- $namespace := .Values.namespace }}
{{- $syncPolicy := .Values.syncPolicy -}}
{{- $syncPolicyAppSet := .Values.syncPolicyAppSet -}}
{{- $goTemplateOptions := .Values.goTemplateOptions -}}
{{- $repoURLGit := .Values.repoURLGit -}}
{{- $repoURLGitRevision := .Values.repoURLGitRevision -}}
{{- $repoURLGitBasePath := .Values.repoURLGitBasePath -}}
{{- $valueFiles := .Values.valueFiles -}}
{{- $valuesFilePrefix := .Values.valuesFilePrefix -}}
{{- $useValuesFilePrefix := (default false .Values.useValuesFilePrefix ) -}}
{{- $useSelectors:= .Values.useSelectors -}}
{{- $globalSelectors := .Values.globalSelectors -}}
{{- range $chartName, $chartConfig := .Values }}
{{- if and (kindIs "map" $chartConfig) (hasKey $chartConfig "enabled") }}
{{- if eq (toString $chartConfig.enabled) "true" }}
{{- $nameNormalize := printf "%s" $chartName | replace "_" "-" | trunc 63 | trimSuffix "-" -}}
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: {{ $nameNormalize }}
namespace: {{ default "argocd" $namespace }}
annotations:
{{- include "application-sets.annotations" $ | nindent 4 }}
{{- if $chartConfig.annotationsAppSet }}{{- toYaml $chartConfig.annotationsAppSet | nindent 4 }}{{- end }}
labels:
{{- include "application-sets.labels" $ | nindent 4 }}
{{- if $chartConfig.labelsAppSet }}{{- toYaml $chartConfig.labelsAppSet | nindent 4 }}{{- end }}
spec:
goTemplate: true
{{- if $chartConfig.goTemplateOptions }}
goTemplateOptions:
{{ toYaml $chartConfig.goTemplateOptions | nindent 2 }}
{{- else }}
goTemplateOptions: {{ default (list "missingkey=error") $goTemplateOptions }}
{{- end }}
{{- if $chartConfig.syncPolicyAppSet }}
syncPolicy:
{{- toYaml $chartConfig.syncPolicyAppSet | nindent 4 }}
{{- else }}
syncPolicy:
{{- toYaml $syncPolicyAppSet | nindent 4 }}
{{- end }}
{{- if $chartConfig.gitMatrix }}
{{ include "application-sets.git-matrix" (dict
"chartName" $nameNormalize "chartConfig" $chartConfig
"repoURLGit" $repoURLGit "repoURLGitRevision" $repoURLGitRevision
"selectors" $globalSelectors "useSelectors" $useSelectors
) | nindent 2 }}
{{- else }}
generators:
{{- if $chartConfig.environments }}
- merge:
mergeKeys: [server]
generators:
{{- end }}
- clusters:
selector:
matchLabels:
argocd.argoproj.io/secret-type: cluster
{{- if $globalSelectors }}
{{- toYaml $globalSelectors | nindent 18 }}
{{- end }}
{{- if $chartConfig.selectorMatchLabels }}
{{- toYaml $chartConfig.selectorMatchLabels | nindent 18 }}
{{- end }}
{{- if and $chartConfig.selector $useSelectors }}
{{- toYaml $chartConfig.selector | nindent 16 }}
# If you want you can excluste some clusters based on their membership
# - key: fleet_member
# operator: NotIn
# values: ['control-plane']
{{- end }}
{{- if not $chartConfig.resourceGroup }}
values:
addonChart: {{ $chartConfig.chartName | default $nameNormalize | quote }}
{{- if $chartConfig.defaultVersion }}
addonChartVersion: {{ $chartConfig.defaultVersion | quote }}
{{- end }}
{{- if $chartConfig.chartRepository }}
addonChartRepository: {{ $chartConfig.chartRepository | quote }}
{{- end }}
{{- if $chartConfig.chartNamespace }}
addonChartRepositoryNamespace: {{ $chartConfig.chartNamespace | quote }}
chart: {{ printf "%s/%s" $chartConfig.chartNamespace ($chartConfig.chartName | default $nameNormalize) | quote }}
{{- else }}
chart: {{ $chartConfig.chartName | default $nameNormalize | quote }}
{{- end }}
{{- end }}
{{- if $chartConfig.environments }}
{{- range $chartConfig.environments }}
- clusters:
selector:
matchLabels:
{{- toYaml .selector | nindent 18 }}
values:
addonChartVersion: {{ .chartVersion | default $chartConfig.defaultVersion | quote }}
{{- end }}
{{- end }}
{{- end }}
template:
metadata:
{{- if $chartConfig.appSetName }}
name: {{ $chartConfig.appSetName }}
{{- else }}
name: '{{ $nameNormalize }}-{{`{{ .name }}`}}'
{{- end }}
spec:
project: default
sources:
- repoURL: {{ $repoURLGit | squote}}
targetRevision: {{ $repoURLGitRevision | squote }}
ref: values
{{- if eq (toString $chartConfig.enableACK ) "true" }}
{{ include "application-sets.pod-identity" (dict
"chartName" ($chartConfig.chartName | default $nameNormalize)
"valueFiles" $valueFiles
"chartConfig" $chartConfig "values" $values ) | nindent 6 }}
{{- end }}
{{- if $chartConfig.path }}
- repoURL: {{ $repoURLGit | squote }}
path: {{$chartConfig.path | squote }}
targetRevision: {{ $repoURLGitRevision | squote }}
{{- else }}
- repoURL: '{{`{{ .values.addonChartRepository }}`}}'
chart: '{{`{{ .values.chart }}`}}'
targetRevision: '{{`{{.values.addonChartVersion }}`}}'
{{- end }}
{{- if ne (default "" $chartConfig.type) "manifest" }}
helm:
releaseName: {{ default "{{ .values.addonChart }}" $chartConfig.releaseName | squote }}
ignoreMissingValueFiles: true
{{- if $chartConfig.valuesObject }}
valuesObject:
{{- $chartConfig.valuesObject | toYaml | nindent 12 }}
{{- end }}
{{- if $valueFiles }}
valueFiles:
{{- include "application-sets.valueFiles" (dict
"nameNormalize" ($chartConfig.chartName | default $nameNormalize)
"chartConfig" $chartConfig
"valueFiles" $valueFiles "values" $values) | nindent 12 }}
{{- end }}
{{- if $chartConfig.additionalResources}}
{{ include "application-sets.additionalResources" (dict
"chartName" ($chartConfig.chartName | default $nameNormalize)
"valueFiles" $valueFiles
"chartConfig" $chartConfig
"values" $values
"additionalResourcesType" $chartConfig.additionalResources.type
"additionalResourcesPath" $chartConfig.additionalResources.path ) | nindent 6 }}
{{- end}}
{{- end }}
destination:
namespace: '{{ $chartConfig.namespace }}'
name: '{{`{{ .name }}`}}'
{{- if $chartConfig.syncPolicy }}
syncPolicy:
{{- toYaml $chartConfig.syncPolicy | nindent 8 }}
{{ else }}
syncPolicy:
{{- toYaml $syncPolicy | nindent 8 }}
{{- end }}
{{- with $chartConfig.ignoreDifferences }}
ignoreDifferences:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- if $chartConfig.ignoreDifferences}}
ignoreDifferences:
{{- $chartConfig.ignoreDifferences | toYaml | nindent 8 }}
{{- end }}
---
{{- end }}
{{- end }}
{{- end }}