apiVersion: apps/v1 kind: StatefulSet metadata: labels: app.kubernetes.io/name: argocd-application-controller app.kubernetes.io/part-of: argocd app.kubernetes.io/component: application-controller name: argocd-application-controller spec: selector: matchLabels: app.kubernetes.io/name: argocd-application-controller serviceName: argocd-application-controller replicas: 1 template: metadata: labels: app.kubernetes.io/name: argocd-application-controller spec: containers: - command: - argocd-application-controller env: - name: ARGOCD_CONTROLLER_REPLICAS value: "1" - 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_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_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_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: 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_NAMESPACES valueFrom: configMapKeyRef: name: argocd-cmd-params-cm key: application.namespaces optional: true image: quay.io/argoproj/argocd:latest imagePullPolicy: Always name: argocd-application-controller ports: - containerPort: 8082 readinessProbe: httpGet: path: /healthz port: 8082 initialDelaySeconds: 5 periodSeconds: 10 securityContext: runAsNonRoot: true readOnlyRootFilesystem: true allowPrivilegeEscalation: false capabilities: drop: - ALL seccompProfile: type: RuntimeDefault workingDir: /home/argocd volumeMounts: - name: argocd-repo-server-tls mountPath: /app/config/controller/tls - name: argocd-home mountPath: /home/argocd serviceAccountName: argocd-application-controller affinity: podAntiAffinity: preferredDuringSchedulingIgnoredDuringExecution: - weight: 100 podAffinityTerm: labelSelector: matchLabels: app.kubernetes.io/name: argocd-application-controller topologyKey: kubernetes.io/hostname - weight: 5 podAffinityTerm: labelSelector: matchLabels: app.kubernetes.io/part-of: argocd topologyKey: kubernetes.io/hostname volumes: - emptyDir: {} name: argocd-home - 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