58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| {{- range $index, $stack := .Values.applicationSet }}
 | |
| ---
 | |
| apiVersion: argoproj.io/v1alpha1
 | |
| kind: ApplicationSet
 | |
| metadata:
 | |
|   name: {{ $stack.name }}
 | |
|   namespace: {{ $.Release.Namespace }}
 | |
|   labels:
 | |
|     app.kubernetes.io/name: {{ $stack.name }}
 | |
|     app.kubernetes.io/instance: {{ $stack.name }}
 | |
|     app.kubernetes.io/part-of: {{ $.Release.Name }}
 | |
| spec:
 | |
|   syncPolicy:
 | |
|     applicationsSync: create-update
 | |
|     preserveResourcesOnDeletion: false
 | |
|   generators:
 | |
|     - git:
 | |
|         repoURL: {{ $.Values.git.repo }}
 | |
|         revision: {{ $.Values.git.revision }}
 | |
|         directories:
 | |
|           - path: "clusters/{{ $.Values.cluster.name }}/{{ $stack.name }}/*"
 | |
|   template:
 | |
|     metadata:
 | |
|       name: '{{ `{{path.basename}}` }}'
 | |
|     spec:
 | |
|       destination:
 | |
|         name: in-cluster
 | |
|         namespace: '{{ $stack.namespace | default `{{path.basename}}` }}'
 | |
|       project: default
 | |
|       revisionHistoryLimit: 3
 | |
|       source:
 | |
|         repoURL: {{ $.Values.git.repo }}
 | |
|         targetRevision: {{ $.Values.git.revision }}
 | |
|         path: '{{ `{{path}}` }}'
 | |
|         helm:
 | |
|           releaseName: "{{ `{{path.basename}}` }}"
 | |
|       {{- if $stack.ignoreDifferences }}
 | |
|       ignoreDifferences:
 | |
|         {{- toYaml $stack.ignoreDifferences | nindent 8 }}
 | |
|       {{ end }}
 | |
|       syncPolicy:
 | |
|         automated:
 | |
|           prune: {{ $stack.syncPolicy.automated.prune | default false }}
 | |
|           selfHeal: {{ $stack.syncPolicy.automated.selfHeal | default false }}
 | |
|         retry:
 | |
|           limit: 3
 | |
|           backoff:
 | |
|             duration: 1m
 | |
|             factor: 2
 | |
|             maxDuration: 15m
 | |
|         syncOptions:
 | |
|           - CreateNamespace={{ $stack.syncPolicy.syncOptions.createNamespace | default true }}
 | |
|           - ApplyOutOfSyncOnly={{ $stack.syncPolicy.syncOptions.applyOutOfSyncOnly | default true }}
 | |
|           - ServerSideApply={{ $stack.syncPolicy.syncOptions.serverSideApply | default true }}
 | |
|           - PruneLast={{ $stack.syncPolicy.syncOptions.pruneLast | default true }}
 | |
|           - RespectIgnoreDifferences={{ $stack.syncPolicy.syncOptions.respectIgnoreDifferences | default true }}
 | |
| {{- end }}
 |