11{{/* First, import and merge all values files based on enabled components */}}
22{{- $values := .Values }}
3- {{- $releaseType := .Values.releaseType }}
4- {{- $useVersionSelectors := .Values.useVersionSelectors}}
5- {{- $useSelectors:= .Values.useSelectors -}}
3+ {{- $releaseName := .Values.releaseName }}
4+ {{- $useVersionSelectors := .Values.useVersionSelectors | toString }}
5+ {{- $useSelectors := .Values.useSelectors | toString -}}
66{{- $globalSelectors := .Values.globalSelectors -}}
77{{- $chartType := .Values.chartType }}
88{{- $namespace := .Values.namespace }}
1313{{- $repoURLGitRevision := .Values.repoURLGitRevision -}}
1414{{- $repoURLGitBasePath := .Values.repoURLGitBasePath -}}
1515{{- $valueFiles := .Values.valueFiles -}}
16+ {{- $globalValuesObject := .Values.globalValuesObject | default dict -}}
1617{{- $valuesFilePrefix := .Values.valuesFilePrefix -}}
1718{{- $useValuesFilePrefix := (default false .Values.useValuesFilePrefix ) -}}
1819{{- $argoProjectName := (default "default" .Values.argoProjectName ) -}}
20+ {{- $applyNestedSelectors := default "false" .Values.applyNestedSelectors -}}
21+ {{- $templatePatch := .Values.templatePatch -}}
1922
2023{{/* Merge values From Default */}}
2124{{- if .Values.mergeValues -}}
2528{{- end -}}
2629
2730{{- range $chartName, $chartConfig := .Values }}
31+ {{- $mergedValuesObject := dict }}
2832{{- if and (kindIs "map" $chartConfig) (hasKey $chartConfig "enabled") }}
29- {{- if eq (toString $chartConfig.enabled) "true" }}
33+ {{- if eq ($chartConfig.enabled | toString ) "true" }}
3034{{- $nameNormalize := printf "%s" $chartName | replace "_" "-" | trunc 63 | trimSuffix "-" -}}
3135apiVersion : argoproj.io/v1alpha1
3236kind : ApplicationSet
3337metadata :
34- {{- if $releaseType }}
35- name : ' {{ $nameNormalize }}-{{$releaseType }}'
38+ {{- if $releaseName }}
39+ name : ' {{ $nameNormalize }}-{{$releaseName }}'
3640 {{- else }}
3741 name : {{ $nameNormalize }}
3842 {{- end }}
@@ -45,18 +49,44 @@ metadata:
4549 {{- if $chartConfig.labelsAppSet }}{{- toYaml $chartConfig.labelsAppSet | nindent 4 }}{{- end }}
4650spec :
4751 goTemplate : true
52+ {{- if $chartConfig.syncPolicyAppSet }}
53+ syncPolicy :
54+ {{- toYaml $chartConfig.syncPolicyAppSet | nindent 4 }}
55+ {{- else }}
56+ syncPolicy :
57+ {{- toYaml $syncPolicyAppSet | nindent 4 }}
58+ {{- end }}
4859 {{- if $chartConfig.goTemplateOptions }}
4960 goTemplateOptions :
5061 {{ toYaml $chartConfig.goTemplateOptions | nindent 2 }}
5162 {{- else }}
5263 goTemplateOptions : {{ default (list "missingkey=error") $goTemplateOptions }}
5364 {{- end }}
54- {{- if $chartConfig.syncPolicyAppSet }}
55- syncPolicy :
56- {{- toYaml $chartConfig.syncPolicyAppSet | nindent 4 }}
65+ {{- if $chartConfig.ignoreApplicationDifferences }}
66+ ignoreApplicationDifferences :
67+ {{- toYaml $chartConfig.ignoreApplicationDifferences | nindent 2 }}
68+ {{- end }}
69+ {{- if $chartConfig.preservedFields }}
70+ preservedFields :
71+ {{- toYaml $chartConfig.preservedFields | nindent 4 }}
72+ {{- end }}
73+ {{- if $chartConfig.strategy }}
74+ strategy :
75+ {{- toYaml $chartConfig.strategy | nindent 4 }}
76+ {{- end }}
77+ {{- if $chartConfig.templatePatch }}
78+ templatePatch : {{- $chartConfig.templatePatch | toYaml | indent 1 }}
5779 {{- else }}
58- syncPolicy :
59- {{- toYaml $syncPolicyAppSet | nindent 4 }}
80+ {{- if $templatePatch }}
81+ templatePatch : {{- $templatePatch | toYaml | indent 1 }}
82+ {{- end }}
83+ {{- end }}
84+ {{- if $applyNestedSelectors }}
85+ applyNestedSelectors : {{ $applyNestedSelectors }}
86+ {{- else }}
87+ {{- if $chartConfig.applyNestedSelectors }}
88+ applyNestedSelectors : {{ $chartConfig.applyNestedSelectors }}
89+ {{- end }}
6090 {{- end }}
6191 {{- if $chartConfig.gitMatrix }}
6292 {{ include "application-sets.git-matrix" (dict
74104 - clusters :
75105 selector :
76106 matchLabels :
77- {{- if eq (toString $useVersionSelectors) "true" }}
107+ {{- if eq $useVersionSelectors "true" }}
78108 {{- if $values.releases }}
79109 {{- range $releaseName, $release := $values.releases}}
80110 {{ $releaseName }}: {{ $release }}
@@ -88,20 +118,20 @@ spec:
88118 {{- if $chartConfig.selectorMatchLabels }}
89119 {{- toYaml $chartConfig.selectorMatchLabels | nindent 18 }}
90120 {{- end }}
91- {{- if and $chartConfig.selector $useSelectors }}
121+ {{- if and $chartConfig.selector (eq $useSelectors "true") }}
92122 {{- toYaml $chartConfig.selector | nindent 16 }}
93123 {{- end }}
94124 {{- if not $chartConfig.resourceGroup }}
95125 values :
96- addonChart : {{ $chartConfig.chartName | default $nameNormalize | quote }}
126+ chart : {{ $chartConfig.chartName | default $nameNormalize | quote }}
97127 {{- if $chartConfig.defaultVersion }}
98- addonChartVersion : {{ $chartConfig.defaultVersion | quote }}
128+ chartVersion : {{ $chartConfig.defaultVersion | quote }}
99129 {{- end }}
100130 {{- if $chartConfig.chartRepository }}
101- addonChartRepository : {{ $chartConfig.chartRepository | quote }}
131+ chartRepository : {{ $chartConfig.chartRepository | quote }}
102132 {{- end }}
103133 {{- if $chartConfig.chartNamespace }}
104- addonChartRepositoryNamespace : {{ $chartConfig.chartNamespace | quote }}
134+ chartRepositoryNamespace : {{ $chartConfig.chartNamespace | quote }}
105135 chart : {{ printf "%s/%s" $chartConfig.chartNamespace ($chartConfig.chartName | default $nameNormalize) | quote }}
106136 {{- else }}
107137 chart : {{ $chartConfig.chartName | default $nameNormalize | quote }}
@@ -114,24 +144,33 @@ spec:
114144 matchLabels :
115145 {{- toYaml .selector | nindent 18 }}
116146 values :
117- addonChartVersion : {{ .chartVersion | default $chartConfig.defaultVersion | quote }}
147+ chartVersion : {{ .chartVersion | default $chartConfig.defaultVersion | quote }}
118148 {{- end }}
119149 {{- end }}
120150 {{- end }}
121151 template :
122152 metadata :
123153 {{- if $chartConfig.appSetName }}
124- name : ' {{$releaseType }}-{{ $chartConfig.appSetName }}-{{`{{ .values.addonChartVersion }}`}}'
154+ name : ' {{$releaseName }}-{{ $chartConfig.appSetName }}-{{`{{ .values.chartVersion }}`}}'
125155 {{- else }}
126- name : ' {{$releaseType }}-{{`{{ .name | trunc 30 }}`}}-{{ $nameNormalize | trunc 20 }}-{{`{{ .values.addonChartVersion }}`}}'
156+ name : ' {{$releaseName }}-{{`{{ .name | trunc 30 }}`}}-{{ $nameNormalize | trunc 20 }}-{{`{{ .values.chartVersion }}`}}'
127157 {{- end }}
158+ annotations :
159+ {{- include "application-sets.annotations" $ | nindent 8 }}
160+ {{- if $chartConfig.annotationsApp }}{{- toYaml $chartConfig.annotationsApp | nindent 8 }}{{- end }}
161+ labels :
162+ {{- include "application-sets.labels" $ | nindent 8 }}
163+ {{- if $chartConfig.labelsApp }}{{- toYaml $chartConfig.labelsApp | nindent 8 }}{{- end }}
164+ component : ' {{ $nameNormalize }}'
165+ environment : ' {{`{{.metadata.labels.environment}}`}}'
166+ cluster : ' {{`{{.name}}`}}'
128167 spec :
129168 project : {{ $argoProjectName }}
130169 sources :
131170 - repoURL : {{ $repoURLGit | squote}}
132171 targetRevision : {{ $repoURLGitRevision | squote }}
133172 ref : values
134- {{- if eq (toString $chartConfig.enableAckPodIdentity) "true" }}
173+ {{- if eq ($chartConfig.enableAckPodIdentity | toString ) "true" }}
135174 {{ include "application-sets.pod-identity" (dict
136175 " chartName" ($chartConfig.chartName | default $nameNormalize)
137176 " valueFiles" $valueFiles
@@ -142,17 +181,25 @@ spec:
142181 path : {{$chartConfig.path | squote }}
143182 targetRevision : {{ $repoURLGitRevision | squote }}
144183 {{- else }}
145- - repoURL : ' {{`{{ .values.addonChartRepository }}`}}'
184+ - repoURL : ' {{`{{ .values.chartRepository }}`}}'
146185 chart : ' {{`{{ .values.chart }}`}}'
147- targetRevision : ' {{`{{.values.addonChartVersion }}`}}'
186+ targetRevision : ' {{`{{.values.chartVersion }}`}}'
148187 {{- end }}
149188 {{- if ne (default "" $chartConfig.type) "manifest" }}
150189 helm :
151- releaseName : {{ default "{{ .values.addonChart }}" $chartConfig.releaseName | squote }}
190+ releaseName : {{ default "{{ .values.chart }}" $chartConfig.releaseName | squote }}
152191 ignoreMissingValueFiles : true
192+ {{- if or $globalValuesObject $chartConfig.valuesObject }}
193+ {{/* Create a fresh copy for this component only */}}
194+ {{- $chartValuesObject := dict }}
195+ {{- if $globalValuesObject }}
196+ {{- $chartValuesObject = deepCopy $globalValuesObject }}
197+ {{- end }}
153198 {{- if $chartConfig.valuesObject }}
199+ {{- $chartValuesObject = mergeOverwrite $chartValuesObject $chartConfig.valuesObject }}
200+ {{- end }}
154201 valuesObject :
155- {{- $chartConfig.valuesObject | toYaml | nindent 12 }}
202+ {{- toYaml $chartValuesObject | nindent 12 }}
156203 {{- end }}
157204 {{- if $valueFiles }}
158205 valueFiles :
0 commit comments