summaryrefslogtreecommitdiff
path: root/astroshop-platform/argocd-helmchart/templates/argocd-application-controller
diff options
context:
space:
mode:
Diffstat (limited to 'astroshop-platform/argocd-helmchart/templates/argocd-application-controller')
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrole.yaml23
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrolebinding.yaml16
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/deployment.yaml453
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/metrics.yaml35
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/networkpolicy.yaml20
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/pdb.yaml27
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/prometheusrule.yaml24
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/role.yaml64
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/rolebinding.yaml15
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/serviceaccount.yaml19
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/servicemonitor.yaml51
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/statefulset.yaml465
-rw-r--r--astroshop-platform/argocd-helmchart/templates/argocd-application-controller/vpa.yaml33
13 files changed, 1245 insertions, 0 deletions
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrole.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrole.yaml
new file mode 100644
index 0000000..615b56f
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrole.yaml
@@ -0,0 +1,23 @@
+{{- if .Values.createClusterRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+rules:
+ {{- if .Values.controller.clusterRoleRules.enabled }}
+ {{- toYaml .Values.controller.clusterRoleRules.rules | nindent 2 }}
+ {{- else }}
+ - apiGroups:
+ - '*'
+ resources:
+ - '*'
+ verbs:
+ - '*'
+ - nonResourceURLs:
+ - '*'
+ verbs:
+ - '*'
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrolebinding.yaml
new file mode 100644
index 0000000..6076c53
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/clusterrolebinding.yaml
@@ -0,0 +1,16 @@
+{{- if .Values.createClusterRoles }}
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRoleBinding
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: ClusterRole
+ name: {{ include "argo-cd.controller.fullname" . }}
+subjects:
+- kind: ServiceAccount
+ name: {{ include "argo-cd.controller.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/deployment.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/deployment.yaml
new file mode 100644
index 0000000..9e8383a
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/deployment.yaml
@@ -0,0 +1,453 @@
+{{- if .Values.controller.dynamicClusterDistribution }}
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentAnnotations) .Values.controller.deploymentAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.deploymentLabels) .Values.controller.deploymentLabels) }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ replicas: {{ .Values.controller.replicas }}
+ revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit | default .Values.global.revisionHistoryLimit }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }}
+ {{- if .Values.configs.cm.create }}
+ checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.controller.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.controller.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.controller.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.controller.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.controller.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.controller.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.controller.automountServiceAccountToken }}
+ containers:
+ - args:
+ - /usr/local/bin/argocd-application-controller
+ - --metrics-port={{ .Values.controller.containerPorts.metrics }}
+ {{- if .Values.controller.metrics.applicationLabels.enabled }}
+ {{- range .Values.controller.metrics.applicationLabels.labels }}
+ - --metrics-application-labels
+ - {{ . }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.controller.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ image: {{ default .Values.global.image.repository .Values.controller.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.controller.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.controller.image.imagePullPolicy }}
+ name: {{ .Values.controller.name }}
+ env:
+ {{- with (concat .Values.global.env .Values.controller.env) }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ - name: ARGOCD_ENABLE_DYNAMIC_CLUSTER_DISTRIBUTION
+ value: "true"
+ - name: ARGOCD_CONTROLLER_HEARTBEAT_TIME
+ value: {{ .Values.controller.heartbeatTime | quote }}
+ - name: ARGOCD_APPLICATION_CONTROLLER_NAME
+ value: {{ template "argo-cd.controller.fullname" . }}
+ - name: ARGOCD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.reconciliation
+ optional: true
+ - name: ARGOCD_HARD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.hard.reconciliation
+ optional: true
+ - name: ARGOCD_RECONCILIATION_JITTER
+ valueFrom:
+ configMapKeyRef:
+ key: timeout.reconciliation.jitter
+ name: argocd-cm
+ optional: true
+ - name: ARGOCD_REPO_ERROR_GRACE_PERIOD_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.error.grace.period.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: repo.server
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_STATUS_PROCESSORS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.status.processors
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OPERATION_PROCESSORS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.operation.processors
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.log.format
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.log.level
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_METRICS_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.metrics.cache.expiration
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_FACTOR
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.factor
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_CAP_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.cap.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_COOLDOWN_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.cooldown.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.sync.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.plaintext
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_STRICT_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.strict.tls
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_PERSIST_RESOURCE_HEALTH
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.resource.health.persist
+ optional: true
+ - name: ARGOCD_APP_STATE_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.app.state.cache.expiration
+ optional: true
+ - name: REDIS_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.server
+ optional: true
+ - name: REDIS_COMPRESSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.compression
+ optional: true
+ - name: REDISDB
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.db
+ optional: true
+ - name: REDIS_USERNAME
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
+ - name: REDIS_SENTINEL_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-username
+ optional: true
+ - name: REDIS_SENTINEL_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-password
+ optional: true
+ - name: ARGOCD_DEFAULT_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.default.cache.expiration
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.address
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_INSECURE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.insecure
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_HEADERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.headers
+ optional: true
+ - name: ARGOCD_APPLICATION_NAMESPACES
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: application.namespaces
+ optional: true
+ - name: ARGOCD_CONTROLLER_SHARDING_ALGORITHM
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.sharding.algorithm
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_KUBECTL_PARALLELISM_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.kubectl.parallelism.limit
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_MAX
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.k8sclient.retry.max
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_BASE_BACKOFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.k8sclient.retry.base.backoff
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SERVER_SIDE_DIFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.diff.server.side
+ optional: true
+ - name: ARGOCD_IGNORE_NORMALIZER_JQ_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.ignore.normalizer.jq.timeout
+ optional: true
+ - name: ARGOCD_HYDRATOR_ENABLED
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: hydrator.enabled
+ optional: true
+ - name: ARGOCD_CLUSTER_CACHE_BATCH_EVENTS_PROCESSING
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.cluster.cache.batch.events.processing
+ optional: true
+ - name: ARGOCD_CLUSTER_CACHE_EVENTS_PROCESSING_INTERVAL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.cluster.cache.events.processing.interval
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_COMMIT_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: commit.server
+ optional: true
+ {{- with .Values.controller.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.controller.containerPorts.metrics }}
+ protocol: TCP
+ readinessProbe:
+ httpGet:
+ path: /healthz
+ port: metrics
+ initialDelaySeconds: {{ .Values.controller.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.controller.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.controller.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.controller.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.controller.readinessProbe.failureThreshold }}
+ resources:
+ {{- toYaml .Values.controller.resources | nindent 10 }}
+ {{- with .Values.controller.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ workingDir: /home/argocd
+ volumeMounts:
+ {{- with .Values.controller.volumeMounts }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - mountPath: /app/config/controller/tls
+ name: argocd-repo-server-tls
+ - mountPath: /home/argocd
+ name: argocd-home
+ - name: argocd-cmd-params-cm
+ mountPath: /home/argocd/params
+ {{- with .Values.controller.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with .Values.controller.initContainers }}
+ initContainers:
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.controller) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.controller.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ {{- with .Values.controller.volumes }}
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ - name: argocd-home
+ {{- if .Values.controller.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.controller.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+
+ - name: argocd-repo-server-tls
+ secret:
+ secretName: argocd-repo-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ - name: argocd-cmd-params-cm
+ configMap:
+ optional: true
+ name: argocd-cmd-params-cm
+ items:
+ - key: controller.profile.enabled
+ path: profiler.enabled
+ {{- if .Values.controller.hostNetwork }}
+ hostNetwork: {{ .Values.controller.hostNetwork }}
+ {{- end }}
+ {{- with .Values.controller.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.controller.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/metrics.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/metrics.yaml
new file mode 100644
index 0000000..086dfe9
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/metrics.yaml
@@ -0,0 +1,35 @@
+{{- if .Values.controller.metrics.enabled }}
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}-metrics
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" "metrics") | nindent 4 }}
+ {{- with .Values.controller.metrics.service.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- if or .Values.controller.metrics.service.annotations .Values.global.addPrometheusAnnotations }}
+ annotations:
+ {{- if .Values.global.addPrometheusAnnotations }}
+ prometheus.io/port: {{ .Values.controller.metrics.service.servicePort | quote }}
+ prometheus.io/scrape: "true"
+ {{- end }}
+ {{- range $key, $value := .Values.controller.metrics.service.annotations }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ type: {{ .Values.controller.metrics.service.type }}
+ {{- if and .Values.controller.metrics.service.clusterIP (eq .Values.controller.metrics.service.type "ClusterIP") }}
+ clusterIP: {{ .Values.controller.metrics.service.clusterIP }}
+ {{- end }}
+ {{- include "argo-cd.dualStack" . | indent 2 }}
+ ports:
+ - name: {{ .Values.controller.metrics.service.portName }}
+ protocol: TCP
+ port: {{ .Values.controller.metrics.service.servicePort }}
+ targetPort: metrics
+ selector:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/networkpolicy.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/networkpolicy.yaml
new file mode 100644
index 0000000..cd710ab
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/networkpolicy.yaml
@@ -0,0 +1,20 @@
+{{- if or .Values.controller.networkPolicy.create .Values.global.networkPolicy.create }}
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+spec:
+ ingress:
+ - from:
+ - namespaceSelector: {}
+ ports:
+ - port: metrics
+ podSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
+ policyTypes:
+ - Ingress
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/pdb.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/pdb.yaml
new file mode 100644
index 0000000..bef0979
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/pdb.yaml
@@ -0,0 +1,27 @@
+{{- if .Values.controller.pdb.enabled }}
+apiVersion: policy/v1
+kind: PodDisruptionBudget
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with .Values.controller.pdb.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.pdb.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+spec:
+ {{- with .Values.controller.pdb.maxUnavailable }}
+ maxUnavailable: {{ . }}
+ {{- else }}
+ minAvailable: {{ .Values.controller.pdb.minAvailable | default 0 }}
+ {{- end }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/prometheusrule.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/prometheusrule.yaml
new file mode 100644
index 0000000..6ddc7f4
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/prometheusrule.yaml
@@ -0,0 +1,24 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.controller.metrics.enabled .Values.controller.metrics.rules.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: PrometheusRule
+metadata:
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.controller.metrics.rules.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- if .Values.controller.metrics.rules.selector }}
+{{- toYaml .Values.controller.metrics.rules.selector | nindent 4 }}
+ {{- end }}
+ {{- if .Values.controller.metrics.rules.additionalLabels }}
+{{- toYaml .Values.controller.metrics.rules.additionalLabels | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.metrics.rules.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ groups:
+ - name: argocd
+ rules:
+{{- toYaml .Values.controller.metrics.rules.spec | nindent 4 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/role.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/role.yaml
new file mode 100644
index 0000000..9165e96
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/role.yaml
@@ -0,0 +1,64 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: Role
+metadata:
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+rules:
+{{- with .Values.controller.roleRules }}
+{{- toYaml . | nindent 2 }}
+{{- else }}
+- apiGroups:
+ - ""
+ resources:
+ - secrets
+ - configmaps
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - argoproj.io
+ resources:
+ - applications
+ - applicationsets
+ - appprojects
+ verbs:
+ - create
+ - get
+ - list
+ - watch
+ - update
+ - patch
+ - delete
+- apiGroups:
+ - ""
+ resources:
+ - events
+ verbs:
+ - create
+ - list
+- apiGroups:
+ - apps
+ resources:
+ - deployments
+ verbs:
+ - get
+ - list
+ - watch
+{{- if and (not .Values.createClusterRoles) .Values.controller.dynamicClusterDistribution }}
+- apiGroups:
+ - ""
+ resources:
+ - configmaps
+ resourceNames:
+ - argocd-app-controller-shard-cm
+ verbs:
+ - get
+ - list
+ - watch
+ - create
+ - update
+{{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/rolebinding.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/rolebinding.yaml
new file mode 100644
index 0000000..4868163
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/rolebinding.yaml
@@ -0,0 +1,15 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: RoleBinding
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+roleRef:
+ apiGroup: rbac.authorization.k8s.io
+ kind: Role
+ name: {{ include "argo-cd.controller.fullname" . }}
+subjects:
+ - kind: ServiceAccount
+ name: {{ include "argo-cd.controller.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/serviceaccount.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/serviceaccount.yaml
new file mode 100644
index 0000000..575cbf6
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/serviceaccount.yaml
@@ -0,0 +1,19 @@
+{{- if .Values.controller.serviceAccount.create }}
+apiVersion: v1
+kind: ServiceAccount
+automountServiceAccountToken: {{ .Values.controller.serviceAccount.automountServiceAccountToken }}
+metadata:
+ name: {{ include "argo-cd.controller.serviceAccountName" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ {{- with .Values.controller.serviceAccount.annotations }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with .Values.controller.serviceAccount.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/servicemonitor.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/servicemonitor.yaml
new file mode 100644
index 0000000..d191247
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/servicemonitor.yaml
@@ -0,0 +1,51 @@
+{{- if and (.Capabilities.APIVersions.Has "monitoring.coreos.com/v1") .Values.controller.metrics.enabled .Values.controller.metrics.serviceMonitor.enabled }}
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ default (include "argo-cd.namespace" .) .Values.controller.metrics.serviceMonitor.namespace | quote }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with .Values.controller.metrics.serviceMonitor.selector }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.additionalLabels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.annotations }}
+ annotations:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ endpoints:
+ - port: {{ .Values.controller.metrics.service.portName }}
+ {{- with .Values.controller.metrics.serviceMonitor.interval }}
+ interval: {{ . }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.scrapeTimeout }}
+ scrapeTimeout: {{ . }}
+ {{- end }}
+ path: /metrics
+ {{- with .Values.controller.metrics.serviceMonitor.relabelings }}
+ relabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.metricRelabelings }}
+ metricRelabelings:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ honorLabels: {{ .Values.controller.metrics.serviceMonitor.honorLabels }}
+ {{- with .Values.controller.metrics.serviceMonitor.scheme }}
+ scheme: {{ . }}
+ {{- end }}
+ {{- with .Values.controller.metrics.serviceMonitor.tlsConfig }}
+ tlsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ namespaceSelector:
+ matchNames:
+ - {{ include "argo-cd.namespace" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "component" .Values.controller.name "name" "metrics") | nindent 6 }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/statefulset.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/statefulset.yaml
new file mode 100644
index 0000000..2598424
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/statefulset.yaml
@@ -0,0 +1,465 @@
+{{- if not .Values.controller.dynamicClusterDistribution | default false }}
+apiVersion: apps/v1
+kind: StatefulSet
+metadata:
+ {{- with (mergeOverwrite (deepCopy .Values.global.statefulsetAnnotations) .Values.controller.statefulsetAnnotations) }}
+ annotations:
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ name: {{ template "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+spec:
+ replicas: {{ .Values.controller.replicas }}
+ revisionHistoryLimit: {{ .Values.controller.revisionHistoryLimit | default .Values.global.revisionHistoryLimit }}
+ serviceName: {{ include "argo-cd.controller.fullname" . }}
+ selector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" . "name" .Values.controller.name) | nindent 6 }}
+ template:
+ metadata:
+ annotations:
+ checksum/cmd-params: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cmd-params-cm.yaml") . | sha256sum }}
+ {{- if .Values.configs.cm.create }}
+ checksum/cm: {{ include (print $.Template.BasePath "/argocd-configs/argocd-cm.yaml") . | sha256sum }}
+ {{- end }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podAnnotations) .Values.controller.podAnnotations) }}
+ {{- range $key, $value := . }}
+ {{ $key }}: {{ $value | quote }}
+ {{- end }}
+ {{- end }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 8 }}
+ {{- with (mergeOverwrite (deepCopy .Values.global.podLabels) .Values.controller.podLabels) }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ spec:
+ {{- with .Values.controller.runtimeClassName | default .Values.global.runtimeClassName }}
+ runtimeClassName: {{ . }}
+ {{- end }}
+ {{- with .Values.controller.imagePullSecrets | default .Values.global.imagePullSecrets }}
+ imagePullSecrets:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.hostAliases }}
+ hostAliases:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.global.securityContext }}
+ securityContext:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.priorityClassName | default .Values.global.priorityClassName }}
+ priorityClassName: {{ . }}
+ {{- end }}
+ {{- if .Values.controller.terminationGracePeriodSeconds }}
+ terminationGracePeriodSeconds: {{ .Values.controller.terminationGracePeriodSeconds }}
+ {{- end }}
+ serviceAccountName: {{ include "argo-cd.controller.serviceAccountName" . }}
+ automountServiceAccountToken: {{ .Values.controller.automountServiceAccountToken }}
+ containers:
+ - args:
+ - /usr/local/bin/argocd-application-controller
+ - --metrics-port={{ .Values.controller.containerPorts.metrics }}
+ {{- if .Values.controller.metrics.applicationLabels.enabled }}
+ {{- range .Values.controller.metrics.applicationLabels.labels }}
+ - --metrics-application-labels
+ - {{ . }}
+ {{- end }}
+ {{- end }}
+ {{- with .Values.controller.extraArgs }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ image: {{ default .Values.global.image.repository .Values.controller.image.repository }}:{{ default (include "argo-cd.defaultTag" .) .Values.controller.image.tag }}
+ imagePullPolicy: {{ default .Values.global.image.imagePullPolicy .Values.controller.image.imagePullPolicy }}
+ name: {{ .Values.controller.name }}
+ env:
+ {{- with (concat .Values.global.env .Values.controller.env) }}
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ - name: ARGOCD_CONTROLLER_REPLICAS
+ value: {{ .Values.controller.replicas | quote }}
+ - name: ARGOCD_APPLICATION_CONTROLLER_NAME
+ value: {{ template "argo-cd.controller.fullname" . }}
+ - name: ARGOCD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.reconciliation
+ optional: true
+ - name: ARGOCD_HARD_RECONCILIATION_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cm
+ key: timeout.hard.reconciliation
+ optional: true
+ - name: ARGOCD_RECONCILIATION_JITTER
+ valueFrom:
+ configMapKeyRef:
+ key: timeout.reconciliation.jitter
+ name: argocd-cm
+ optional: true
+ - name: ARGOCD_REPO_ERROR_GRACE_PERIOD_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.error.grace.period.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: repo.server
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_STATUS_PROCESSORS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.status.processors
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OPERATION_PROCESSORS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.operation.processors
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_LOGFORMAT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.log.format
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_LOGLEVEL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.log.level
+ optional: true
+ - name: ARGOCD_LOG_FORMAT_TIMESTAMP
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: log.format.timestamp
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_METRICS_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.metrics.cache.expiration
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_TIMEOUT_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_FACTOR
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.factor
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_CAP_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.cap.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_BACKOFF_COOLDOWN_SECONDS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.self.heal.backoff.cooldown.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SYNC_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.sync.timeout.seconds
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.plaintext
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_STRICT_TLS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.repo.server.strict.tls
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_PERSIST_RESOURCE_HEALTH
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.resource.health.persist
+ optional: true
+ - name: ARGOCD_APP_STATE_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.app.state.cache.expiration
+ optional: true
+ - name: REDIS_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.server
+ optional: true
+ - name: REDIS_COMPRESSION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.compression
+ optional: true
+ - name: REDISDB
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: redis.db
+ optional: true
+ - name: REDIS_USERNAME
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisUsernameSecretRef" . | nindent 16 }}
+ - name: REDIS_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ {{- include "argo-cd.redisPasswordSecretRef" . | nindent 16 }}
+ - name: REDIS_SENTINEL_USERNAME
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-username
+ optional: true
+ - name: REDIS_SENTINEL_PASSWORD
+ valueFrom:
+ secretKeyRef:
+ name: {{ default (include "argo-cd.redis.fullname" .) .Values.externalRedis.existingSecret }}
+ key: redis-sentinel-password
+ optional: true
+ - name: ARGOCD_DEFAULT_CACHE_EXPIRATION
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.default.cache.expiration
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ADDRESS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.address
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_INSECURE
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.insecure
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_HEADERS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.headers
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ATTRS
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: otlp.attrs
+ optional: true
+ - name: ARGOCD_APPLICATION_NAMESPACES
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: application.namespaces
+ optional: true
+ - name: ARGOCD_CONTROLLER_SHARDING_ALGORITHM
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.sharding.algorithm
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_KUBECTL_PARALLELISM_LIMIT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.kubectl.parallelism.limit
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_MAX
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.k8sclient.retry.max
+ optional: true
+ - name: ARGOCD_K8SCLIENT_RETRY_BASE_BACKOFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.k8sclient.retry.base.backoff
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_SERVER_SIDE_DIFF
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.diff.server.side
+ optional: true
+ - name: ARGOCD_IGNORE_NORMALIZER_JQ_TIMEOUT
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.ignore.normalizer.jq.timeout
+ optional: true
+ - name: ARGOCD_HYDRATOR_ENABLED
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: hydrator.enabled
+ optional: true
+ - name: ARGOCD_CLUSTER_CACHE_BATCH_EVENTS_PROCESSING
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.cluster.cache.batch.events.processing
+ optional: true
+ - name: ARGOCD_CLUSTER_CACHE_EVENTS_PROCESSING_INTERVAL
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: controller.cluster.cache.events.processing.interval
+ optional: true
+ - name: ARGOCD_APPLICATION_CONTROLLER_COMMIT_SERVER
+ valueFrom:
+ configMapKeyRef:
+ name: argocd-cmd-params-cm
+ key: commit.server
+ optional: true
+ - name: KUBECACHEDIR
+ value: /tmp/kubecache
+ {{- with .Values.controller.envFrom }}
+ envFrom:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ ports:
+ - name: metrics
+ containerPort: {{ .Values.controller.containerPorts.metrics }}
+ protocol: TCP
+ readinessProbe:
+ httpGet:
+ path: /healthz
+ port: metrics
+ initialDelaySeconds: {{ .Values.controller.readinessProbe.initialDelaySeconds }}
+ periodSeconds: {{ .Values.controller.readinessProbe.periodSeconds }}
+ timeoutSeconds: {{ .Values.controller.readinessProbe.timeoutSeconds }}
+ successThreshold: {{ .Values.controller.readinessProbe.successThreshold }}
+ failureThreshold: {{ .Values.controller.readinessProbe.failureThreshold }}
+ resources:
+ {{- toYaml .Values.controller.resources | nindent 10 }}
+ {{- with .Values.controller.containerSecurityContext }}
+ securityContext:
+ {{- toYaml . | nindent 10 }}
+ {{- end }}
+ workingDir: /home/argocd
+ volumeMounts:
+ {{- with .Values.controller.volumeMounts }}
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ - mountPath: /app/config/controller/tls
+ name: argocd-repo-server-tls
+ - mountPath: /home/argocd
+ name: argocd-home
+ - name: argocd-cmd-params-cm
+ mountPath: /home/argocd/params
+ - name: argocd-application-controller-tmp
+ mountPath: /tmp
+ {{- with .Values.controller.extraContainers }}
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with .Values.controller.initContainers }}
+ initContainers:
+ {{- tpl (toYaml .) $ | nindent 6 }}
+ {{- end }}
+ {{- with include "argo-cd.affinity" (dict "context" . "component" .Values.controller) }}
+ affinity:
+ {{- trim . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.nodeSelector | default .Values.global.nodeSelector }}
+ nodeSelector:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.tolerations | default .Values.global.tolerations }}
+ tolerations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ {{- with .Values.controller.topologySpreadConstraints | default .Values.global.topologySpreadConstraints }}
+ topologySpreadConstraints:
+ {{- range $constraint := . }}
+ - {{ toYaml $constraint | nindent 8 | trim }}
+ {{- if not $constraint.labelSelector }}
+ labelSelector:
+ matchLabels:
+ {{- include "argo-cd.selectorLabels" (dict "context" $ "name" $.Values.controller.name) | nindent 12 }}
+ {{- end }}
+ {{- end }}
+ {{- end }}
+ volumes:
+ {{- with .Values.controller.volumes }}
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+ - name: argocd-home
+ {{- if .Values.controller.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.controller.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: argocd-application-controller-tmp
+ {{- if .Values.controller.emptyDir.sizeLimit }}
+ emptyDir:
+ sizeLimit: {{ .Values.controller.emptyDir.sizeLimit }}
+ {{- else }}
+ emptyDir: {}
+ {{- end }}
+ - name: argocd-repo-server-tls
+ secret:
+ secretName: argocd-repo-server-tls
+ optional: true
+ items:
+ - key: tls.crt
+ path: tls.crt
+ - key: tls.key
+ path: tls.key
+ - key: ca.crt
+ path: ca.crt
+ - name: argocd-cmd-params-cm
+ configMap:
+ optional: true
+ name: argocd-cmd-params-cm
+ items:
+ - key: controller.profile.enabled
+ path: profiler.enabled
+ {{- if .Values.controller.hostNetwork }}
+ hostNetwork: {{ .Values.controller.hostNetwork }}
+ {{- end }}
+ {{- with .Values.controller.dnsConfig }}
+ dnsConfig:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
+ dnsPolicy: {{ .Values.controller.dnsPolicy }}
+{{- end }}
diff --git a/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/vpa.yaml b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/vpa.yaml
new file mode 100644
index 0000000..c5cf402
--- /dev/null
+++ b/astroshop-platform/argocd-helmchart/templates/argocd-application-controller/vpa.yaml
@@ -0,0 +1,33 @@
+{{- if and (.Values.controller.vpa) (.Values.controller.vpa.enabled) }}
+apiVersion: autoscaling.k8s.io/v1
+kind: VerticalPodAutoscaler
+metadata:
+ name: {{ include "argo-cd.controller.fullname" . }}
+ namespace: {{ include "argo-cd.namespace" . }}
+ labels:
+ {{- include "argo-cd.labels" (dict "context" . "component" .Values.controller.name "name" .Values.controller.name) | nindent 4 }}
+ {{- with .Values.controller.vpa.labels }}
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+ {{- with .Values.controller.vpa.annotations }}
+ annnotaions:
+ {{- toYaml . | nindent 4 }}
+ {{- end }}
+spec:
+ targetRef:
+ apiVersion: "apps/v1"
+ {{- if .Values.controller.dynamicClusterDistribution }}
+ kind: Deployment
+ {{- else }}
+ kind: StatefulSet
+ {{- end }}
+ name: {{ template "argo-cd.controller.fullname" . }}
+ updatePolicy:
+ updateMode: {{ .Values.controller.vpa.updateMode }}
+ resourcePolicy:
+ containerPolicies:
+ - containerName: {{ .Values.controller.name }}
+ {{ with .Values.controller.vpa.containerPolicy }}
+ {{- toYaml . | nindent 6 }}
+ {{- end }}
+{{- end }}