--- # Source: argocd/charts/argo-cd/templates/argocd-application-controller/statefulset.yaml apiVersion: apps/v1 kind: StatefulSet metadata: name: argocd-application-controller namespace: argocd labels: helm.sh/chart: argo-cd-9.1.5 app.kubernetes.io/name: argocd-application-controller app.kubernetes.io/instance: argocd app.kubernetes.io/component: application-controller app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: argocd app.kubernetes.io/version: "v3.2.1" spec: replicas: 1 revisionHistoryLimit: 5 serviceName: argocd-application-controller selector: matchLabels: app.kubernetes.io/name: argocd-application-controller app.kubernetes.io/instance: argocd template: metadata: annotations: checksum/cmd-params: bf2519278596ec7cee3e61f230a7b6ebbdcc8a5166fe036da04fccfdfa4ac1d1 checksum/cm: b85950385c4567f0f6332e53f51df2bbe58a65f5771ac318c863d1b4e831ff9b labels: helm.sh/chart: argo-cd-9.1.5 app.kubernetes.io/name: argocd-application-controller app.kubernetes.io/instance: argocd app.kubernetes.io/component: application-controller app.kubernetes.io/managed-by: Helm app.kubernetes.io/part-of: argocd app.kubernetes.io/version: "v3.2.1" spec: terminationGracePeriodSeconds: 30 serviceAccountName: argocd-application-controller automountServiceAccountToken: true containers: - args: - /usr/local/bin/argocd-application-controller - --metrics-port=8082 image: quay.io/argoproj/argocd:v3.2.1 imagePullPolicy: IfNotPresent name: application-controller env: - name: ARGOCD_CONTROLLER_REPLICAS value: "1" - name: ARGOCD_APPLICATION_CONTROLLER_NAME value: argocd-application-controller - 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_SYNC_WAVE_DELAY valueFrom: configMapKeyRef: name: argocd-cmd-params-cm key: controller.sync.wave.delay.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: name: "argocd-redis" key: redis-username optional: true - name: REDIS_PASSWORD valueFrom: secretKeyRef: name: "argocd-redis" # hard-coded in Job command and embedded Redis deployments (standalone and redis-ha) key: auth optional: false # Secret is not optional in this case ! - name: REDIS_SENTINEL_USERNAME valueFrom: secretKeyRef: name: argocd-redis-ha-haproxy key: redis-sentinel-username optional: true - name: REDIS_SENTINEL_PASSWORD valueFrom: secretKeyRef: name: argocd-redis-ha-haproxy 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 ports: - name: metrics containerPort: 8082 protocol: TCP readinessProbe: httpGet: path: /healthz port: metrics initialDelaySeconds: 10 periodSeconds: 10 timeoutSeconds: 1 successThreshold: 1 failureThreshold: 3 resources: {} securityContext: allowPrivilegeEscalation: false capabilities: drop: - ALL readOnlyRootFilesystem: true runAsNonRoot: true seccompProfile: type: RuntimeDefault workingDir: /home/argocd volumeMounts: - 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 affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchLabels: app.kubernetes.io/name: argocd-application-controller topologyKey: kubernetes.io/hostname nodeSelector: kubernetes.io/os: linux volumes: - name: argocd-home emptyDir: {} - name: argocd-application-controller-tmp emptyDir: {} - 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 dnsPolicy: ClusterFirst