Argocd#

Argocd - это декларативный инструмент непрерывного развертывания (CD) для Kubernetes, основанный на подходе GitOps. Он позволяет автоматизировать развертывание приложений, синхронизируя желаемое состояние кластера с описанием в Git-репозитории.

Основные задачи и возможности
  • Автоматизация развертывания приложений в Kubernetes: следит за изменениями в Git-репозитории и автоматически применяет обновления в кластере, обеспечивая соответствие текущего сост

  • Наблюдение за состоянием приложений: постоянно отслеживает реальное состояние приложений в кластере и сравнивает его с тем, что указано в репозитории. При обнаружении расхождений можно автоматически или вручную выполнить синхронизацию.

  • Поддержка GitOps-подхода: все изменения происходят через Git, что упрощает аудит, управление версиями и восстановление состояния кластера.

  • Интеграция с CI/CD пайплайнами: может быть частью автоматизированного процесса доставки, взаимодействуя с такими системами, как GitHub Actions, Jenkins, GitLab CI и другими.

  • Веб-интерфейс: предоставляет удобный пользовательский интерфейс (UI) для управления приложениями, просмотра статусов и выполнения синхронизации.

Примечание

Argocd является единственным инструментом компонента GitOps и устанавливается с ним по умолчанию. Пользовательский интерфейс (UI) Argocd автоматически интегрирован с инструментом Dex и пользователь kubeadmin является администратором.

Конфигурация values#

Значения можно переопределить через редактирование инструмента с именем argocd и указанием нужных values в spec.values. Общее описание конфигурации values для инструментов описано в разделе «Конфигурации инструментов дополнительных компонентов».

nameOverride – переопределение имени чарта#

Параметр

Описание

Значение по умолчанию

nameOverride

Переопределение базового имени ресурсов чарта для генерации имен

argocd

fullnameOverride

Полное переопределение имени для всех создаваемых ресурсов чарта

""

namespaceOverride

Переопределение пространства имен вместо значения по умолчанию

""

kubeVersionOverride

Переопределение версии Kubernetes, используемой при вычислении условий в шаблонах чарта

""

apiVersionOverrides

Переопределение версий API для отдельных типов ресурсов

{}

createAggregateRoles

Включение создания агрегированных ролей, расширяющих существующие ClusterRole для работы с ресурсами ArgoCD

false

createClusterRoles

Включение создания ClusterRole для управления приложениями в кластере, где развернут ArgoCD

true

openshift – настройки совместимости с OpenShift#

Параметр

Описание

Значение по умолчанию

openshift.enabled

Включение режима совместимости с OpenShift, позволяющего repo-server работать с произвольным UID

false

crds – настройки установки и обновления Custom Resource Definitions (CRD)#

Параметр

Описание

Значение по умолчанию

crds.install

Включение установки и обновления CRD вместе с релизом чарта

true

crds.keep

Сохранение CRD при удалении Helm-релиза

true

crds.annotations

Аннотации, добавляемые к создаваемым ресурсам

argocd.argoproj.io/sync-options: ServerSideApply=true

crds.additionalLabels

Дополнительные метки, добавляемые к создаваемым CRD

{}

configs – конфигурации ArgoCD#

Параметр

Описание

Значение по умолчанию

configs.cm.create

Создание ConfigMap argocd-cm для декларативной конфигурации ArgoCD

true

configs.cm.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

configs.cm.application.instanceLabelKey

Ключ метки, используемой для отслеживания ресурсов приложений

argocd.argoproj.io/instance

configs.cm.application.sync.impersonation.enabled

Включение имперсонации сервисного аккаунта при выполнении синхронизации (альфа-функция)

false

configs.cm.exec.enabled

Включение функции exec (выполнение команд в контейнерах) в веб-интерфейсе

false

configs.cm.admin.enabled

Включение встроенной учетной записи администратора

false

configs.cm.users.anonymous.enabled

Разрешение анонимного доступа к интерфейсу ArgoCD

false

configs.cm.timeout.reconciliation

Интервал сверки текущего состояния приложений с целевым

120s

configs.cm.timeout.reconciliation.jitter

Случайный сдвиг, добавляемый к интервалу сверки для распределения нагрузки на repo-server

60s

configs.cm.timeout.hard.reconciliation

Тайм-аут принудительного обновления данных приложения и кеша целевых манифестов (0 – отключено)

0s

configs.cm.statusbadge.enabled

Включение генерации значков статуса приложений (для встраивания во внешние системы)

false

configs.cm.oidc.config

Конфигурация OIDC-провайдера для аутентификации пользователей

name: "Platform V DropApp"
issuer: https://auth.{{ include "ingress.domain" . }}
clientID: argo
clientSecret: secret
requestedIDTokenClaims:
 email:
   essential: true
 groups:
   essential: true
requestedScopes:
 - openid
 - profile
 - email
 - groups

configs.cm.resource.customizations.ignoreResourceUpdates.all

Игнорирование изменений поля status для всех типов ресурсов, не влияющих на оценку состояния (health)

jsonPointers:
  - /status

configs.cm.resource.customizations.ignoreResourceUpdates.argoproj.io_Application

Игнорирование часто изменяемых служебных полей ресурса Application, не относящихся к целевому состоянию приложения

jqPathExpressions:
  - '.metadata.annotations."notified.notifications.argoproj.io"'
  - '.metadata.annotations."argocd.argoproj.io/refresh"'
  - '.metadata.annotations."argocd.argoproj.io/hydrate"'
  - '.operation'

configs.cm.resource.customizations.ignoreResourceUpdates.argoproj.io_Rollout

Игнорирование служебных аннотаций, добавляемых Argo Rollouts

jqPathExpressions:
  - '.metadata.annotations."notified.notifications.argoproj.io"'

configs.cm.resource.customizations.ignoreResourceUpdates.autoscaling_HorizontalPodAutoscaler

Игнорирование устаревших аннотаций HPA из группы API autoscaling/v1

jqPathExpressions:
  - '.metadata.annotations."autoscaling.alpha.kubernetes.io/behavior"'
  - '.metadata.annotations."autoscaling.alpha.kubernetes.io/conditions"'
  - '.metadata.annotations."autoscaling.alpha.kubernetes.io/metrics"'
  - '.metadata.annotations."autoscaling.alpha.kubernetes.io/current-metrics"'

configs.cm.resource.customizations.ignoreResourceUpdates.ConfigMap

Игнорирование аннотаций cluster-autoscaler и устаревших записей leader election в ConfigMap

jqPathExpressions:
  - '.metadata.annotations."cluster-autoscaler.kubernetes.io/last-updated"'
  - '.metadata.annotations."control-plane.alpha.kubernetes.io/leader"'

configs.cm.resource.customizations.ignoreResourceUpdates.apps_ReplicaSet

Игнорирование служебных аннотаций масштабирования в ReplicaSet

jqPathExpressions:
  - '.metadata.annotations."deployment.kubernetes.io/desired-replicas"'
  - '.metadata.annotations."deployment.kubernetes.io/max-replicas"'
  - '.metadata.annotations."rollout.argoproj.io/desired-replicas"'

configs.cm.resource.customizations.ignoreResourceUpdates.discovery.k8s.io_EndpointSlice

Игнорирование изменений в EndpointSlice, если данный тип ресурсов не исключен глобально

jsonPointers:
  - /metadata
  - /endpoints
  - /ports

configs.cm.resource.customizations.ignoreResourceUpdates.Endpoints

Игнорирование изменений в Endpoints, если данный тип ресурсов не исключен глобально

jsonPointers:
  - /metadata
  - /subsets

configs.cm.resource.exclusions

Список типов ресурсов Kubernetes, которые ArgoCD не отслеживает, для снижения нагрузки и уменьшения визуального шума в интерфейсе

- apiGroups:
  - ''
  - discovery.k8s.io
  kinds:
  - Endpoints
  - EndpointSlice
- apiGroups:
  - coordination.k8s.io
  kinds:
  - Lease
- apiGroups:
  - authentication.k8s.io
  - authorization.k8s.io
  kinds:
  - SelfSubjectReview
  - TokenReview
  - LocalSubjectAccessReview
  - SelfSubjectAccessReview
  - SelfSubjectRulesReview
  - SubjectAccessReview
- apiGroups:
  - certificates.k8s.io
  kinds:
  - CertificateSigningRequest
- apiGroups:
  - cert-manager.io
  kinds:
  - CertificateRequest
- apiGroups:
  - cilium.io
  kinds:
  - CiliumIdentity
  - CiliumEndpoint
  - CiliumEndpointSlice
- apiGroups:
  - kyverno.io
  - reports.kyverno.io
  - wgpolicyk8s.io
  kinds:
  - PolicyReport
  - ClusterPolicyReport
  - EphemeralReport
  - ClusterEphemeralReport
  - AdmissionReport
  - ClusterAdmissionReport
  - BackgroundScanReport
  - ClusterBackgroundScanReport
  - UpdateRequest

configs.params.create

Создание ConfigMap argocd-cmd-params-cm для параметров командной строки компонентов

true

configs.params.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

configs.params.otlp.address

Адрес сервера OTLP (OpenTelemetry Protocol) для экспорта трейсов

""

configs.params.controller.status.processors

Количество рабочих узлов обработки статуса приложений в контроллере

20

configs.params.controller.operation.processors

Количество рабочих узлов обработки операций синхронизации в контроллере

10

configs.params.controller.self.heal.timeout.seconds

Интервал (в секундах) между попытками автоматического восстановления (self-heal) приложения

5

configs.params.controller.repo.server.timeout.seconds

Тайм-аут (в секундах) RPC-вызовов от контроллера к repo-server

60

configs.params.controller.sync.timeout.seconds

Максимальное время (в секундах) синхронизации приложения; 0 – без ограничения

0

configs.params.server.insecure

Запуск сервера ArgoCD без TLS (трафик передается в открытом виде)

true

configs.params.server.basehref

Базовый путь (base href) для веб-интерфейса сервера

/

configs.params.server.rootpath

Путь к корневому каталогу для обслуживания статических файлов сервера

""

configs.params.server.staticassets

Путь к каталогу пользовательских статических ресурсов веб-интерфейса

/shared/app

configs.params.server.disable.auth

Отключение аутентификации на сервере ArgoCD

false

configs.params.server.enable.gzip

Включение сжатия ответов сервера с использованием gzip

true

configs.params.server.enable.proxy.extension

Включение поддержки прокси-расширений сервера

false

configs.params.hydrator.enabled

Включение функции hydrator (альфа-стадия)

false

configs.params.server.x.frame.options

Значение HTTP-заголовка X-Frame-Options для защиты от clickjacking

sameorigin

configs.params.reposerver.parallelism.limit

Максимальное количество параллельных запросов к repo-server; 0 – без ограничения

0

configs.params.applicationsetcontroller.policy

Политика управления приложениями, создаваемыми ApplicationSet-контроллером.
Возможные значения: sync, create-only, create-update, create-delete

sync

configs.params.applicationsetcontroller.enable.progressive.syncs

Включение прогрессивной синхронизации для ApplicationSet

false

configs.params.applicationsetcontroller.namespaces

Список пространств имен, в которых разрешено создание ресурсов ApplicationSet

""

configs.params.application.namespaces

Список пространств имен, в которых разрешено создание ресурсов Application

""

configs.params.controller.ignore.normalizer.jq.timeout

Тайм-аут вычисления выражений JQPathExpression при нормализации ресурсов

"1s"

configs.rbac.create

Активация автоматического создания ресурсов RBAC

true

configs.rbac.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

configs.rbac.policy.default

Политика доступа по умолчанию для неаутентифицированных запросов

""

configs.rbac.policy.csv

Правила разграничения доступа в формате CSV (политики и роли Casbin)

p, role:org-admin, applications, *, */*, allow
p, role:org-admin, clusters, get, *, allow
p, role:org-admin, repositories, *, *, allow
p, role:org-admin, logs, get, *, allow
p, role:org-admin, exec, create, */*, allow
g, kubeadmin, role:admin
g, argocd-admin, role:admin

configs.rbac.scopes

Список областей (scopes) токена, используемых для сопоставления с ролями RBAC

[groups, email]

configs.rbac.policy.matchMode

Режим сопоставления шаблонов в политиках Casbin.
Возможные значения: glob, regex

"glob"

configs.gpg.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

configs.gpg.keys

Публичные GPG-ключи для верификации подписей коммитов в Git-репозиториях

{}

configs.ssh.create

Создание ConfigMap argocd-ssh-known-hosts-cm

true

configs.ssh.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

configs.ssh.knownHosts

Список известных хостов и их SSH-ключей для подключения к публичным Git-репозиториям

[ssh.github.com]:443 ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
[ssh.github.com]:443 ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
[ssh.github.com]:443 ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
bitbucket.org ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBPIQmuzMBuKdWeF4+a2sjSSpBK0iqitSQ+5BM9KhpexuGt20JpTVM7u5BDZngncgrqDMbWdxMWWOGtZ9UgbqgZE=
bitbucket.org ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIIazEu89wgQZ4bqs3d63QSMzYVa0MuJ2e2gKTKqu+UUO
bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDQeJzhupRu0u0cdegZIa8e86EG2qOCsIsD1Xw0xSeiPDlCr7kq97NLmMbpKTX6Esc30NuoqEEHCuc7yWtwp8dI76EEEB1VqY9QJq6vk+aySyboD5QF61I/1WeTwu+deCbgKMGbUijeXhtfbxSxm6JwGrXrhBdofTsbKRUsrN1WoNgUa8uqN1Vx6WAJw1JHPhglEGGHea6QICwJOAr/6mrui/oB7pkaWKHj3z7d1IC4KWLtY47elvjbaTlkN04Kc/5LFEirorGYVbt15kAUlqGM65pk6ZBxtaO3+30LVlORZkxOh+LKL/BvbZ/iRNhItLqNyieoQj/uh/7Iv4uyH/cV/0b4WDSd3DptigWq84lJubb9t/DnZlrJazxyDCulTmKdOR7vs9gMTo+uoIrPSb8ScTtvw65+odKAlBj59dhnVp9zd7QUojOpXlL62Aw56U4oO+FALuevvMjiWeavKhJqlR7i5n9srYcrNV7ttmDw7kf/97P5zauIhxcjX+xHv4M=
github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=
github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJl
github.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQCj7ndNxQowgcQnjshcLrqPEiiphnt+VTTvDP6mHBL9j1aNUkY4Ue1gvwnGLVlOhGeYrnZaMgRK6+PKCUXaDbC7qtbW8gIkhL7aGCsOr/C56SJMy/BCZfxd1nWzAOxSDPgVsmerOBYfNqltV9/hWCqBywINIR+5dIg6JTJ72pcEpEjcYgXkE2YEFXV1JHnsKgbLWNlhScqb2UmyRkQyytRLtL+38TGxkxCflmO+5Z8CSSNY7GidjMIZ7Q4zMjA2n1nGrlTDkzwDCsw+wqFPGQA179cnfGWOWRVruj16z6XyvxvjJwbz0wQZ75XK5tKSb7FNyeIEs4TT4jk+S4dhPeAUC5y+bDYirYgM4GC7uEnztnZyaVWQ7B381AK4Qdrwt51ZqExKbQpTUNn+EjqoTwvqNj4kqx5QUCI0ThS/YkOxJCXmPUWZbhjpCg56i+2aB6CmK2JGhn57K5mj0MNdBXA4/WnwH6XoPWJzK5Nyu2zB3nAZp+S5hpQs+p1vN1/wsjk=
gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=
gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf
gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9
ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H
vs-ssh.visualstudio.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H

configs.ssh.extraHosts

Дополнительные записи хостов и SSH-ключей для приватных Git-репозиториев

""

configs.tls.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

configs.tls.certificates

TLS-сертификаты для подключения к Git-репозиториям (самоподписанные или выпущенные пользовательским удостоверяющим центром)

{}

configs.tls.create

Создание ConfigMap argocd-tls-certs-cm для хранения TLS-сертификатов

true

configs.cmp.create

Создание ConfigMap argocd-cmp-cm для конфигурации плагинов управления конфигурацией (CMP)

false

configs.cmp.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

configs.cmp.plugins

Определения плагинов управления конфигурацией (Config Management Plugin) в формате YAML.
Пример конфигурации:

my-plugin:
  init:
    command: [sh]
    args: [-c, 'echo "Initializing..."']
  generate:
    command: [sh, -c]
    args:
      - |
        echo '{"kind": "ConfigMap", "apiVersion": "v1", "metadata": {"name": "$ARGOCD_APP_NAME", "namespace": "$ARGOCD_APP_NAMESPACE", "annotations": {"Foo": "$ARGOCD_ENV_FOO", "KubeVersion": "$KUBE_VERSION", "KubeApiVersion": "$KUBE_API_VERSIONS","Bar": "baz"}}}'
  discover:
    fileName: "./subdir/s*.yaml"
    find:
      glob: "**/Chart.yaml"
      command: [sh, -c, find . -name env.yaml]
my-plugin2:
  init:
    command: [sh]
    args: [-c, 'echo "Initializing..."']
  generate:
    command: [sh, -c]
    args:
      - |
        echo "{\"kind\": \"ConfigMap\", \"apiVersion\": \"v1\", \"metadata\": { \"name\": \"$ARGOCD_APP_NAME\", \"namespace\": \"$ARGOCD_APP_NAMESPACE\", \"annotations\": {\"Foo\": \"$ARGOCD_ENV_FOO\", \"KubeVersion\": \"$KUBE_VERSION\", \"KubeApiVersion\": \"$KUBE_API_VERSIONS\",\"Bar\": \"baz\"}}}"
  discover:
    fileName: "./subdir/s*.yaml"
    find:
      glob: "**/Chart.yaml"
      command: [sh, -c, find . -name env.yaml]

{}

configs.clusterCredentials

Учетные данные внешних кластеров для декларативного подключения к ArgoCD.
Пример конфигурации:

mycluster:
  server: https://mycluster.example.com
  labels: {}
  annotations: {}
  config:
    bearerToken: "<authentication token>"
    tlsClientConfig:
      insecure: false
      caData: "<base64 encoded certificate>"
mycluster2:
  server: https://mycluster2.example.com
  labels: {}
  annotations: {}
  namespaces: namespace1,namespace2
  clusterResources: true
  config:
    bearerToken: "<authentication token>"
    tlsClientConfig:
      insecure: false
      caData: "<base64 encoded certificate>"
mycluster3-project-scoped:
  server: https://mycluster3.example.com
  labels: {}
  annotations: {}
  project: my-project1
  config:
    bearerToken: "<authentication token>"
    tlsClientConfig:
      insecure: false
      caData: "<base64 encoded certificate>"
mycluster4-sharded:
  shard: 1
  server: https://mycluster4.example.com
  labels: {}
  annotations: {}
  config:
    bearerToken: "<authentication token>"
    tlsClientConfig:
      insecure: false
      caData: "<base64 encoded certificate>"

{}

configs.credentialTemplates

Шаблоны учетных данных для доступа к Git- и Helm-репозиториям.
Пример конфигурации:

github-enterprise-creds-1:
  url: https://github.com/argoproj
  githubAppID: 1
  githubAppInstallationID: 2
  githubAppEnterpriseBaseUrl: https://ghe.example.com/api/v3
  githubAppPrivateKey: key
https-creds:
  url: https://github.com/argoproj
  password: password
  username: username
ssh-creds:
 url: git@github.com:argoproj-labs
 sshPrivateKey: key

{}

configs.credentialTemplatesAnnotations

Аннотации для Secret, создаваемых на основе configs.credentialTemplates

{}

configs.repositories

Список Git- и Helm-репозиториев, доступных для приложений ArgoCD.
Пример конфигурации:

istio-helm-repo:
  url: https://storage.googleapis.com/istio-prerelease/daily-build/master-latest-daily/charts
  name: istio.io
  type: helm
private-helm-repo:
  url: https://my-private-chart-repo.internal
  name: private-repo
  type: helm
  password: my-password
  username: my-username
private-repo:
  url: https://github.com/argoproj/private-repo

{}

configs.repositoriesAnnotations

Аннотации для Secret, создаваемых на основе configs.repositories

{}

configs.secret.createSecret

Создание ресурса Secret argocd-secret для хранения чувствительных данных

true

configs.secret.labels

Метки, добавляемые к создаваемым ресурсам

{}

configs.secret.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

configs.secret.githubSecret

Секретный ключ для верификации Webhook-событий от GitHub

""

configs.secret.gitlabSecret

Секретный ключ для верификации Webhook-событий от GitLab

""

configs.secret.bitbucketServerSecret

Секретный ключ для верификации Webhook-событий от Bitbucket Server

""

configs.secret.bitbucketUUID

UUID для верификации Webhook-событий от Bitbucket Cloud

""

configs.secret.gogsSecret

Секретный ключ для верификации Webhook-событий от Gogs

""

configs.secret.azureDevops.username

Имя пользователя для аутентификации в Azure DevOps

""

configs.secret.azureDevops.password

Пароль или персональный токен доступа для аутентификации в Azure DevOps

""

configs.secret.extra

Дополнительные ключи и значения для Secret argocd-secret (например, секреты SSO для передачи через переменные окружения).
Пример конфигурации:

LDAP_PASSWORD: "<password>"

{}

configs.secret.argocdServerAdminPassword

bcrypt-хеш пароля администратора веб-интерфейса ArgoCD

""

configs.secret.argocdServerAdminPasswordMtime

Время последнего изменения пароля администратора (по умолчанию – текущее время)

""

configs.styles

Пользовательские CSS-стили для веб-интерфейса ArgoCD (автоматически монтируются и подключаются)

""

extraObjects – дополнительные объекты Helm-чарта#

Параметр

Описание

Значение по умолчанию

extraObjects

Добавление дополнительных динамических объектов в Helm-чарте.
Пример конфигурации:

- apiVersion: secrets-store.csi.x-k8s.io/v1
  kind: SecretProviderClass
  metadata:
    name: argocd-secrets-store
  spec:
    provider: aws
    parameters:
      objects: |
        - objectName: "argocd"
          objectType: "secretsmanager"
          jmesPath:
              - path: "client_id"
                objectAlias: "client_id"
              - path: "client_secret"
                objectAlias: "client_secret"
    secretObjects:
    - data:
      - key: client_id
        objectName: client_id
      - key: key
        objectName: client_secret
      secretName: argocd-secrets-store
      type: Opaque
      labels:
        app.kubernetes.io/part-of: argocd

[]

controller – настройки контроллера приложений#

Параметр

Описание

Значение по умолчанию

controller.name

Имя компонента контроллера приложений

application-controller

controller.replicas

Количество реплик pod

1

controller.dynamicClusterDistribution

Включение динамического распределения отслеживаемых кластеров между репликами контроллера

false

controller.runtimeClassName

Имя RuntimeClass для pod

""

controller.heartbeatTime

Интервал (в секундах) отправки heartbeat-сигналов для определения активности контроллера

10

controller.revisionHistoryLimit

Количество предыдущих версий ресурса, сохраняемых для отката

5

controller.pdb.enabled

Включение PodDisruptionBudget для контроллера приложений

false

controller.pdb.labels

Метки, добавляемые к создаваемым ресурсам

{}

controller.pdb.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

controller.pdb.minAvailable

Минимальное количество pod, которые должны оставаться доступными после eviction

""

controller.pdb.maxUnavailable

Максимальное количество pod, которые могут быть недоступны после eviction

""

controller.vpa.enabled

Включение VerticalPodAutoscaler

false

controller.vpa.labels

Метки, добавляемые к создаваемым ресурсам

{}

controller.vpa.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

controller.vpa.updateMode

Режим работы VPA для обновления ресурсов контейнера

Initial

controller.vpa.containerPolicy

Правила расчета рекомендуемых ресурсов для контейнера.
Пример конфигурации:

controlledResources: ["cpu", "memory"]
minAllowed:
  cpu: 250m
  memory: 256Mi
maxAllowed:
  cpu: 1
  memory: 1Gi

{}

controller.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-cd/argocd'

controller.image.tag

Тег образа контейнера

v3.4.5

controller.image.imagePullPolicy

Политика загрузки образа контейнера

""

controller.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

controller.extraArgs

Дополнительные аргументы командной строки

[]

controller.env

Переменные окружения контейнера

[]

controller.envFrom

Подключение источников переменных окружения через envFrom.
Пример конфигурации:

- configMapRef:
    name: config-map-name
- secretRef:
    name: secret-name

[]

controller.extraContainers

Дополнительные контейнеры (sidecar) в pod

[]

controller.initContainers

Список init-контейнеров, запускаемых перед основными.
Пример конфигурации:

- name: download-tools
  image: alpine:3
  command: [sh, -c]
  args:
    - wget -qO /custom-tools/kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.2.7/kubelogin-linux-amd64.zip &&
      mkdir /custom-tools/tmp && unzip -d /custom-tools/tmp /custom-tools/kubelogin.zip  &&
      mv /custom-tools/tmp/bin/linux_amd64/kubelogin /custom-tools/ && rm -rf custom-tools/tmp && rm /custom-tools/kubelogin.zip
  volumeMounts:
    - mountPath: /custom-tools
      name: custom-tools

[]

controller.volumeMounts

Дополнительные точки монтирования томов (VolumeMount) в контейнер контроллера приложений.
Пример конфигурации:

- mountPath: /usr/local/bin/kubelogin
  name: custom-tools
  subPath: kubelogin

[]

controller.volumes

Дополнительные тома (Volume) для pod контроллера приложений.
Пример конфигурации:

- name: custom-tools
  emptyDir: {}

[]

controller.emptyDir.sizeLimit

Ограничение размера тома EmptyDir контейнера

""

controller.statefulsetAnnotations

Аннотации для StatefulSet контроллера приложений

{}

controller.statefulsetLabels

Метки для StatefulSet контроллера приложений

{}

controller.deploymentAnnotations

Аннотации для Deployment контроллера приложений

{}

controller.deploymentLabels

Метки для Deployment контроллера приложений

{}

controller.podAnnotations

Аннотации для pod контроллера приложений

{}

controller.podLabels

Метки для pod контроллера приложений

{}

controller.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 500m
  memory: 512Mi
requests:
  cpu: 250m
  memory: 256Mi

{}

controller.containerPorts.metrics

Порт контейнера для экспорта метрик

8082

controller.hostNetwork

Запуск pod в режиме hostNetwork

false

controller.dnsConfig

Пользовательская конфигурация DNS для pod

{}

controller.dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

controller.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

controller.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

controller.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

controller.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

controller.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

controller.readinessProbe.httpPath

Путь HTTP-запроса для проверки готовности

/healthz

controller.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

controller.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

10

controller.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

10

controller.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

1

controller.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

1

controller.startupProbe.enabled

Включение проверки запуска для контейнера

false

controller.startupProbe.httpPath

Путь HTTP-запроса для проверки запуска

/healthz

controller.startupProbe.failureThreshold

Количество неудачных попыток проверки запуска

20

controller.startupProbe.initialDelaySeconds

Задержка в секундах перед первой стартовой проверкой

10

controller.startupProbe.periodSeconds

Интервал в секундах между проверками запуска

10

controller.startupProbe.successThreshold

Количество успешных проверок запуска, необходимое для перевода контейнера в состояние «запущен»

1

controller.startupProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа при проверке запуска

1

controller.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

30

controller.priorityClassName

Имя PriorityClass для pod

""

controller.nodeSelector

Селектор узлов для планирования pod

{}

controller.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

controller.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

controller.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам.
Пример конфигурации:

- maxSkew: 1
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: DoNotSchedule

[]

controller.automountServiceAccountToken

Автоматическое монтирование токена сервисного аккаунта в pod

true

controller.serviceAccount.create

Создание ServiceAccount

true

controller.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

argocd-application-controller

controller.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

controller.serviceAccount.labels

Метки, добавляемые к создаваемым ресурсам

{}

controller.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

true

controller.metrics.enabled

Активация экспорта метрик

true

controller.metrics.applicationLabels.enabled

Активация пользовательских меток приложений в метриках

false

controller.metrics.applicationLabels.labels

Метки, добавляемые к создаваемым ресурсам

[]

controller.metrics.service.type

Тип Service

ClusterIP

controller.metrics.service.clusterIP

IP-адрес ClusterIP для Service метрик

""

controller.metrics.service.annotations

Аннотации, добавляемые к создаваемым ресурсам для метрик

{}

controller.metrics.service.labels

Метки, добавляемые к создаваемым ресурсам для метрик

{}

controller.metrics.service.servicePort

Порт Service для экспорта метрик

8082

controller.metrics.service.portName

Имя порта метрик в Service

http-metrics

controller.metrics.serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator

true

controller.metrics.serviceMonitor.interval

Интервал сбора метрик

30s

controller.metrics.serviceMonitor.scrapeTimeout

Тайм-аут сбора метрик

""

controller.metrics.serviceMonitor.honorLabels

Сохранение оригинальных меток метрик при конфликте с метками цели (target)

false

controller.metrics.serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик

[]

controller.metrics.serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам

[]

controller.metrics.serviceMonitor.selector

Селектор для выбора экземпляра Prometheus, собирающего метрики.
Пример конфигурации: prometheus: kube-prometheus

{}

controller.metrics.serviceMonitor.scheme

Схема подключения

""

controller.metrics.serviceMonitor.tlsConfig

Настройки TLS-параметров для безопасного сбора метрик Prometheus по протоколу HTTP

{}

controller.metrics.serviceMonitor.namespace

Пространство имен, в котором создается ServiceMonitor

""

controller.metrics.serviceMonitor.additionalLabels

Дополнительные метки для ServiceMonitor

{}

controller.metrics.serviceMonitor.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

controller.metrics.rules.enabled

Включение правил оповещений (PrometheusRule)

false

controller.metrics.rules.namespace

Пространство имен, в котором создаются правила Prometheus

""

controller.metrics.rules.selector

Селектор для выбора экземпляра Prometheus, применяющего правила.
Пример конфигурации: prometheus: kube-prometheus

{}

controller.metrics.rules.additionalLabels

Дополнительные метки для правил Prometheus

{}

controller.metrics.rules.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

controller.metrics.rules.spec

Содержимое spec ресурса PrometheusRule.
Пример конфигурации:

- alert: ArgoAppMissing
  expr: |
    absent(argocd_app_info) == 1
  for: 15m
  labels:
    severity: critical
  annotations:
    summary: "[Argo CD] No reported applications"
    description: >
      Argo CD has not reported any applications data for the past 15 minutes which
      means that it must be down or not functioning properly. This needs to be
      resolved for this cloud to continue to maintain state.
- alert: ArgoAppNotSynced
  expr: |
    argocd_app_info{sync_status!="Synced"} == 1
  for: 12h
  labels:
    severity: warning
  annotations:
    summary: "[{{ $labels.name }}] Application not synchronized"
    description: >
      The application {{ $labels.name }} has not been synchronized for over
      12 hours which means that the state of this cloud has drifted away from the
      state inside Git.

[]

controller.clusterRoleRules.enabled

Включение пользовательских правил ClusterRole

false

controller.clusterRoleRules.rules

Список пользовательских правил для ClusterRole

[]

controller.roleRules

Список пользовательских правил для Role

[]

controller.networkPolicy.create

Включение создания NetworkPolicy

false

dex – настройки Dex#

Параметр

Описание

Значение по умолчанию

dex.enabled

Включение развертывания компонента Dex

false

dex.name

Имя компонента Dex

dex-server

dex.extraArgs

Дополнительные аргументы командной строки

[]

dex.runtimeClassName

Имя RuntimeClass для pod

""

dex.metrics.enabled

Активация экспорта метрик

false

dex.metrics.service.annotations

Аннотации, добавляемые к создаваемым ресурсам для метрик

{}

dex.metrics.service.labels

Метки, добавляемые к создаваемым ресурсам для метрик

{}

dex.metrics.service.portName

Имя порта метрик в Service

http-metrics

dex.metrics.serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator

false

dex.metrics.serviceMonitor.interval

Интервал сбора метрик

30s

dex.metrics.serviceMonitor.honorLabels

Сохранение оригинальных меток метрик при конфликте с метками цели (target)

false

dex.metrics.serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик

[]

dex.metrics.serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам

[]

dex.metrics.serviceMonitor.selector

Селектор для выбора экземпляра Prometheus, собирающего метрики

{}

dex.metrics.serviceMonitor.scheme

Схема подключения

""

dex.metrics.serviceMonitor.tlsConfig

Настройки TLS-параметров для безопасного сбора метрик Prometheus по протоколу HTTP

{}

dex.metrics.serviceMonitor.namespace

Пространство имен, в котором создается ServiceMonitor

""

dex.metrics.serviceMonitor.additionalLabels

Дополнительные метки для ServiceMonitor

{}

dex.metrics.serviceMonitor.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

dex.pdb.enabled

Включение PodDisruptionBudget для Dex

false

dex.pdb.labels

Метки, добавляемые к создаваемым ресурсам

{}

dex.pdb.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

dex.pdb.minAvailable

Минимальное количество pod, которые должны оставаться доступными после eviction

""

dex.pdb.maxUnavailable

Максимальное количество pod, которые могут быть недоступны после eviction

""

dex.vpa.enabled

Включение VerticalPodAutoscaler

false

dex.vpa.labels

Метки, добавляемые к создаваемым ресурсам

{}

dex.vpa.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

dex.vpa.updateMode

Режим работы VPA для обновления ресурсов контейнера

Initial

dex.vpa.containerPolicy

Правила расчета рекомендуемых ресурсов для контейнера.
Пример конфигурации:

controlledResources: ["cpu", "memory"]
minAllowed:
  cpu: 250m
  memory: 256Mi
maxAllowed:
  cpu: 1
  memory: 1Gi

{}

dex.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-auth/dex'

dex.image.tag

Тег образа контейнера

v2.45.1

dex.image.imagePullPolicy

Политика загрузки образа контейнера

""

dex.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

dex.initImage.repository

Репозиторий контейнерного образа для init-контейнера

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-cd/argocd'

dex.initImage.tag

Тег контейнерного образа для init-контейнера

v3.4.5

dex.initImage.imagePullPolicy

Политика загрузки образа init-контейнера

""

dex.initImage.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

requests:
  cpu: 5m
  memory: 96Mi
limits:
  cpu: 10m
  memory: 144Mi

{}

dex.env

Переменные окружения контейнера

[]

dex.envFrom

Подключение источников переменных окружения через envFrom.
Пример конфигурации:

- configMapRef:
    name: config-map-name
- secretRef:
    name: secret-name

[]

dex.extraContainers

Дополнительные контейнеры (sidecar) в pod

[]

dex.initContainers

Список init-контейнеров, запускаемых перед основными

[]

dex.volumeMounts

Дополнительные точки монтирования томов (VolumeMount) в контейнер Dex

[]

dex.volumes

Дополнительные тома (Volume) для pod Dex

[]

dex.emptyDir.sizeLimit

Ограничение размера тома EmptyDir контейнера

""

dex.certificateSecret.enabled

Включение использования существующего TLS-секрета

false

dex.certificateSecret.labels

Метки для ресурса Secret с сертификатом

{}

dex.certificateSecret.annotations

Аннотации для ресурса Secret с сертификатом

{}

dex.certificateSecret.ca

Данные сертификата удостоверяющего центра (CA)

""

dex.certificateSecret.key

Приватный ключ сертификата

""

dex.certificateSecret.crt

Данные публичного сертификата

""

dex.deploymentAnnotations

Аннотации для Deployment Dex

{}

dex.deploymentLabels

Метки для Deployment Dex

{}

dex.podAnnotations

Аннотации для pod Dex

{}

dex.podLabels

Метки для pod Dex

{}

dex.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 50m
  memory: 64Mi
requests:
  cpu: 10m
  memory: 32Mi

{}

dex.containerPorts.http

Порт контейнера для HTTP-доступа к Dex

5556

dex.containerPorts.grpc

Порт контейнера для gRPC-доступа к Dex

5557

dex.containerPorts.metrics

Порт контейнера для экспорта метрик

5558

dex.dnsConfig

Пользовательская конфигурация DNS для pod

{}

dex.dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

dex.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

dex.containerSecurityContext.runAsUser

ID пользователя для запуска контейнера

1001

dex.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

dex.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

dex.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

dex.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

dex.livenessProbe.enabled

Включение проверки работоспособности для контейнера

false

dex.livenessProbe.httpPath

Путь HTTP-запроса для проверки работоспособности

/healthz/live

dex.livenessProbe.httpPort

Порт для проверки работоспособности

metrics

dex.livenessProbe.httpScheme

Схема протокола для проверки работоспособности

HTTP

dex.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

dex.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

10

dex.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

10

dex.livenessProbe.successThreshold

Количество успешных попыток для подтверждения работоспособности

1

dex.livenessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки работоспособности

1

dex.readinessProbe.enabled

Включение проверки готовности для контейнера

false

dex.readinessProbe.httpPath

Путь HTTP-запроса для проверки готовности

/healthz/ready

dex.readinessProbe.httpPort

Порт для проверки готовности

metrics

dex.readinessProbe.httpScheme

Схема протокола для проверки готовности

HTTP

dex.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

dex.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

10

dex.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

10

dex.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

1

dex.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

1

dex.startupProbe.enabled

Включение проверки запуска для контейнера

false

dex.startupProbe.httpPath

Путь HTTP-запроса для проверки запуска

/healthz/ready

dex.startupProbe.httpPort

Порт для проверки запуска

metrics

dex.startupProbe.httpScheme

Схема протокола для проверки запуска

HTTP

dex.startupProbe.failureThreshold

Количество неудачных попыток проверки запуска

20

dex.startupProbe.initialDelaySeconds

Задержка в секундах перед первой стартовой проверкой

10

dex.startupProbe.periodSeconds

Интервал в секундах между проверками запуска

10

dex.startupProbe.successThreshold

Количество успешных проверок запуска, необходимое для перевода контейнера в состояние «запущен»

1

dex.startupProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа при проверке запуска

1

dex.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

30

dex.automountServiceAccountToken

Автоматическое монтирование токена сервисного аккаунта в pod

true

dex.serviceAccount.create

Создание ServiceAccount

true

dex.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

argocd-dex-server

dex.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

dex.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

true

dex.servicePortHttp

Порт Service для HTTP-доступа к Dex

5556

dex.servicePortHttpName

Имя порта HTTP в Service

http

dex.servicePortGrpc

Порт Service для gRPC-доступа к Dex

5557

dex.servicePortGrpcName

Имя порта gRPC в Service

grpc

dex.servicePortMetrics

Порт Service для экспорта метрик Dex

5558

dex.priorityClassName

Имя PriorityClass для pod

""

dex.nodeSelector

Селектор узлов для планирования pod

{}

dex.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

dex.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

dex.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам.
Пример конфигурации:

- maxSkew: 1
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: DoNotSchedule

[]

dex.deploymentStrategy

Стратегия обновления Deployment для Dex.
Пример конфигурации:

type: RollingUpdate
rollingUpdate:
  maxSurge: 25%
  maxUnavailable: 25%

{}

dex.networkPolicy.create

Включение создания NetworkPolicy

false

redis – настройки Redis#

Параметр

Описание

Значение по умолчанию

redis.enabled

Включение развертывания компонента Redis

true

redis.name

Имя компонента Redis

redis

redis.runtimeClassName

Имя RuntimeClass для pod

""

redis.pdb.enabled

Включение PodDisruptionBudget для Redis

false

redis.pdb.labels

Метки, добавляемые к создаваемым ресурсам

{}

redis.pdb.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

redis.pdb.minAvailable

Минимальное количество pod, которые должны оставаться доступными после eviction

""

redis.pdb.maxUnavailable

Максимальное количество pod, которые могут быть недоступны после eviction

""

redis.vpa.enabled

Включение VerticalPodAutoscaler

false

redis.vpa.labels

Метки, добавляемые к создаваемым ресурсам

{}

redis.vpa.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

redis.vpa.updateMode

Режим работы VPA для обновления ресурсов контейнера

Initial

redis.vpa.containerPolicy

Правила расчета рекомендуемых ресурсов для контейнера.
Пример конфигурации:

controlledResources: ["cpu", "memory"]
minAllowed:
  cpu: 250m
  memory: 256Mi
maxAllowed:
  cpu: 1
  memory: 1Gi

{}

redis.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-redis/redis'

redis.image.tag

Тег образа контейнера

8.2.3

redis.image.imagePullPolicy

Политика загрузки образа контейнера

""

redis.exporter.enabled

Включение sidecar-контейнера redis-exporter для экспорта метрик в Prometheus

false

redis.exporter.env

Переменные окружения контейнера

[]

redis.exporter.image.repository

Репозиторий контейнерного образа

ghcr.io/oliver006/redis_exporter

redis.exporter.image.tag

Тег образа контейнера

v1.88.0

redis.exporter.image.imagePullPolicy

Политика загрузки образа контейнера

""

redis.exporter.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

redis.exporter.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

redis.exporter.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

redis.exporter.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

redis.exporter.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

redis.exporter.readinessProbe.enabled

Включение проверки готовности для контейнера

false

redis.exporter.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

30

redis.exporter.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

15

redis.exporter.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

15

redis.exporter.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

1

redis.exporter.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

5

redis.exporter.livenessProbe.enabled

Включение проверки работоспособности для контейнера

false

redis.exporter.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

30

redis.exporter.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

15

redis.exporter.livenessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки работоспособности

15

redis.exporter.livenessProbe.successThreshold

Количество успешных попыток для подтверждения работоспособности

1

redis.exporter.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

5

redis.exporter.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 50m
  memory: 64Mi
requests:
  cpu: 10m
  memory: 32Mi

{}

redis.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

redis.extraArgs

Дополнительные аргументы командной строки.
Пример конфигурации:

- --bind
- "0.0.0.0"

[]

redis.env

Переменные окружения контейнера

[]

redis.envFrom

Подключение источников переменных окружения через envFrom.
Пример конфигурации:

- configMapRef:
    name: config-map-name
- secretRef:
    name: secret-name

[]

redis.readinessProbe.enabled

Включение проверки готовности для контейнера

false

redis.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

30

redis.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

15

redis.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

15

redis.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

1

redis.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

5

redis.livenessProbe.enabled

Включение проверки работоспособности для контейнера

false

redis.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

30

redis.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

15

redis.livenessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки работоспособности

15

redis.livenessProbe.successThreshold

Количество успешных попыток для подтверждения работоспособности

1

redis.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

5

redis.extraContainers

Дополнительные контейнеры (sidecar) в pod

[]

redis.initContainers

Список init-контейнеров, запускаемых перед основными

[]

redis.volumeMounts

Дополнительные точки монтирования томов (VolumeMount) в контейнер Redis

[]

redis.volumes

Дополнительные тома (Volume) для pod Redis

[]

redis.deploymentAnnotations

Аннотации для Deployment Redis

{}

redis.deploymentLabels

Метки для Deployment Redis

{}

redis.podAnnotations

Аннотации для pod Redis

{}

redis.podLabels

Метки для pod Redis

{}

redis.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 200m
  memory: 128Mi
requests:
  cpu: 100m
  memory: 64Mi

{}

redis.securityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

redis.securityContext.runAsUser

Идентификатор пользователя (UID), от которого запускается pod Redis

999

redis.securityContext.seccompProfile.type

Тип профиля Seccomp для pod Redis

RuntimeDefault

redis.containerPorts.redis

Порт контейнера для клиентских подключений Redis

6379

redis.containerPorts.metrics

Порт контейнера для экспорта метрик

9121

redis.dnsConfig

Пользовательская конфигурация DNS для pod

{}

redis.dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

redis.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

redis.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

redis.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

redis.servicePort

Порт Service для клиентских подключений Redis

6379

redis.priorityClassName

Имя PriorityClass для pod

""

redis.nodeSelector

Селектор узлов для планирования pod

{}

redis.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

redis.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

redis.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам.
Пример конфигурации:

- maxSkew: 1
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: DoNotSchedule

[]

redis.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

30

redis.automountServiceAccountToken

Автоматическое монтирование токена сервисного аккаунта в pod

true

redis.serviceAccount.create

Создание ServiceAccount

false

redis.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

""

redis.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

redis.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

false

redis.service.annotations

Аннотации для ресурса Service

{}

redis.service.labels

Метки для ресурса Service

{}

redis.metrics.enabled

Активация экспорта метрик

false

redis.metrics.service.type

Тип Service

ClusterIP

redis.metrics.service.clusterIP

IP-адрес ClusterIP для Service метрик

None

redis.metrics.service.annotations

Аннотации, добавляемые к создаваемым ресурсам для метрик

{}

redis.metrics.service.labels

Метки, добавляемые к создаваемым ресурсам для метрик

{}

redis.metrics.service.servicePort

Порт Service для экспорта метрик

9121

redis.metrics.service.portName

Имя порта метрик в Service

http-metrics

redis.metrics.serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator

true

redis.metrics.serviceMonitor.interval

Интервал сбора метрик

30s

redis.metrics.serviceMonitor.honorLabels

Сохранение оригинальных меток метрик при конфликте с метками цели (target)

false

redis.metrics.serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик

[]

redis.metrics.serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам

[]

redis.metrics.serviceMonitor.selector

Селектор для выбора экземпляра Prometheus, собирающего метрики

{}

redis.metrics.serviceMonitor.scheme

Схема подключения

""

redis.metrics.serviceMonitor.tlsConfig

Настройки TLS-параметров для безопасного сбора метрик Prometheus по протоколу HTTP

{}

redis.metrics.serviceMonitor.namespace

Пространство имен, в котором создается ServiceMonitor

""

redis.metrics.serviceMonitor.additionalLabels

Дополнительные метки для ServiceMonitor

{}

redis.metrics.serviceMonitor.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

redis.networkPolicy.create

Включение создания NetworkPolicy

false

redis-ha – настройки высокодоступного Redis#

Параметр

Описание

Значение по умолчанию

redis-ha.enabled

Включение подчарта Redis HA (при этом одиночное развертывание Redis отключается)

false

redis-ha.image.repository

Репозиторий контейнерного образа

ecr-public.aws.com/docker/library/redis

redis-ha.image.tag

Тег образа контейнера

8.2.3-alpine

redis-ha.exporter.enabled

Включение sidecar-контейнера для экспорта метрик

false

redis-ha.exporter.image

Параметры контейнерного образа

ghcr.io/oliver006/redis_exporter

redis-ha.exporter.tag

Тег контейнерного образа

v1.75.0

redis-ha.persistentVolume.enabled

Включение использования PersistentVolume для хранения данных Redis

false

redis-ha.redis.masterGroupName

Имя мастер-группы в кластере Redis Sentinel

argocd

redis-ha.redis.config

Параметры конфигурации.
Пример конфигурации:

save: '""'
save: '""'

redis-ha.haproxy.enabled

Включение HAProxy для балансировки нагрузки между узлами Redis

true

redis-ha.haproxy.labels

Метки, добавляемые к создаваемым ресурсам

app.kubernetes.io/name: argocd-redis-ha-haproxy

redis-ha.haproxy.image.repository

Репозиторий контейнерного образа

ecr-public.aws.com/docker/library/haproxy

redis-ha.haproxy.metrics.enabled

Активация экспорта метрик

true

redis-ha.haproxy.hardAntiAffinity

Принудительное размещение pod HAProxy на разных узлах кластера

true

redis-ha.haproxy.additionalAffinities

Дополнительные правила привязки (affinity) для pod HAProxy

{}

redis-ha.haproxy.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

""

redis-ha.haproxy.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

redis-ha.haproxy.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

redis-ha.auth

Включение аутентификации для Redis в режиме HA

true

redis-ha.existingSecret

Имя существующего Secret с учетными данными для аутентификации в Redis

argocd-redis

redis-ha.hardAntiAffinity

Принудительное размещение pod Redis на разных узлах кластера

true

redis-ha.additionalAffinities

Дополнительные правила привязки (affinity) для pod Redis

{}

redis-ha.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

""

redis-ha.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

redis-ha.topologySpreadConstraints.enabled

Включение ограничений топологии для равномерного распределения pod Redis

false

redis-ha.topologySpreadConstraints.maxSkew

Максимально допустимое отклонение количества pod между топологическими доменами

""

redis-ha.topologySpreadConstraints.topologyKey

Ключ топологии, по которому выполняется распределение pod

""

redis-ha.topologySpreadConstraints.whenUnsatisfiable

Действие при невозможности равномерного распределения (DoNotSchedule / ScheduleAnyway)

""

redis-ha.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

externalRedis – настройки подключения к внешнему Redis#

Параметр

Описание

Значение по умолчанию

externalRedis.host

Адрес внешнего сервера Redis

""

externalRedis.username

Имя пользователя для аутентификации на внешнем сервере Redis

""

externalRedis.password

Пароль для аутентификации на внешнем сервере Redis

""

externalRedis.port

Порт внешнего сервера Redis

6379

externalRedis.existingSecret

Имя существующего Secret с учетными данными внешнего Redis и Sentinel

""

externalRedis.secretAnnotations

Аннотации для Secret с параметрами внешнего Redis

{}

redisSecretInit – инициализация секретов Redis#

Параметр

Описание

Значение по умолчанию

redisSecretInit.enabled

Включение Job для инициализации Secret с учетными данными Redis

true

redisSecretInit.name

Имя Job для инициализации Secret Redis

redis-secret-init

redisSecretInit.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-cd/argocd'

redisSecretInit.image.tag

Тег образа контейнера

v3.4.5

redisSecretInit.image.imagePullPolicy

Политика загрузки образа контейнера

""

redisSecretInit.extraArgs

Дополнительные аргументы командной строки

[]

redisSecretInit.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

redisSecretInit.runtimeClassName

Имя RuntimeClass для pod

""

redisSecretInit.jobAnnotations

Аннотации для инициализации Job

{}

redisSecretInit.podAnnotations

Аннотации для pod инициализации Job

{}

redisSecretInit.podLabels

Метки для pod инициализации Job

{}

redisSecretInit.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 200m
  memory: 128Mi
requests:
  cpu: 100m
  memory: 64Mi

{}

redisSecretInit.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

redisSecretInit.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

redisSecretInit.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

redisSecretInit.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

redisSecretInit.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

redisSecretInit.securityContext

Контекст безопасности на уровне pod для инициализации Job

{}

redisSecretInit.serviceAccount.create

Создание ServiceAccount

true

redisSecretInit.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

""

redisSecretInit.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

redisSecretInit.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

true

redisSecretInit.priorityClassName

Имя PriorityClass для pod

""

redisSecretInit.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

redisSecretInit.nodeSelector

Селектор узлов для планирования pod

{}

redisSecretInit.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

server – настройки ArgoCD Server#

Параметр

Описание

Значение по умолчанию

server.name

Имя ресурса или компонента

server

server.replicas

Количество реплик pod

1

server.runtimeClassName

Имя RuntimeClass для pod

""

server.autoscaling.enabled

Активация функции

false

server.autoscaling.minReplicas

Минимальное количество реплик при автоматическом масштабировании

1

server.autoscaling.maxReplicas

Максимальное количество реплик при автоматическом масштабировании

5

server.autoscaling.targetCPUUtilizationPercentage

Целевой процент использования CPU для HPA

50

server.autoscaling.targetMemoryUtilizationPercentage

Целевой процент использования памяти для HPA

50

server.autoscaling.behavior

Поведение масштабирования HPA по направлениям scale up и scale down.
Пример конфигурации:

scaleDown:
  stabilizationWindowSeconds: 300
  policies:
    - type: Pods
      value: 1
      periodSeconds: 180
scaleUp:
  stabilizationWindowSeconds: 300
  policies:
    - type: Pods
      value: 2
      periodSeconds: 60

{}

server.autoscaling.metrics

Пользовательские метрики для HPA

[]

server.pdb.enabled

Включение PodDisruptionBudget для Server

false

server.pdb.labels

Метки, добавляемые к создаваемым ресурсам

{}

server.pdb.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.pdb.minAvailable

Минимальное количество pod, которые должны оставаться доступными после eviction

""

server.pdb.maxUnavailable

Максимальное количество pod, которые могут быть недоступны после eviction

""

server.vpa.enabled

Включение VerticalPodAutoscaler

false

server.vpa.labels

Метки, добавляемые к создаваемым ресурсам

{}

server.vpa.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.vpa.updateMode

Режим работы VPA для обновления ресурсов контейнера

Initial

server.vpa.containerPolicy

Правила расчета рекомендуемых ресурсов для контейнера.
Пример конфигурации:

controlledResources: ["cpu", "memory"]
minAllowed:
  cpu: 250m
  memory: 256Mi
maxAllowed:
  cpu: 1
  memory: 1Gi

{}

server.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-cd/argocd'

server.image.tag

Тег образа контейнера

v3.4.5

server.image.imagePullPolicy

Политика загрузки образа контейнера

""

server.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

server.extraArgs

Дополнительные аргументы командной строки

[]

server.env

Переменные окружения контейнера

[]

server.envFrom

Подключение источников переменных окружения через envFrom.
Пример конфигурации:

- configMapRef:
    name: config-map-name
- secretRef:
    name: secret-name

[]

server.lifecycle

Параметры lifecycle для контейнера

{}

server.extensions.enabled

Активация механизма расширений

false

server.extensions.image.repository

Репозиторий контейнерного образа

quay.io/argoprojlabs/argocd-extension-installer

server.extensions.image.tag

Тег образа контейнера

v1.0.1

server.extensions.image.imagePullPolicy

Политика загрузки образа контейнера

""

server.extensions.extensionList

Список UI-расширений ArgoCD.
Пример конфигурации:

- name: extension-metrics
  env:
    - name: EXTENSION_URL
      value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.0/extension.tar.gz
    - name: EXTENSION_CHECKSUM_URL
      value: https://github.com/argoproj-labs/argocd-extension-metrics/releases/download/v1.0.0/extension_checksums.txt

[]

server.extensions.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

server.extensions.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

server.extensions.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

server.extensions.containerSecurityContext.runAsUser

ID пользователя для запуска контейнера

1000

server.extensions.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

server.extensions.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

server.extensions.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 50m
  memory: 128Mi
requests:
  cpu: 10m
  memory: 64Mi

{}

server.extraContainers

Дополнительные контейнеры (sidecar) в pod.
Пример конфигурации:

name: my-sidecar
image: nginx:latest
name: lemonldap-ng-controller
image: lemonldapng/lemonldap-ng-controller:0.2.0
args:
  - /lemonldap-ng-controller
  - --alsologtostderr
  - --configmap=$(POD_NAMESPACE)/lemonldap-ng-configuration
env:
  - name: POD_NAME
    valueFrom:
      fieldRef:
        fieldPath: metadata.name
  - name: POD_NAMESPACE
    valueFrom:
      fieldRef:
        fieldPath: metadata.namespace
volumeMounts:
- name: copy-portal-skins
  mountPath: /srv/var/lib/lemonldap-ng/portal/skins

[]

server.initContainers

Список init-контейнеров, запускаемых перед основными.
Пример конфигурации:

- name: download-tools
  image: alpine:3
  command: [sh, -c]
  args:
    - wget -qO /custom-tools/kubelogin.zip https://github.com/Azure/kubelogin/releases/download/v0.2.7/kubelogin-linux-amd64.zip &&
      mkdir /custom-tools/tmp && unzip -d /custom-tools/tmp /custom-tools/kubelogin.zip  &&
      mv /custom-tools/tmp/bin/linux_amd64/kubelogin /custom-tools/ && rm -rf custom-tools/tmp && rm /custom-tools/kubelogin.zip
  volumeMounts:
    - mountPath: /custom-tools
      name: custom-tools

[]

server.volumeMounts

Дополнительные точки монтирования томов (VolumeMount) в контейнер сервера.
Пример конфигурации:

- mountPath: /usr/local/bin/kubelogin
  name: custom-tools
  subPath: kubelogin
- name: ingress-tls
  readOnly: true
  mountPath: /etc/ssl/certs/tls.crt
  subPath: tls.crt

server.volumes

Дополнительные тома (Volume) для pod сервера.
Пример конфигурации:

- name: custom-tools
  emptyDir: {}
- name: ingress-tls
  secret:
    secretName: ingress-tls
    items:
      - key: tls.crt
        path: tls.crt
    defaultMode: 420

server.emptyDir.sizeLimit

Ограничение размера тома EmptyDir контейнера

""

server.deploymentAnnotations

Аннотации для Deployment сервера

{}

server.deploymentLabels

Метки для Deployment сервера

{}

server.podAnnotations

Аннотации для pod сервера

{}

server.podLabels

Метки для pod сервера

{}

server.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 100m
  memory: 128Mi
requests:
  cpu: 50m
  memory: 64Mi

{}

server.containerPorts.server

Порт контейнера для основного сервиса сервера

8080

server.containerPorts.metrics

Порт контейнера для экспорта метрик

8083

server.hostNetwork

Запуск pod в режиме hostNetwork

false

server.dnsConfig

Пользовательская конфигурация DNS для pod

{}

server.dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

server.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

server.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

server.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

server.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

server.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

server.readinessProbe.enabled

Включение проверки готовности для контейнера

true

server.readinessProbe.httpPath

Путь HTTP-запроса для проверки готовности

/healthz

server.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

server.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

10

server.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

10

server.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

1

server.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

1

server.livenessProbe.enabled

Включение проверки работоспособности для контейнера

true

server.livenessProbe.httpPath

Путь HTTP-запроса для проверки работоспособности

/healthz?full=true

server.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

server.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

10

server.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

10

server.livenessProbe.successThreshold

Количество успешных попыток для подтверждения работоспособности

1

server.livenessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки работоспособности

1

server.startupProbe.enabled

Включение проверки запуска для контейнера

false

server.startupProbe.httpPath

Путь HTTP-запроса для проверки запуска

/healthz

server.startupProbe.failureThreshold

Количество неудачных попыток проверки запуска

20

server.startupProbe.initialDelaySeconds

Задержка в секундах перед первой стартовой проверкой

10

server.startupProbe.periodSeconds

Интервал в секундах между проверками запуска

10

server.startupProbe.successThreshold

Количество успешных проверок запуска, необходимое для перевода контейнера в состояние «запущен»

1

server.startupProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа при проверке запуска

1

server.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

30

server.priorityClassName

Имя PriorityClass для pod

""

server.nodeSelector

Селектор узлов для планирования pod

{}

server.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

server.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

server.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам.
Пример конфигурации:

- maxSkew: 1
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: DoNotSchedule

[]

server.deploymentStrategy

Стратегия обновления Deployment для ArgoCD Server.
Пример конфигурации:

type: RollingUpdate
rollingUpdate:
  maxSurge: 25%
  maxUnavailable: 25%

{}

server.certificate.enabled

Включение создания сертификата через Сert-manager

false

server.certificate.domain

Основной домен сертификата

""

server.certificate.additionalHosts

Дополнительные хосты для сертификата

[]

server.certificate.duration

Срок действия сертификата

""

server.certificate.renewBefore

Время до истечения срока действия, за которое инициируется обновление сертификата

""

server.certificate.issuer.group

API-группа ресурса эмитента (Issuer)

""

server.certificate.issuer.kind

Тип ресурса эмитента (например, Issuer или ClusterIssuer)

""

server.certificate.issuer.name

Имя ресурса Issuer

""

server.certificate.privateKey.rotationPolicy

Политика ротации закрытого ключа при перевыпуске сертификата

Never

server.certificate.privateKey.encoding

Формат кодирования закрытого ключа

PKCS1

server.certificate.privateKey.algorithm

Алгоритм шифрования для генерации закрытого ключа

RSA

server.certificate.privateKey.size

Размер закрытого ключа в битах

2048

server.certificate.annotations

Аннотации, добавляемые к ресурсу Certificate

{}

server.certificate.usages

Список назначений использования ключа

[]

server.certificate.secretTemplateAnnotations

Добавление аннотации в secretTemplate сертификата для композиции из существующих ресурсов Kubernetes

{}

server.certificateSecret.enabled

Включение использования существующего TLS-секрета

false

server.certificateSecret.annotations

Аннотации для ресурса Secret с сертификатом

{}

server.certificateSecret.labels

Метки для ресурса Secret с сертификатом

{}

server.certificateSecret.key

Приватный ключ сертификата

""

server.certificateSecret.crt

Данные публичного сертификата

""

server.service.annotations

Аннотации для ресурса Service

{}

server.service.labels

Метки для ресурса Service

{}

server.service.type

Тип Service

ClusterIP

server.service.nodePortHttp

Порт NodePort для HTTP-трафика

30080

server.service.nodePortHttps

Порт NodePort для HTTPS-трафика

30443

server.service.servicePortHttp

HTTP-порт для сервиса

80

server.service.servicePortHttps

HTTPS-порт для сервиса

443

server.service.servicePortHttpName

Имя порта HTTP в Service

http

server.service.servicePortHttpsName

Имя порта HTTPS в Service

https

server.service.servicePortHttpsAppProtocol

Протокол прикладного уровня для порта HTTPS

""

server.service.loadBalancerClass

Класс балансировщика нагрузки

""

server.service.loadBalancerIP

Статический IP-адрес балансировщика нагрузки

""

server.service.loadBalancerSourceRanges

Диапазоны IP-адресов, с которых разрешен доступ к балансировщику нагрузки

[]

server.service.externalIPs

Список внешних IP-адресов сервиса

[]

server.service.externalTrafficPolicy

Политика маршрутизации внешнего трафика

Cluster

server.service.sessionAffinity

Политика привязки клиентских сессий к pod

None

server.metrics.enabled

Активация экспорта метрик

true

server.metrics.service.type

Тип Service

ClusterIP

server.metrics.service.clusterIP

IP-адрес ClusterIP для Service метрик

""

server.metrics.service.annotations

Аннотации, добавляемые к создаваемым ресурсам для метрик

{}

server.metrics.service.labels

Метки, добавляемые к создаваемым ресурсам для метрик

{}

server.metrics.service.servicePort

Порт Service для экспорта метрик

8083

server.metrics.service.portName

Имя порта метрик в Service

http-metrics

server.metrics.serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator

true

server.metrics.serviceMonitor.interval

Интервал сбора метрик

30s

server.metrics.serviceMonitor.scrapeTimeout

Тайм-аут сбора метрик

""

server.metrics.serviceMonitor.honorLabels

Сохранение оригинальных меток метрик при конфликте с метками цели (target)

false

server.metrics.serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик

[]

server.metrics.serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам

[]

server.metrics.serviceMonitor.selector

Селектор для выбора экземпляра Prometheus, собирающего метрики

{}

server.metrics.serviceMonitor.scheme

Схема подключения

""

server.metrics.serviceMonitor.tlsConfig

Настройки TLS-параметров для безопасного сбора метрик Prometheus по протоколу HTTP

{}

server.metrics.serviceMonitor.namespace

Пространство имен, в котором создается ServiceMonitor

""

server.metrics.serviceMonitor.additionalLabels

Дополнительные метки для ServiceMonitor

{}

server.metrics.serviceMonitor.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.automountServiceAccountToken

Автоматическое монтирование токена сервисного аккаунта в pod

true

server.serviceAccount.create

Создание ServiceAccount

true

server.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

argocd-server

server.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.serviceAccount.labels

Метки, добавляемые к создаваемым ресурсам

{}

server.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

true

server.consoleLink.enabled

Включение создания ресурса ConsoleLink для перехода в Open WebUI из консоли платформы

true

server.ingress.enabled

Включение Ingress для компонента сервера

true

server.ingress.controller

Настройка контроллера Ingress

generic

server.ingress.labels

Дополнительные метки Ingress

{}

server.ingress.annotations

Аннотации Ingress

{}

server.ingress.ingressClassName

Имя класса контроллера Ingress

nginx

server.ingress.hostname

Имя хоста или адрес для Ingress

""

server.ingress.path

Путь Ingress

/

server.ingress.pathType

Тип пути Ingress

Prefix

server.ingress.tls

Массив объектов TLS для Ingress

true

server.ingress.extraHosts

Имя хоста или адрес.
Пример конфигурации:

- name: argocd.example.com
  path: /

[]

server.ingress.extraPaths

Дополнительные пути для конфигурации каждого хоста Ingress.
Пример конфигурации:

- path: /*
  pathType: Prefix
  backend:
    service:
      name: ssl-redirect
      port:
        name: use-annotation

[]

server.ingress.extraRules

Правила.
Пример конфигурации:

- http:
    paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: '{{ include "argo-cd.server.fullname" . }}'
            port:
              name: '{{ .Values.server.service.servicePortHttpsName }}'

[]

server.ingress.extraTls

Задает дополнительную TLS-конфигурацию Ingress

- hosts:
  - 'argocd.{{ include "ingress.domain" . }}'
  secretName: ingress-tls

server.ingress.aws.backendProtocolVersion

Настройка backendprotocolversion

GRPC

server.ingress.aws.serviceType

Настройка servicetype

NodePort

server.ingress.aws.serviceAnnotations

Добавляет аннотации в AWS ALB gRPC service

{}

server.ingress.gke.backendConfig

Определяет BackendConfig для GKE Ingress Controller.
Пример конфигурации:

iap:
  enabled: true
  oauthclientCredentials:
    secretName: argocd-secret

{}

server.ingress.gke.frontendConfig

Определяет FrontendConfig для GKE Ingress Controller.
Пример конфигурации:

redirectToHttps:
  enabled: true
  responseCodeName: RESPONSE_CODE

{}

server.ingress.gke.managedCertificate.create

Создавать ли ресурс

true

server.ingress.gke.managedCertificate.extraDomains

Настройка extradomains

[]

server.ingressGrpc.enabled

Активация функции

false

server.ingressGrpc.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.ingressGrpc.labels

Метки, добавляемые к создаваемым ресурсам

{}

server.ingressGrpc.ingressClassName

Настройка ingressclassname

""

server.ingressGrpc.hostname

Имя хоста или адрес

""

server.ingressGrpc.path

Путь к файлу или каталогу

/

server.ingressGrpc.pathType

Путь к файлу или каталогу

Prefix

server.ingressGrpc.tls

Настройки TLS/SSL

false

server.ingressGrpc.extraHosts

Имя хоста или адрес.
Пример конфигурации:

- name: grpc.argocd.example.com
  path: /

[]

server.ingressGrpc.extraPaths

Путь к файлу или каталогу.
Пример конфигурации:

- path: /*
  pathType: Prefix
  backend:
    service:
      name: ssl-redirect
      port:
        name: use-annotation

[]

server.ingressGrpc.extraRules

Правила.
Пример конфигурации:

- http:
    paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: '{{ include "argo-cd.server.fullname" . }}'
            port:
              name: '{{ .Values.server.service.servicePortHttpName }}'

[]

server.ingressGrpc.extraTls

Задает дополнительную TLS-конфигурацию для gRPC Ingress.
Пример конфигурации:

- secretName: your-certificate-name
  hosts:
    - argocd.example.com

[]

server.route.enabled

Создание маршрута Gateway API для внешнего доступа

false

server.route.annotations

Аннотации для HTTPRoute

{}

server.route.hostname

Имя хоста или адрес

""

server.route.termination_type

Определяет тип termination для OpenShift Route

passthrough

server.route.termination_policy

Определяет termination policy для OpenShift Route

None

server.httproute.enabled

Включает ресурс HTTPRoute для ArgoCD Server через Gateway API

false

server.httproute.labels

Метки, добавляемые к создаваемым ресурсам

{}

server.httproute.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.httproute.parentRefs

Задает parentRefs Gateway API для HTTPRoute.
Пример конфигурации:

- name: example-gateway
  namespace: example-gateway-namespace
  sectionName: https

[]

server.httproute.hostnames

Cписок имен хоста для HTTPRoute

[]

server.httproute.rules

Определяет правила HTTPRoute

- matches:
    - path:
        type: PathPrefix
        value: /

server.grpcroute.enabled

Включает ресурс GRPCRoute для ArgoCD Server через Gateway API

false

server.grpcroute.labels

Метки, добавляемые к создаваемым ресурсам

{}

server.grpcroute.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.grpcroute.parentRefs

Задает parentRefs Gateway API для HTTPRoute.
Пример конфигурации:

- name: example-gateway
  namespace: example-gateway-namespace
  sectionName: grpc

[]

server.grpcroute.hostnames

Cписок имен хоста для GRPCRoute

[]

server.grpcroute.rules

Определяет правила GRPCRoute

- matches:
    - method:
        type: Exact

server.backendTLSPolicy.enabled

Включает ресурс BackendTLSPolicy для ArgoCD Server через Gateway API

false

server.backendTLSPolicy.labels

Метки, добавляемые к создаваемым ресурсам

{}

server.backendTLSPolicy.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.backendTLSPolicy.targetRefs

Задает целевые ссылки для BackendTLSPolicy.
Пример конфигурации:

- group: ""
  kind: Service
  name: argocd-server
  sectionName: https

[]

server.backendTLSPolicy.validation

Определяет параметры TLS-валидации для BackendTLSPolicy.
Пример конфигурации:

hostname: argocd-server.argocd.svc.cluster.local
caCertificateRefs:
  - name: example-ca-cert
    group: ""
    kind: ConfigMap
wellKnownCACertificates: System

{}

server.listenerset.enabled

Включает ресурс ListenerSet для ArgoCD Server через Gateway API

false

server.listenerset.labels

Метки, добавляемые к создаваемым ресурсам

{}

server.listenerset.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

server.listenerset.parentRef

Задает parentRef Gateway API для ListenerSet.
Пример конфигурации:

name: example-gateway
namespace: example-gateway-namespace

{}

server.listenerset.hostname

Имя хоста или адрес

""

server.listenerset.listenerName

Имя синтезированного listener

https

server.listenerset.port

Порт для синтезированного listener

443

server.listenerset.protocol

Протокол для синтезированного listener

HTTPS

server.listenerset.tls.enabled

Включение TLS на синтезированном listener

true

server.listenerset.tls.mode

Режим TLS-терминации

Terminate

server.listenerset.tls.secretName

Имя Secret для TLS-сертификата

""

server.listenerset.allowedRoutes.namespaces.from

Разрешенные маршруты для синтезированного listener

Same

server.listenerset.listeners

Listeners для прикрепления к родительскому Gateway.
Пример конфигурации:

- name: https
  port: 443
  protocol: HTTPS
  hostname: argocd.example.com
  tls:
    mode: Terminate
    certificateRefs:
      - group: ""
        kind: Secret
        name: argocd-server-tls
  allowedRoutes:
    namespaces:
      from: Same

[]

server.clusterRoleRules.enabled

Включение пользовательских правил ClusterRole

false

server.clusterRoleRules.rules

Список пользовательских правил для ClusterRole

[]

server.networkPolicy.create

Включение создания NetworkPolicy

false

repoServer – настройки Repo Server#

Параметр

Описание

Значение по умолчанию

repoServer.name

Имя компонента Repo Server

repo-server

repoServer.replicas

Количество реплик pod

1

repoServer.runtimeClassName

Имя RuntimeClass для pod

""

repoServer.autoscaling.enabled

Включение Horizontal Pod Autoscaler для Repo Server

false

repoServer.autoscaling.minReplicas

Минимальное количество реплик при автоматическом масштабировании

1

repoServer.autoscaling.maxReplicas

Максимальное количество реплик при автоматическом масштабировании

5

repoServer.autoscaling.targetCPUUtilizationPercentage

Целевой процент использования CPU для HPA Repo Server

50

repoServer.autoscaling.targetMemoryUtilizationPercentage

Целевой процент использования памяти для HPA Repo Server

50

repoServer.autoscaling.behavior

Поведение масштабирования HPA по направлениям scale up и scale down.
Пример конфигурации:

scaleDown:
  stabilizationWindowSeconds: 300
  policies:
    - type: Pods
      value: 1
      periodSeconds: 180
scaleUp:
  stabilizationWindowSeconds: 300
  policies:
    - type: Pods
      value: 2
      periodSeconds: 60

{}

repoServer.autoscaling.metrics

Пользовательские метрики для HPA Repo Server

[]

repoServer.pdb.enabled

Включение PodDisruptionBudget для Repo Server

false

repoServer.pdb.labels

Метки, добавляемые к создаваемым ресурсам

{}

repoServer.pdb.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

repoServer.pdb.minAvailable

Минимальное количество pod, которые должны оставаться доступными после eviction

""

repoServer.pdb.maxUnavailable

Максимальное количество pod, которые могут быть недоступны после eviction

""

repoServer.vpa.enabled

Включение VerticalPodAutoscaler

false

repoServer.vpa.labels

Метки, добавляемые к создаваемым ресурсам

{}

repoServer.vpa.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

repoServer.vpa.updateMode

Режим работы VPA для обновления ресурсов контейнера

Initial

repoServer.vpa.containerPolicy

Правила расчета рекомендуемых ресурсов для контейнера.
Пример конфигурации:

controlledResources: ["cpu", "memory"]
minAllowed:
  cpu: 250m
  memory: 256Mi
maxAllowed:
  cpu: 1
  memory: 1Gi

{}

repoServer.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-cd/argocd'

repoServer.image.tag

Тег образа контейнера

v3.4.5

repoServer.image.imagePullPolicy

Политика загрузки образа контейнера

""

repoServer.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

repoServer.extraArgs

Дополнительные аргументы командной строки

[]

repoServer.env

Переменные окружения контейнера

[]

repoServer.envFrom

Подключение источников переменных окружения через envFrom.
Пример конфигурации:

- configMapRef:
    name: config-map-name
- secretRef:
    name: secret-name

[]

repoServer.lifecycle

Параметры lifecycle для контейнера

{}

repoServer.extraContainers

Дополнительные контейнеры (sidecar) в pod.
Пример конфигурации:

- name: cmp-my-plugin
  command:
    - "/var/run/argocd/argocd-cmp-server"
  image: busybox
  securityContext:
    runAsNonRoot: true
    runAsUser: 999
  volumeMounts:
    - mountPath: /var/run/argocd
      name: var-files
    - mountPath: /home/argocd/cmp-server/plugins
      name: plugins
    - mountPath: /home/argocd/cmp-server/config/plugin.yaml
      subPath: my-plugin.yaml
      name: argocd-cmp-cm
    - mountPath: /tmp
      name: cmp-tmp
- name: cmp-my-plugin2
  command:
    - "/var/run/argocd/argocd-cmp-server"
  image: busybox
  securityContext:
    runAsNonRoot: true
    runAsUser: 999
  volumeMounts:
    - mountPath: /var/run/argocd
      name: var-files
    - mountPath: /home/argocd/cmp-server/plugins
      name: plugins
    - mountPath: /home/argocd/cmp-server/config/plugin.yaml
      subPath: my-plugin2.yaml
      name: argocd-cmp-cm
    - mountPath: /tmp
      name: cmp-tmp

[]

repoServer.initContainers

Список init-контейнеров, запускаемых перед основными

[]

repoServer.copyutil.extraArgs

Дополнительные аргументы командной строки

"--update=none"

repoServer.copyutil.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 100m
  memory: 128Mi
requests:
  cpu: 50m
  memory: 64Mi

{}

repoServer.volumeMounts

Дополнительные точки монтирования томов (VolumeMount) в основной контейнер Repo Server

[]

repoServer.volumes

Дополнительные тома (Volume) для pod Repo Server.
Пример конфигурации:

- name: argocd-cmp-cm
  configMap:
    name: argocd-cmp-cm
- name: cmp-tmp
  emptyDir: {}

[]

repoServer.existingVolumes

Использование существующих томов вместо EmptyDir.
Пример конфигурации:

gpgKeyring:
  persistentVolumeClaim:
    claimName: pvc-argocd-repo-server-keyring
helmWorkingDir:
  persistentVolumeClaim:
    claimName: pvc-argocd-repo-server-workdir
tmp:
  persistentVolumeClaim:
    claimName: pvc-argocd-repo-server-tmp
varFiles:
  persistentVolumeClaim:
    claimName: pvc-argocd-repo-server-varfiles
plugins:
  persistentVolumeClaim:
    claimName: pvc-argocd-repo-server-plugins

{}

repoServer.emptyDir.sizeLimit

Ограничение размера тома EmptyDir контейнера

""

repoServer.useEphemeralHelmWorkingDir

Использование временного рабочего каталога Helm

true

repoServer.deploymentAnnotations

Добавление аннотации в Deployment Repo Server

{}

repoServer.deploymentLabels

Добавление меток в Deployment Repo Server

{}

repoServer.podAnnotations

Добавление аннотации в pod Repo Server

{}

repoServer.podLabels

Добавление меток в pod Repo Server

{}

repoServer.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 50m
  memory: 128Mi
requests:
  cpu: 10m
  memory: 64Mi

{}

repoServer.containerPorts.server

Порт контейнера Repo Server

8081

repoServer.containerPorts.metrics

Порт контейнера для экспорта метрик

8084

repoServer.hostNetwork

Запуск pod в режиме hostNetwork

false

repoServer.dnsConfig

Пользовательская конфигурация DNS для pod

{}

repoServer.dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

repoServer.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

repoServer.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

repoServer.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

repoServer.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

repoServer.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

repoServer.readinessProbe.enabled

Включение проверки готовности для контейнера

true

repoServer.readinessProbe.httpPath

Путь HTTP-запроса для проверки готовности

/healthz

repoServer.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

repoServer.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

10

repoServer.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

10

repoServer.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

1

repoServer.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

1

repoServer.livenessProbe.enabled

Включение проверки работоспособности для контейнера

true

repoServer.livenessProbe.httpPath

Путь HTTP-запроса для проверки работоспособности

/healthz?full=true

repoServer.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

repoServer.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

10

repoServer.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

10

repoServer.livenessProbe.successThreshold

Количество успешных попыток для подтверждения работоспособности

1

repoServer.livenessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки работоспособности

1

repoServer.startupProbe.enabled

Включение проверки запуска для контейнера

false

repoServer.startupProbe.httpPath

Путь HTTP-запроса для проверки запуска

/healthz

repoServer.startupProbe.failureThreshold

Количество неудачных попыток проверки запуска

20

repoServer.startupProbe.initialDelaySeconds

Задержка в секундах перед первой стартовой проверкой

10

repoServer.startupProbe.periodSeconds

Интервал в секундах между проверками запуска

10

repoServer.startupProbe.successThreshold

Количество успешных проверок запуска, необходимое для перевода контейнера в состояние «запущен»

1

repoServer.startupProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа при проверке запуска

1

repoServer.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

30

repoServer.nodeSelector

Селектор узлов для планирования pod

{}

repoServer.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

repoServer.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

repoServer.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам.
Пример конфигурации:

- maxSkew: 1
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: DoNotSchedule

[]

repoServer.deploymentStrategy

Стратегия Deployment для Repo Server.
Пример конфигурации:

type: RollingUpdate
rollingUpdate:
  maxSurge: 25%
  maxUnavailable: 25%

{}

repoServer.priorityClassName

Имя PriorityClass для pod

""

repoServer.certificateSecret.enabled

Включение использования существующего TLS-секрета

false

repoServer.certificateSecret.annotations

Аннотации для ресурса Secret с сертификатом

{}

repoServer.certificateSecret.labels

Метки для ресурса Secret с сертификатом

{}

repoServer.certificateSecret.ca

Данные сертификата удостоверяющего центра (CA)

""

repoServer.certificateSecret.key

Приватный ключ сертификата

""

repoServer.certificateSecret.crt

Данные публичного сертификата

""

repoServer.service.annotations

Аннотации для ресурса Service

{}

repoServer.service.labels

Метки для ресурса Service

{}

repoServer.service.port

Сервисный порт Repo Server

8081

repoServer.service.portName

Имя порта Service Repo Server

tcp-repo-server

repoServer.service.trafficDistribution

Предпочтение распределения трафика для Service Repo Server

""

repoServer.metrics.enabled

Активация экспорта метрик

true

repoServer.metrics.service.type

Тип Service

ClusterIP

repoServer.metrics.service.clusterIP

IP-адрес ClusterIP для Service метрик

""

repoServer.metrics.service.annotations

Аннотации, добавляемые к создаваемым ресурсам для метрик

{}

repoServer.metrics.service.labels

Метки, добавляемые к создаваемым ресурсам для метрик

{}

repoServer.metrics.service.servicePort

Порт Service для экспорта метрик

8084

repoServer.metrics.service.portName

Имя порта метрик в Service

http-metrics

repoServer.metrics.serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator

true

repoServer.metrics.serviceMonitor.interval

Интервал сбора метрик

30s

repoServer.metrics.serviceMonitor.scrapeTimeout

Тайм-аут сбора метрик

""

repoServer.metrics.serviceMonitor.honorLabels

Сохранение оригинальных меток метрик при конфликте с метками цели (target)

false

repoServer.metrics.serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик

[]

repoServer.metrics.serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам

[]

repoServer.metrics.serviceMonitor.selector

Селектор для выбора экземпляра Prometheus, собирающего метрики.
Пример конфигурации: prometheus: kube-prometheus

{}

repoServer.metrics.serviceMonitor.scheme

Схема подключения

""

repoServer.metrics.serviceMonitor.tlsConfig

Настройки TLS-параметров для безопасного сбора метрик Prometheus по протоколу HTTP

{}

repoServer.metrics.serviceMonitor.namespace

Пространство имен, в котором создается ServiceMonitor

""

repoServer.metrics.serviceMonitor.additionalLabels

Дополнительные метки для ServiceMonitor

{}

repoServer.metrics.serviceMonitor.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

repoServer.clusterRoleRules.enabled

Включение пользовательских правил ClusterRole

false

repoServer.clusterRoleRules.rules

Список пользовательских правил для ClusterRole

[]

repoServer.automountServiceAccountToken

Автоматическое монтирование токена сервисного аккаунта в pod

true

repoServer.serviceAccount.create

Создание ServiceAccount

true

repoServer.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

""

repoServer.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

repoServer.serviceAccount.labels

Метки, добавляемые к создаваемым ресурсам

{}

repoServer.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

true

repoServer.rbac

RBAC-правила для Repo Server.
Пример конфигурации:

- apiGroups:
  - argoproj.io
  resources:
  - applications
  verbs:
  - get
  - list
  - watch

[]

repoServer.networkPolicy.create

Включение создания NetworkPolicy

false

applicationSet – настройки контроллера ApplicationSet#

Параметр

Описание

Значение по умолчанию

applicationSet.name

Имя компонента контроллера ApplicationSet

applicationset-controller

applicationSet.replicas

Количество реплик pod

1

applicationSet.runtimeClassName

Имя RuntimeClass для pod

""

applicationSet.pdb.enabled

Включение PodDisruptionBudget для контроллера ApplicationSet

false

applicationSet.pdb.labels

Метки, добавляемые к создаваемым ресурсам

{}

applicationSet.pdb.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

applicationSet.pdb.minAvailable

Минимальное количество pod, которые должны оставаться доступными после eviction

""

applicationSet.pdb.maxUnavailable

Максимальное количество pod, которые могут быть недоступны после eviction

""

applicationSet.vpa.enabled

Включение VerticalPodAutoscaler

false

applicationSet.vpa.labels

Метки, добавляемые к создаваемым ресурсам

{}

applicationSet.vpa.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

applicationSet.vpa.updateMode

Режим работы VPA для обновления ресурсов контейнера

Initial

applicationSet.vpa.containerPolicy

Правила расчета рекомендуемых ресурсов для контейнера.
Пример конфигурации:

controlledResources: ["cpu", "memory"]
minAllowed:
  cpu: 250m
  memory: 256Mi
maxAllowed:
  cpu: 1
  memory: 1Gi

{}

applicationSet.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-cd/argocd'

applicationSet.image.tag

Тег образа контейнера

v3.4.5

applicationSet.image.imagePullPolicy

Политика загрузки образа контейнера

""

applicationSet.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

applicationSet.extraArgs

Дополнительные аргументы командной строки

[]

applicationSet.extraEnv

Дополнительные переменные окружения для контроллера ApplicationSet.
Пример конфигурации:

- name: "MY_VAR"
  value: "value"

[]

applicationSet.extraEnvFrom

Источники переменных окружения (Secret или ConfigMap) для pod.
Пример конфигурации:

- configMapRef:
    name: config-map-name
- secretRef:
    name: secret-name

[]

applicationSet.extraContainers

Дополнительные контейнеры (sidecar) в pod

[]

applicationSet.initContainers

Список init-контейнеров, запускаемых перед основными

[]

applicationSet.extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

applicationSet.extraVolumes

Дополнительные тома в pod контроллера ApplicationSet

[]

applicationSet.emptyDir.sizeLimit

Ограничение размера тома EmptyDir контейнера

""

applicationSet.metrics.enabled

Активация экспорта метрик

true

applicationSet.metrics.service.type

Тип Service

ClusterIP

applicationSet.metrics.service.clusterIP

IP-адрес ClusterIP для Service метрик

""

applicationSet.metrics.service.annotations

Аннотации, добавляемые к создаваемым ресурсам для метрик

{}

applicationSet.metrics.service.labels

Метки, добавляемые к создаваемым ресурсам для метрик

{}

applicationSet.metrics.service.servicePort

Порт Service для экспорта метрик

8080

applicationSet.metrics.service.portName

Имя порта метрик в Service

http-metrics

applicationSet.metrics.serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator

true

applicationSet.metrics.serviceMonitor.interval

Интервал сбора метрик

30s

applicationSet.metrics.serviceMonitor.scrapeTimeout

Тайм-аут сбора метрик

""

applicationSet.metrics.serviceMonitor.honorLabels

Сохранение оригинальных меток метрик при конфликте с метками цели (target)

false

applicationSet.metrics.serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик

[]

applicationSet.metrics.serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам

[]

applicationSet.metrics.serviceMonitor.selector

Селектор для выбора экземпляра Prometheus, собирающего метрики.
Пример конфигурации: prometheus: kube-prometheus

{}

applicationSet.metrics.serviceMonitor.scheme

Схема подключения

""

applicationSet.metrics.serviceMonitor.tlsConfig

Настройки TLS-параметров для безопасного сбора метрик Prometheus по протоколу HTTP

{}

applicationSet.metrics.serviceMonitor.namespace

Пространство имен, в котором создается ServiceMonitor

""

applicationSet.metrics.serviceMonitor.additionalLabels

Дополнительные метки для ServiceMonitor

{}

applicationSet.metrics.serviceMonitor.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

applicationSet.service.annotations

Аннотации для ресурса Service

{}

applicationSet.service.labels

Метки для ресурса Service

{}

applicationSet.service.type

Тип Service

ClusterIP

applicationSet.service.port

Сервисный порт контроллера ApplicationSet

7000

applicationSet.service.portName

Имя порта Service контроллера ApplicationSet

http-webhook

applicationSet.automountServiceAccountToken

Автоматическое монтирование токена сервисного аккаунта в pod

true

applicationSet.serviceAccount.create

Создание ServiceAccount

true

applicationSet.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

argocd-applicationset-controller

applicationSet.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

applicationSet.serviceAccount.labels

Метки, добавляемые к создаваемым ресурсам

{}

applicationSet.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

true

applicationSet.deploymentAnnotations

Добавление аннотации в Deployment контроллера ApplicationSet

{}

applicationSet.deploymentLabels

Добавление меток в Deployment контроллера ApplicationSet

{}

applicationSet.podAnnotations

Добавление аннотации в pod контроллера ApplicationSet

{}

applicationSet.podLabels

Добавление меток в pod контроллера ApplicationSet

{}

applicationSet.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 100m
  memory: 128Mi
requests:
  cpu: 100m
  memory: 128Mi

{}

applicationSet.containerPorts.metrics

Порт контейнера для экспорта метрик

8080

applicationSet.containerPorts.probe

Порт контейнера для проверок контроллера ApplicationSet

8081

applicationSet.containerPorts.webhook

Порт контейнера для webhook контроллера ApplicationSet

7000

applicationSet.dnsConfig

Пользовательская конфигурация DNS для pod

{}

applicationSet.dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

applicationSet.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

applicationSet.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

applicationSet.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

applicationSet.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

applicationSet.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

applicationSet.readinessProbe.enabled

Включение проверки готовности для контейнера

false

applicationSet.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

10

applicationSet.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

10

applicationSet.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

1

applicationSet.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

1

applicationSet.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

applicationSet.livenessProbe.enabled

Включение проверки работоспособности для контейнера

false

applicationSet.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

10

applicationSet.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

10

applicationSet.livenessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки работоспособности

1

applicationSet.livenessProbe.successThreshold

Количество успешных попыток для подтверждения работоспособности

1

applicationSet.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

applicationSet.startupProbe.enabled

Включение проверки запуска для контейнера

false

applicationSet.startupProbe.initialDelaySeconds

Задержка в секундах перед первой стартовой проверкой

10

applicationSet.startupProbe.periodSeconds

Интервал в секундах между проверками запуска

10

applicationSet.startupProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа при проверке запуска

1

applicationSet.startupProbe.successThreshold

Количество успешных проверок запуска, необходимое для перевода контейнера в состояние «запущен»

1

applicationSet.startupProbe.failureThreshold

Количество неудачных попыток проверки запуска

20

applicationSet.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

30

applicationSet.nodeSelector

Селектор узлов для планирования pod

{}

applicationSet.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

applicationSet.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

applicationSet.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам.
Пример конфигурации:

- maxSkew: 1
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: DoNotSchedule

[]

applicationSet.deploymentStrategy

Стратегия Deployment для контроллера ApplicationSet.
Пример конфигурации:

type: RollingUpdate
rollingUpdate:
  maxSurge: 25%
  maxUnavailable: 25%

{}

applicationSet.priorityClassName

Имя PriorityClass для pod

""

applicationSet.certificate.enabled

Создание ресурса Certificate для контроллера ApplicationSet через Сert-manager

false

applicationSet.certificate.domain

Основной домен сертификата контроллера ApplicationSet

""

applicationSet.certificate.additionalHosts

Дополнительные имена хостов для сертификата контроллера ApplicationSet

[]

applicationSet.certificate.duration

Срок действия сертификата контроллера ApplicationSet

""

applicationSet.certificate.renewBefore

Срок обновления сертификата контроллера ApplicationSet до истечения

""

applicationSet.certificate.issuer.group

Группа Issuer для сертификата контроллера ApplicationSet

""

applicationSet.certificate.issuer.kind

Тип Issuer для сертификата контроллера ApplicationSet

""

applicationSet.certificate.issuer.name

Имя Issuer для сертификата контроллера ApplicationSet

""

applicationSet.certificate.privateKey.rotationPolicy

Политика ротации приватного ключа сертификата контроллера ApplicationSet

Never

applicationSet.certificate.privateKey.encoding

Кодировка приватного ключа сертификата контроллера ApplicationSet

PKCS1

applicationSet.certificate.privateKey.algorithm

Алгоритм генерации приватного ключа сертификата контроллера ApplicationSet

RSA

applicationSet.certificate.privateKey.size

Размер ключа сертификата контроллера ApplicationSet

2048

applicationSet.certificate.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

applicationSet.ingress.enabled

Включение Ingress для компонента сервера

false

applicationSet.ingress.labels

Дополнительные метки Ingress

{}

applicationSet.ingress.annotations

Аннотации Ingress

{}

applicationSet.ingress.ingressClassName

Имя класса контроллера Ingress

""

applicationSet.ingress.hostname

Хост для Ingress контроллера ApplicationSet

""

applicationSet.ingress.path

Путь Ingress

/api/webhook

applicationSet.ingress.pathType

Тип пути Ingress

Prefix

applicationSet.ingress.tls

Массив объектов TLS для Ingress

false

applicationSet.ingress.extraHosts

Дополнительные хосты для Ingress контроллера ApplicationSet.
Пример конфигурации:

- name: argocd.example.com
  path: /

[]

applicationSet.ingress.extraPaths

Дополнительные пути для конфигурации каждого хоста Ingress.
Пример конфигурации:

- path: /*
  pathType: Prefix
  backend:
    service:
      name: ssl-redirect
      port:
        name: use-annotation

[]

applicationSet.ingress.extraRules

Дополнительные правила Ingress для контроллера ApplicationSet.
Пример конфигурации:

- http:
    paths:
    - path: /api/webhook
      pathType: Prefix
      backend:
        service:
          name: argocd-applicationset-controller
          port:
            name: http-webhook

[]

applicationSet.ingress.extraTls

Дополнительная TLS-конфигурация для Ingress контроллера ApplicationSet.
Пример конфигурации:

- secretName: argocd-applicationset-tls
  hosts:
    - argocd-applicationset.example.com

[]

applicationSet.httproute.enabled

Включение ресурса HTTPRoute для контроллера ApplicationSet через Gateway API

false

applicationSet.httproute.labels

Метки, добавляемые к создаваемым ресурсам

{}

applicationSet.httproute.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

applicationSet.httproute.parentRefs

Задает parentRefs Gateway API для HTTPRoute контроллера ApplicationSet.
Пример конфигурации:

- name: example-gateway
  namespace: example-gateway-namespace
  sectionName: https

[]

applicationSet.httproute.hostnames

Cписок имен хоста для HTTPRoute контроллера ApplicationSet

[]

applicationSet.httproute.rules

Правила HTTPRoute для контроллера ApplicationSet

- matches:
    - path:
        type: PathPrefix
        value: /api/webhook

applicationSet.listenerset.enabled

Включение ресурса ListenerSet для контроллера ApplicationSet через Gateway API

false

applicationSet.listenerset.labels

Метки, добавляемые к создаваемым ресурсам

{}

applicationSet.listenerset.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

applicationSet.listenerset.parentRef

ParentRef Gateway API для ListenerSet контроллера ApplicationSet.
Пример конфигурации:

name: example-gateway
namespace: example-gateway-namespace

{}

applicationSet.listenerset.hostname

Хост для синтезированного listener контроллера ApplicationSet

""

applicationSet.listenerset.listenerName

Имя синтезированного listener контроллера ApplicationSet

https

applicationSet.listenerset.port

Порт для синтезированного listener контроллера ApplicationSet

443

applicationSet.listenerset.protocol

Протокол для синтезированного listener контроллера ApplicationSet

HTTPS

applicationSet.listenerset.tls.enabled

Включение TLS на синтезированном listener контроллера ApplicationSet

true

applicationSet.listenerset.tls.mode

Режим TLS-терминации для контроллера ApplicationSet

Terminate

applicationSet.listenerset.tls.secretName

Имя Secret для TLS-сертификата контроллера ApplicationSet

""

applicationSet.listenerset.allowedRoutes.namespaces.from

Разрешенные маршруты для listener контроллера ApplicationSet

Same

applicationSet.listenerset.listeners

Listeners для прикрепления к родительскому Gateway контроллера ApplicationSet.
Пример конфигурации:

- name: https
  port: 443
  protocol: HTTPS
  hostname: argocd.example.com
  tls:
    mode: Terminate
    certificateRefs:
      - group: ""
        kind: Secret
        name: argocd-applicationset-controller-tls
  allowedRoutes:
    namespaces:
      from: Same

[]

applicationSet.allowAnyNamespace

Разрешение работы контроллера ApplicationSet в любом пространстве имен

false

applicationSet.networkPolicy.create

Включение создания NetworkPolicy

false

notifications – настройки контроллера Notifications#

Параметр

Описание

Значение по умолчанию

notifications.enabled

Включение контроллера уведомлений

true

notifications.name

Имя компонента контроллера уведомлений

notifications-controller

notifications.argocdUrl

Адрес веб-интерфейса ArgoCD для шаблонов уведомлений

""

notifications.runtimeClassName

Имя RuntimeClass для pod

""

notifications.pdb.enabled

Включение PodDisruptionBudget для контроллера уведомлений

false

notifications.pdb.labels

Метки, добавляемые к создаваемым ресурсам

{}

notifications.pdb.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

notifications.pdb.minAvailable

Минимальное количество pod, которые должны оставаться доступными после eviction

""

notifications.pdb.maxUnavailable

Максимальное количество pod, которые могут быть недоступны после eviction

""

notifications.vpa.enabled

Включение VerticalPodAutoscaler

false

notifications.vpa.labels

Метки, добавляемые к создаваемым ресурсам

{}

notifications.vpa.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

notifications.vpa.updateMode

Режим работы VPA для обновления ресурсов контейнера

Initial

notifications.vpa.containerPolicy

Правила расчета рекомендуемых ресурсов для контейнера.
Пример конфигурации:

controlledResources: ["cpu", "memory"]
minAllowed:
  cpu: 250m
  memory: 256Mi
maxAllowed:
  cpu: 1
  memory: 1Gi

{}

notifications.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-cd/argocd'

notifications.image.tag

Тег образа контейнера

v3.4.5

notifications.image.imagePullPolicy

Политика загрузки образа контейнера

""

notifications.imagePullSecrets

Список Secret для загрузки образа контейнера из приватных реестров

[]

notifications.extraArgs

Дополнительные аргументы командной строки

[]

notifications.extraEnv

Дополнительные переменные окружения для контроллера уведомлений

[]

notifications.extraEnvFrom

Источники переменных окружения (Secret или ConfigMap) для pod.
Пример конфигурации:

- configMapRef:
    name: config-map-name
- secretRef:
    name: secret-name

[]

notifications.extraContainers

Дополнительные контейнеры (sidecar) в pod

[]

notifications.initContainers

Список init-контейнеров, запускаемых перед основными

[]

notifications.extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

notifications.extraVolumes

Дополнительные тома в pod контроллера уведомлений

[]

notifications.context

Пользовательский контекст для шаблонов уведомлений.
Пример конфигурации:

region: east
environmentName: staging

{}

notifications.secret.create

Создание Secret для контроллера уведомлений

true

notifications.secret.name

Имя Secret для контроллера уведомлений

argocd-notifications-secret

notifications.secret.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

notifications.secret.labels

Метки, добавляемые к создаваемым ресурсам

{}

notifications.secret.items

Пользовательские элементы для Secret контроллера уведомлений, например токены для Slack, Grafana, вебхуки, email.
Пример конфигурации:

slack-token: "slack-token"
email-username: "user@example.com"
email-password: "password"

{}

notifications.metrics.enabled

Активация экспорта метрик

true

notifications.metrics.port

Порт метрик контроллера уведомлений

9001

notifications.metrics.service.type

Тип Service

ClusterIP

notifications.metrics.service.clusterIP

IP-адрес ClusterIP для Service метрик

""

notifications.metrics.service.annotations

Аннотации, добавляемые к создаваемым ресурсам для метрик

{}

notifications.metrics.service.labels

Метки, добавляемые к создаваемым ресурсам для метрик

{}

notifications.metrics.service.portName

Имя порта метрик в Service

http-metrics

notifications.metrics.serviceMonitor.enabled

Активация создания ServiceMonitor для Prometheus Operator

true

notifications.metrics.serviceMonitor.selector

Селектор для выбора экземпляра Prometheus, собирающего метрики.
Пример конфигурации: prometheus: kube-prometheus

{}

notifications.metrics.serviceMonitor.additionalLabels

Дополнительные метки для ServiceMonitor

{}

notifications.metrics.serviceMonitor.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

notifications.metrics.serviceMonitor.scheme

Схема подключения

""

notifications.metrics.serviceMonitor.tlsConfig

Настройки TLS-параметров для безопасного сбора метрик Prometheus по протоколу HTTP

{}

notifications.metrics.serviceMonitor.honorLabels

Сохранение оригинальных меток метрик при конфликте с метками цели (target)

false

notifications.metrics.serviceMonitor.relabelings

Правила фильтрации и преобразования меток, применяемые к целям сбора до начала сбора метрик

[]

notifications.metrics.serviceMonitor.metricRelabelings

Правила фильтрации и преобразования меток, применяемые к собранным метрикам

[]

notifications.notifiers

Настройка сервисов уведомлений, таких как Slack, email или пользовательский webhook.
Пример конфигурации:

service.slack: |
  token: $slack-token

{}

notifications.deploymentAnnotations

Добавление аннотации в Deployment контроллера уведомлений

{}

notifications.deploymentLabels

Добавление меток в Deployment контроллера уведомлений

{}

notifications.podAnnotations

Добавление аннотации в pod контроллера уведомлений

{}

notifications.podLabels

Добавление меток в pod контроллера уведомлений

{}

notifications.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 100m
  memory: 128Mi
requests:
  cpu: 100m
  memory: 128Mi

{}

notifications.containerPorts.metrics

Порт контейнера для экспорта метрик

9001

notifications.dnsConfig

Пользовательская конфигурация DNS для pod

{}

notifications.dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

notifications.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

notifications.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

notifications.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

notifications.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

notifications.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

notifications.readinessProbe.enabled

Включение проверки готовности для контейнера

false

notifications.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

10

notifications.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

10

notifications.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

1

notifications.readinessProbe.successThreshold

Количество успешных попыток для подтверждения готовности

1

notifications.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

notifications.livenessProbe.enabled

Включение проверки работоспособности для контейнера

false

notifications.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

10

notifications.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

10

notifications.livenessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки работоспособности

1

notifications.livenessProbe.successThreshold

Количество успешных попыток для подтверждения работоспособности

1

notifications.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

notifications.startupProbe.enabled

Включение проверки запуска для контейнера

false

notifications.startupProbe.initialDelaySeconds

Задержка в секундах перед первой стартовой проверкой

10

notifications.startupProbe.periodSeconds

Интервал в секундах между проверками запуска

10

notifications.startupProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа при проверке запуска

1

notifications.startupProbe.successThreshold

Количество успешных проверок запуска, необходимое для перевода контейнера в состояние «запущен»

1

notifications.startupProbe.failureThreshold

Количество неудачных попыток проверки запуска

20

notifications.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

30

notifications.nodeSelector

Селектор узлов для планирования pod

{}

notifications.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

notifications.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

notifications.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам.
Пример конфигурации:

- maxSkew: 1
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: DoNotSchedule

[]

notifications.deploymentStrategy

Стратегия Deployment для контроллера уведомлений

type: Recreate

notifications.priorityClassName

Имя PriorityClass для pod

""

notifications.automountServiceAccountToken

Автоматическое монтирование токена сервисного аккаунта в pod

true

notifications.serviceAccount.create

Создание ServiceAccount

true

notifications.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

argocd-notifications-controller

notifications.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

notifications.serviceAccount.labels

Метки, добавляемые к создаваемым ресурсам

{}

notifications.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

true

notifications.cm.create

Создание ConfigMap для контроллера уведомлений

true

notifications.clusterRoleRules.rules

Список пользовательских правил для ClusterRole

[]

notifications.subscriptions

Центрально управляемые глобальные подписки на уведомления.
Пример конфигурации:

- recipients:
  - slack:test2
  - email:test@gmail.com
  triggers:
  - on-sync-status-unknown
- recipients:
  - slack:test3
  selector: test=true
  triggers:
  - on-sync-status-unknown

[]

notifications.templates

Шаблоны уведомлений для генерации содержимого.
Пример конфигурации:

template.app-deployed: |
  email:
    subject: New version of an application {{.app.metadata.name}} is up and running.
  message: |
    {{if eq .serviceType "slack"}}:white_check_mark:{{end}} Application {{.app.metadata.name}} is now running new version of deployments manifests.
  slack:
    attachments: |
      [{
        "title": "{{ .app.metadata.name}}",
        "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
        "color": "#18be52",
        "fields": [
        {
          "title": "Sync Status",
          "value": "{{.app.status.sync.status}}",
          "short": true
        },
        {
          "title": "Repository",
          "value": "{{.app.spec.source.repoURL}}",
          "short": true
        },
        {
          "title": "Revision",
          "value": "{{.app.status.sync.revision}}",
          "short": true
        }
        {{range $index, $c := .app.status.conditions}}
        {{if not $index}},{{end}}
        {{if $index}},{{end}}
        {
          "title": "{{$c.type}}",
          "value": "{{$c.message}}",
          "short": true
        }
        {{end}}
        ]
      }]
template.app-health-degraded: |
  email:
    subject: Application {{.app.metadata.name}} has degraded.
  message: |
    {{if eq .serviceType "slack"}}:exclamation:{{end}} Application {{.app.metadata.name}} has degraded.
    Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.
  slack:
    attachments: |-
      [{
        "title": "{{ .app.metadata.name}}",
        "title_link": "{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
        "color": "#f4c030",
        "fields": [
        {
          "title": "Sync Status",
          "value": "{{.app.status.sync.status}}",
          "short": true
        },
        {
          "title": "Repository",
          "value": "{{.app.spec.source.repoURL}}",
          "short": true
        }
        {{range $index, $c := .app.status.conditions}}
        {{if not $index}},{{end}}
        {{if $index}},{{end}}
        {
          "title": "{{$c.type}}",
          "value": "{{$c.message}}",
          "short": true
        }
        {{end}}
        ]
      }]
template.app-sync-failed: |
  email:
    subject: Failed to sync application {{.app.metadata.name}}.
  message: |
    {{if eq .serviceType "slack"}}:exclamation:{{end}}  The sync operation of application {{.app.metadata.name}} has failed at {{.app.status.operationState.finishedAt}} with the following error: {{.app.status.operationState.message}}
    Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true .
  slack:
    attachments: |-
      [{
        "title": "{{ .app.metadata.name}}",
        "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
        "color": "#E96D76",
        "fields": [
        {
          "title": "Sync Status",
          "value": "{{.app.status.sync.status}}",
          "short": true
        },
        {
          "title": "Repository",
          "value": "{{.app.spec.source.repoURL}}",
          "short": true
        }
        {{range $index, $c := .app.status.conditions}}
        {{if not $index}},{{end}}
        {{if $index}},{{end}}
        {
          "title": "{{$c.type}}",
          "value": "{{$c.message}}",
          "short": true
        }
        {{end}}
        ]
      }]
template.app-sync-running: |
  email:
    subject: Start syncing application {{.app.metadata.name}}.
  message: |
    The sync operation of application {{.app.metadata.name}} has started at {{.app.status.operationState.startedAt}}.
    Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true .
  slack:
    attachments: |-
      [{
        "title": "{{ .app.metadata.name}}",
        "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
        "color": "#0DADEA",
        "fields": [
        {
          "title": "Sync Status",
          "value": "{{.app.status.sync.status}}",
          "short": true
        },
        {
          "title": "Repository",
          "value": "{{.app.spec.source.repoURL}}",
          "short": true
        }
        {{range $index, $c := .app.status.conditions}}
        {{if not $index}},{{end}}
        {{if $index}},{{end}}
        {
          "title": "{{$c.type}}",
          "value": "{{$c.message}}",
          "short": true
        }
        {{end}}
        ]
      }]
template.app-sync-status-unknown: |
  email:
    subject: Application {{.app.metadata.name}} sync status is 'Unknown'
  message: |
    {{if eq .serviceType "slack"}}:exclamation:{{end}} Application {{.app.metadata.name}} sync is 'Unknown'.
    Application details: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}.
    {{if ne .serviceType "slack"}}
    {{range $c := .app.status.conditions}}
        * {{$c.message}}
    {{end}}
    {{end}}
  slack:
    attachments: |-
      [{
        "title": "{{ .app.metadata.name}}",
        "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
        "color": "#E96D76",
        "fields": [
        {
          "title": "Sync Status",
          "value": "{{.app.status.sync.status}}",
          "short": true
        },
        {
          "title": "Repository",
          "value": "{{.app.spec.source.repoURL}}",
          "short": true
        }
        {{range $index, $c := .app.status.conditions}}
        {{if not $index}},{{end}}
        {{if $index}},{{end}}
        {
          "title": "{{$c.type}}",
          "value": "{{$c.message}}",
          "short": true
        }
        {{end}}
        ]
      }]
template.app-sync-succeeded: |
  email:
    subject: Application {{.app.metadata.name}} has been successfully synced.
  message: |
    {{if eq .serviceType "slack"}}:white_check_mark:{{end}} Application {{.app.metadata.name}} has been successfully synced at {{.app.status.operationState.finishedAt}}.
    Sync operation details are available at: {{.context.argocdUrl}}/applications/{{.app.metadata.name}}?operation=true .
  slack:
    attachments: |-
      [{
        "title": "{{ .app.metadata.name}}",
        "title_link":"{{.context.argocdUrl}}/applications/{{.app.metadata.name}}",
        "color": "#18be52",
        "fields": [
        {
          "title": "Sync Status",
          "value": "{{.app.status.sync.status}}",
          "short": true
        },
        {
          "title": "Repository",
          "value": "{{.app.spec.source.repoURL}}",
          "short": true
        }
        {{range $index, $c := .app.status.conditions}}
        {{if not $index}},{{end}}
        {{if $index}},{{end}}
        {
          "title": "{{$c.type}}",
          "value": "{{$c.message}}",
          "short": true
        }
        {{end}}
        ]
      }]

{}

notifications.triggers

Условия отправки уведомлений.
Пример конфигурации:

trigger.on-deployed: |
  - description: Application is synced and healthy. Triggered once per commit.
    oncePer: app.status.sync.revision
    send:
    - app-deployed
    when: app.status.operationState.phase in ['Succeeded'] and app.status.health.status == 'Healthy'
trigger.on-health-degraded: |
  - description: Application has degraded
    send:
    - app-health-degraded
    when: app.status.health.status == 'Degraded'
trigger.on-sync-failed: |
  - description: Application syncing has failed
    send:
    - app-sync-failed
    when: app.status.operationState.phase in ['Error', 'Failed']
trigger.on-sync-running: |
  - description: Application is being synced
    send:
    - app-sync-running
    when: app.status.operationState.phase in ['Running']
trigger.on-sync-status-unknown: |
  - description: Application status is 'Unknown'
    send:
    - app-sync-status-unknown
    when: app.status.sync.status == 'Unknown'
trigger.on-sync-succeeded: |
  - description: Application syncing has succeeded
    send:
    - app-sync-succeeded
    when: app.status.operationState.phase in ['Succeeded']
defaultTriggers: |
  - on-sync-status-unknown

{}

notifications.networkPolicy.create

Включение создания NetworkPolicy

false

commitServer – настройки Commit Server#

Параметр

Описание

Значение по умолчанию

commitServer.enabled

Включение Commit Server

false

commitServer.name

Имя компонента Commit Server

commit-server

commitServer.runtimeClassName

Имя RuntimeClass для pod

""

commitServer.image.repository

Репозиторий контейнерного образа

'{{ .Values.global.image.registry }}/{{ .Values.global.image.repository }}/{{ .Values.global.dappVersion }}/dapp-argo-cd/argocd'

commitServer.image.tag

Тег образа контейнера

v3.4.5

commitServer.image.imagePullPolicy

Политика загрузки образа контейнера

""

commitServer.extraArgs

Дополнительные аргументы командной строки

[]

commitServer.extraEnv

Дополнительные переменные окружения для Commit Server.
Пример конфигурации:

- name: "MY_VAR"
  value: "value"

[]

commitServer.extraEnvFrom

Источники переменных окружения (Secret или ConfigMap) для pod.
Пример конфигурации:

- configMapRef:
    name: config-map-name
- secretRef:
    name: secret-name

[]

commitServer.extraVolumeMounts

Список дополнительных точек монтирования томов (VolumeMounts) в контейнере

[]

commitServer.extraVolumes

Дополнительные тома в pod Commit Server

[]

commitServer.metrics.enabled

Активация экспорта метрик

true

commitServer.metrics.service.type

Тип Service

ClusterIP

commitServer.metrics.service.clusterIP

IP-адрес ClusterIP для Service метрик

""

commitServer.metrics.service.annotations

Аннотации, добавляемые к создаваемым ресурсам для метрик

{}

commitServer.metrics.service.labels

Метки, добавляемые к создаваемым ресурсам для метрик

{}

commitServer.metrics.service.servicePort

Порт Service для экспорта метрик

8087

commitServer.metrics.service.portName

Имя порта метрик в Service

metrics

commitServer.service.annotations

Аннотации для ресурса Service

{}

commitServer.service.labels

Метки для ресурса Service

{}

commitServer.service.port

Сервисный порт Commit Server

8086

commitServer.service.portName

Имя порта Service Commit Server

server

commitServer.automountServiceAccountToken

Автоматическое монтирование токена сервисного аккаунта в pod

false

commitServer.serviceAccount.create

Создание ServiceAccount

true

commitServer.serviceAccount.name

Имя используемого ServiceAccount. Если не указано и create: true, имя генерируется автоматически

argocd-commit-server

commitServer.serviceAccount.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

commitServer.serviceAccount.labels

Метки, добавляемые к создаваемым ресурсам

{}

commitServer.serviceAccount.automountServiceAccountToken

Автоматическое монтирование токена в ServiceAccount

true

commitServer.deploymentAnnotations

Добавление аннотации в Deployment Commit Server

{}

commitServer.deploymentLabels

Добавление меток в Deployment Commit Server

{}

commitServer.podAnnotations

Добавление аннотации в pod Commit Server

{}

commitServer.podLabels

Добавление меток в pod Commit Server

{}

commitServer.resources

Запросы и ограничения ресурсов для контейнера.
Пример конфигурации:

limits:
  cpu: 100m
  memory: 128Mi
requests:
  cpu: 100m
  memory: 128Mi

{}

commitServer.dnsConfig

Пользовательская конфигурация DNS для pod

{}

commitServer.dnsPolicy

Политика разрешения DNS для pod

ClusterFirst

commitServer.containerSecurityContext.runAsNonRoot

Запуск от имени пользователя без административных полномочий

true

commitServer.containerSecurityContext.readOnlyRootFilesystem

Монтирование корневой файловой системы в режиме «только для чтения»

true

commitServer.containerSecurityContext.allowPrivilegeEscalation

Активация разрешения на эскалацию привилегий в контейнере

false

commitServer.containerSecurityContext.capabilities.drop

Список возможностей (capabilities), отзываемых у контейнера

- ALL

commitServer.containerSecurityContext.seccompProfile.type

Тип профиля Seccomp

RuntimeDefault

commitServer.readinessProbe.enabled

Включение проверки готовности для контейнера

true

commitServer.readinessProbe.httpPath

Путь HTTP-запроса для проверки готовности

/healthz

commitServer.readinessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой готовности

5

commitServer.readinessProbe.periodSeconds

Интервал в секундах между проверками готовности

10

commitServer.readinessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки готовности

1

commitServer.readinessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

commitServer.livenessProbe.enabled

Включение проверки работоспособности для контейнера

true

commitServer.livenessProbe.httpPath

Путь HTTP-запроса для проверки работоспособности

/healthz?full=true

commitServer.livenessProbe.initialDelaySeconds

Задержка в секундах перед первой проверкой работоспособности

30

commitServer.livenessProbe.periodSeconds

Интервал в секундах между проверками работоспособности

30

commitServer.livenessProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа проверки работоспособности

5

commitServer.livenessProbe.failureThreshold

Количество неудачных попыток до перевода контейнера в статус NotReady

3

commitServer.startupProbe.enabled

Включение проверки запуска для контейнера

false

commitServer.startupProbe.httpPath

Путь HTTP-запроса для проверки запуска

/healthz

commitServer.startupProbe.initialDelaySeconds

Задержка в секундах перед первой стартовой проверкой

10

commitServer.startupProbe.periodSeconds

Интервал в секундах между проверками запуска

10

commitServer.startupProbe.timeoutSeconds

Тайм-аут (в секундах) ожидания ответа при проверке запуска

1

commitServer.startupProbe.failureThreshold

Количество неудачных попыток проверки запуска

20

commitServer.terminationGracePeriodSeconds

Время, отведенное на корректное завершение работы pod

30

commitServer.nodeSelector

Селектор узлов для планирования pod

{}

commitServer.tolerations

Toleration для размещения pod на узлах с ограничениями (taints)

[]

commitServer.affinity

Настройки правила привязки (affinity и anti-affinity) pod к узлам

{}

commitServer.topologySpreadConstraints

Ограничения топологии для равномерного распределения pod по зонам доступности и узлам.
Пример конфигурации:

- maxSkew: 1
  topologyKey: topology.kubernetes.io/zone
  whenUnsatisfiable: DoNotSchedule

[]

commitServer.deploymentStrategy

Стратегия Deployment для Commit Server.
Пример конфигурации:

type: RollingUpdate
rollingUpdate:
  maxSurge: 25%
  maxUnavailable: 25%

{}

commitServer.priorityClassName

Имя PriorityClass для pod

""

commitServer.networkPolicy.create

Включение создания NetworkPolicy

false

commitServer.vpa.enabled

Включение VerticalPodAutoscaler

false

commitServer.vpa.labels

Метки, добавляемые к создаваемым ресурсам

{}

commitServer.vpa.annotations

Аннотации, добавляемые к создаваемым ресурсам

{}

commitServer.vpa.updateMode

Режим работы VPA для обновления ресурсов контейнера

Initial

commitServer.vpa.containerPolicy

Правила расчета рекомендуемых ресурсов для контейнера.
Пример конфигурации:

controlledResources: ["cpu", "memory"]
minAllowed:
  cpu: 250m
  memory: 256Mi
maxAllowed:
  cpu: 1
  memory: 1Gi

{}