{{- if and (.Values.karpenter) (.Values.karpenter.enable) -}} apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: karpenter namespace: {{ .Values.argoNamespace | default "argocd" }} finalizers: - resources-finalizer.argocd.argoproj.io spec: project: {{ .Values.argoProject | default "default" }} source: repoURL: {{ .Values.repoUrl }} path: add-ons/karpenter targetRevision: {{ .Values.targetRevision }} helm: values: | karpenter: {{- toYaml .Values.karpenter | nindent 10 }} parameters: - name: karpenter.serviceAccount.name value: {{ .Values.karpenter.serviceAccountName }} - name: karpenter.settings.aws.clusterName value: {{ .Values.clusterName }} - name: karpenter.settings.aws.clusterEndpoint value: {{ .Values.karpenter.controllerClusterEndpoint }} - name: karpenter.settings.aws.defaultInstanceProfile value: {{ .Values.karpenter.awsDefaultInstanceProfile }} - name: karpenter.settings.aws.interruptionQueueName value: {{ .Values.karpenter.awsInterruptionQueueName }} destination: server: {{ .Values.destinationServer | default "https://kubernetes.default.svc" }} namespace: karpenter syncPolicy: automated: prune: true syncOptions: - CreateNamespace={{ .Values.karpenter.createNamespace }} retry: limit: 1 backoff: duration: 5s factor: 2 maxDuration: 1m {{- end -}}