<a id="installation-with-helm"></a>

# Установка с помощью Helm

Angie Ingress Controller (ANIC) разворачивается в
кластере Kubernetes с помощью Helm.

Программные требования:

- Kubernetes 1.22+
- Helm 3.0+

Поддерживаемые дистрибутивы:

| Название     | Версии          | Архитектуры   |
|--------------|-----------------|---------------|
| Alpine Linux | `3.21`          | x86_64, ARM64 |
| Debian       | `11` "Bullseye" | x86_64, ARM64 |
| ALT Linux    | `10`            | x86_64, ARM64 |

## Получение доступа к образу ANIC

1. Авторизуйтесь в Docker Registry, чтобы получить доступ к образу ANIC:
   ```console
   $ docker login -u=<login> -p=<password> anic.docker.angie.software
   ```

   После успешной авторизации информация о доступе будет сохранена в файле `~/.docker/config.json`.
2. Создайте секрет для Kubernetes, используя файл Docker-конфигурации:
   ```console
   $ kubectl create secret generic regcred \
         --from-file=.dockerconfigjson=$HOME/.docker/config.json \
         --type=kubernetes.io/dockerconfigjson
   ```

   Секрет `regcred` будет использоваться для доступа к приватным образам в Kubernetes.

## Cкачаивание образа ANIC

Cкачайте образ ANIC и перенесите его в свой личный репозиторий, для этого:

1. Загрузите образ ANIC:
   ```console
   $ docker pull anic.docker.angie.software/anic:latest
   ```
2. Переименуйте образ:
   ```console
   $ docker tag anic.docker.angie.software/anic:latest <ваш_репозиторий>/<образ_anic>
   ```
3. Отправьте переименованный образ в свой репозиторий:
   ```console
   $ docker push <ваш_репозиторий>/<образ_anic>
   ```
4. В файле `values.yaml` обновите поле `controller.image.repository` соответственно.

## Подключение лицензии

Подключите лицензию для ANIC, следуя [инструкции](https://angie.software//anic/docs/installation/licensing.md#licensing).

<a id="pulling-the-chart"></a>

## Получение и настройка Helm-чарта

1. Склонируйте Helm-чарт из [репозитория Angie Software](https://git.angie.software/web-server/anic-helm-charts/).

   Доступ к репозиторию можно получить, обратившись на [info@wbsrv.ru](mailto:info@wbsrv.ru).
   ```console
   $ git clone https://git.angie.software/web-server/anic-helm-charts.git
   ```
2. Отредактируйте файл `values.yaml`, указав имя секрета, созданного
   для доступа к образам:
   ```yaml
   imagePullSecretName: "regcred"
   ```
3. Соберите и установите Helm-чарт:
   ```console
   $ helm install <имя_релиза> <путь_до_чарта>
   ```

   Helm cгенерирует манифесты Kubernetes на основе шаблонов (`templates/`)
   и значений (`values.yaml`), а затем установит их в кластере.

   #### NOTE
   По умолчанию для ANIC требуется несколько CRD (определений пользовательских
   ресурсов), установленных в кластере.
   Helm  устанавливает их автоматически.
   Если не установить CRD, поды ANIC не будут готовы (`Ready`).
   Если вы не используете пользовательские ресурсы, для которых требуются
   CRD (что соответствует параметру `controller.enableCustomResources`,
   установленному как `false`), установку CRD можно пропустить, указав
   в команде `helm install` параметр `--skip-crds`.

<a id="upgrading-the-crds"></a>

## Обновление CRD

Чтобы обновить CRD, скачайте исходные файлы Helm-чарта,
а затем выполните команду:

```console
$ kubectl apply -f crds/
```

#### NOTE
Может появиться следующее предупреждение, но его можно проигнорировать:

```none
Warning: kubectl apply should be used on resource created by either
kubectl create --save-config or kubectl apply
```

<a id="uninstalling-the-crds"></a>

## Удаление CRD

Чтобы удалить CRD, скачайте исходные файлы Helm-чарта,
а затем выполните команду:

```console
$ kubectl delete -f crds/
```

#### NOTE
Эта команда удалит все соответствующие CRD в вашем
кластере во всех пространствах имен. Убедитесь, что в кластере нет
пользовательских ресурсов, которые вы хотите сохранить, и не запущены другие
экземпляры ANIC.

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

Ниже перечислены настраиваемые параметры Helm-чарта Ingress
Controller и их значения по умолчанию.

### `controller.name`

Имя daemonset или deployment ANIC.

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

### `controller.kind`

Тип установки ANIC - deployment или daemonset.

По умолчанию: deployment

### `controller.annotations`

Позволяет устанавливать `аннотации` для deployment или daemonset.

По умолчанию: {}

### `controller.angiePro`

Развертывает ANIC для Angie PRO.

По умолчанию: false

### `controller.angieDashboard.enable`

Включает Angie Dashboard (status endpoint для получения информации о состоянии Angie).
Соответствует аргументу командной строки `-angie-dashboard`.

По умолчанию: false

### `controller.angieDashboard.port`

Задает порт для Angie Dashboard.
Соответствует аргументу командной строки `-angie-dashboard-port`.

По умолчанию: 8082

### `controller.angieDashboard.allowCidrs`

Добавляет блоки IP/CIDR в список разрешенных для Angie Dashboard.
Соответствует аргументу командной строки `-angie-dashboard-allow-cidrs`.
Несколько IP или CIDR разделяются запятыми.

По умолчанию: 127.0.0.1,::1

### `controller.angieStatusPrometheus.enable`

Включает выдачу [статистики Angie в формате Prometheus](https://angie.software/configuration/modules/http_prometheus/).
Соответствует аргументу командной строки `-angie-status-prometheus`.

По умолчанию: true

### `controller.angieStatusPrometheus.port`

Задает порт, на котором доступна [статистика Angie в формате Prometheus](https://angie.software/configuration/modules/http_prometheus/).
Формат: `[1024 - 65535]`.
Соответствует аргументу командной строки `-angie-status-prometheus-port`.

По умолчанию: 8083

### `controller.angieStatusPrometheus.allowCidrs`

Добавляет блоки IP/CIDR в список разрешений для
[статистики Angie в формате Prometheus](https://angie.software/configuration/modules/http_prometheus/).
Соответствует аргументу командной строки `-angie-status-prometheus-allow-cidrs`.
Несколько IP или CIDR разделяются запятыми.

По умолчанию: 127.0.0.1,::1

### `controller.angieStatusPrometheus.path`

Позволяет менять путь для публикации [статистики Angie в формате Prometheus](https://angie.software/configuration/modules/http_prometheus/).
Соответствует аргументу командной строки `-angie-status-prometheus-path`.

По умолчанию: /p8s

### `controller.angieStatusPrometheus.service.create`

Создает сервис ClusterIP для предоставления метрик веб-сервера Angie.

По умолчанию: false

### `controller.angieStatusPrometheus.service.labels`

Задает лейблы для сервиса ClusterIP.

По умолчанию: service: "anic-webserver-metrics"

### `controller.angieStatusPrometheus.serviceMonitor.create`

Создает ServiceMonitor для метрик веб-сервера Angie.

По умолчанию: false

### `controller.angieStatusPrometheus.serviceMonitor.labels`

Задает лейблы для сервиса ServiceMonitor.

По умолчанию: Нет

### `controller.reloadTimeout`

Время ожидания в миллисекундах, в течение которого ANIC
будет ожидать успешной перезагрузки Angie после изменения или при
начальном запуске.

По умолчанию: 60000

### `controller.hostNetwork`

Позволяет подам ANIC использовать сетевое пространство
имен хоста.

По умолчанию: false

### `controller.dnsPolicy`

Политика DNS для подов ANIC.

По умолчанию: ClusterFirst

### `controller.debug`

Включает отладку для Angie. Требуется задать значение `error-log-level:
debug` в ConfigMap через `controller.config.entries`.

По умолчанию: false

### `controller.logLevel`

Уровень ведения журнала ANIC.

По умолчанию: 1

### `controller.image.digest`

Дайджест образа ANIC.

По умолчанию: Нет

### `controller.image.repository`

Репозиторий образов ANIC.

По умолчанию: myregistry.host.ru/angie-ingress

### `controller.image.tag`

Тег образа ANIC.

По умолчанию:

### `controller.image.pullPolicy`

Политика скачивания образа ANIC.

По умолчанию: IfNotPresent

### `controller.lifecycle`

Жизненный цикл подов ANIC.

По умолчанию: {}

### `controller.customConfigMap`

Имя пользовательской ConfigMap, используемой ANIC. Если
имя задано, то конфигурация по умолчанию игнорируется.

По умолчанию: ""

### `controller.config.name`

Имя ConfigMap, используемой ANIC.

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

### `controller.config.annotations`

Аннотации к ConfigMap в ANIC.

По умолчанию: {}

### `controller.config.entries`

Записи в ConfigMap для настройки конфигурации Angie.

По умолчанию: {}

### `controller.customPorts`

Список пользовательских портов, которые должны быть доступны в поде
ANIC. Следует обычному синтаксису yaml Kubernetes для
контейнерных портов.

По умолчанию: []

### `controller.defaultTLS.cert`

Сертификат TLS в кодировке `Base64` для сервера HTTPS по умолчанию.

#### NOTE
Рекомендуется указать свой собственный сертификат.  Альтернативное
решение: полный пропуск секрета сервера по умолчанию приведет к тому,
что Angie будет по умолчанию отклонять TLS-подключения к серверу.

По умолчанию: Нет

### `controller.defaultTLS.key`

Ключ TLS в кодировке `Base64` для сервера HTTPS по умолчанию.

#### NOTE
Рекомендуется указать свой собственный ключ. Альтернативное решение:
полный пропуск секрета сервера по умолчанию приведет к тому, что
Angie будет по умолчанию отклонять TLS-подключения к серверу.

По умолчанию: Нет

### `controller.defaultTLS.secret`

Секрет с сертификатом TLS и ключом для сервера HTTPS по умолчанию.
Значение должно соответствовать следующему формату: `<пространство имен>/<имя>`.
Используется в качестве альтернативы указанию сертификата
и ключа с помощью параметров `controller.defaultTLS.cert` и
`controller.defaultTLS.key`.

#### NOTE
Альтернативное решение: полный пропуск секрета сервера по умолчанию
приведет к тому, что Angie будет по умолчанию отклонять TLS-подключения
к серверу.

По умолчанию: Нет

### `controller.wildcardTLS.cert`

Сертификат TLS в кодировке `Base64` для каждого узла Ingress или
VirtualServer, у которого включен TLS, но не указан секрет. Если
параметр не задан, Angie прервет любую попытку установить TLS-соединение
для таких узлов Ingress или VirtualServer.

По умолчанию: Нет

### `controller.wildcardTLS.key`

Ключ TLS в кодировке `Base64` для каждого узла Ingress или VirtualServer,
у которого включен TLS, но не указан секрет. Если параметр не задан,
Angie прервет любую попытку установить TLS-соединение для таких узлов
Ingress или VirtualServer.

По умолчанию: Нет

### `controller.wildcardTLS.secret`

Секрет с сертификатом TLS и ключом для каждого узла Ingress или
VirtualServer, у которого включен TLS, но не указан секрет. Значение
должно соответствовать следующему формату: `<пространство имен>/<имя>`.
Используется в качестве альтернативы указанию сертификата и ключа с
помощью параметров `controller.wildcardTLS.cert` и
`controller.wildcardTLS.key`.

По умолчанию: Нет

### `controller.nodeSelector`

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

По умолчанию: {}

### `controller.terminationGracePeriodSeconds`

Период плавного завершения работы пода ANIC.

По умолчанию: 30

### `controller.tolerations`

Допуски подов ANIC (tolerations).

По умолчанию: []

### `controller.affinity`

Привязка подов ANIC (affinity).

По умолчанию: {}

### `controller.topologySpreadConstraints`

Ограничения на распространение топологии подов ANIC.

По умолчанию: {}

### `controller.env`

Дополнительные переменные окружения, которые должны быть установлены на
подах ANIC.

По умолчанию: []

### `controller.volumes`

Тома подов ANIC.

По умолчанию: []

### `controller.volumeMounts`

Точки подключения томов подов ANIC.

По умолчанию: []

### `controller.initContainers`

Значение initContainers для подов ANIC.

По умолчанию: []

### `controller.extraContainers`

Дополнительные контейнеры (например, сайдкар) для подов Ingress
Controller.

По умолчанию: []

### `controller.resources`

Ресурсы подов ANIC.

По умолчанию: requests: cpu=100m,memory=128Mi

### `controller.replicaCount`

Количество реплик deployment ANIC.

По умолчанию: 1

### `controller.ingressClass`

Класс ANIC. Должен быть развернут ресурс IngressClass с
именем, тождественным этому классу. В противном случае ANIC
не запустится. ANIC обрабатывает только те
ресурсы, которые принадлежат его классу, т. е. их ресурс поля
"ingressClassName" совпадает с классом. ANIC обрабатывает
все ресурсы VirtualServer, VirtualServerRoute и TransportServer, которые
не имеют поля "ingressClassName", во всех версиях Kubernetes.

По умолчанию: angie

### `controller.setAsDefaultIngress`

Новым Ingress без указанного поля "ingressClassName" будет присвоен
класс, указанный в controller.ingressClass.

По умолчанию: false

### `controller.watchNamespace`

Разделенный запятыми список пространств имен, за ресурсами которых
должен следить ANIC. По умолчанию ANIC
отслеживает все пространства имен. Взаимоисключающие с
`controller.watchNamespaceLabel`.  Обратите внимание, что при настройке
нескольких пространств имен с использованием опции Helm cli `--set`
строка должна быть заключена в двойные кавычки, а запятые экранированы с
помощью обратной косой черты - например, `--set
controller.watchNamespace="default\,anic"`.

По умолчанию: ""

### `controller.watchNamespaceLabel`

Настраивает в ANIC просмотр только пространств имен с
меткой foo=bar. По умолчанию ANIC отслеживает все
пространства имен.  Взаимоисключающая с `controller.watchNamespace`
настройка.

По умолчанию: ""

### `controller.watchSecretNamespace`

Разделенный запятыми список пространств имен, за которыми Ingress
Controller должен следить в поисках ресурсов типа Secret. Если этот
параметр не настроен, ANIC отслеживает одни и те же
пространства имен в поисках всех ресурсов. См. также
`controller.watchNamespace` и `controller.watchNamespaceLabel`. Обратите
внимание, что при настройке нескольких пространств имен с использованием
опции Helm cli `--set` строка должна быть заключена в двойные кавычки, а
запятые экранированы с помощью обратной косой черты - например, `--set
controller.watchSecretNamespace="default\,angie-ingress"`.

По умолчанию: ""

### `controller.enableCustomResources`

Включает пользовательские ресурсы.

По умолчанию: true

### `controller.enableTLSPassthrough`

Включает передачу данных по протоколу TLS на порту 443. Требуется
controller.enableCustomResources.

По умолчанию: false

### `controller.enableCertManager`

Включает автоматическое управление сертификатами x509 для ресурсов
виртуального сервера с помощью cert-manager (cert-manager.io). Требуется
`controller.enableCustomResources`.

По умолчанию: false

### `controller.enableExternalDNS`

Включает интеграцию с ExternalDNS для настройки общедоступных записей
DNS у ресурсов VirtualServer с использованием [ExternalDNS](https://github.com/kubernetes-sigs/external-dns). Требуется
controller.enableCustomResources.

По умолчанию: false

### `controller.globalConfiguration.create`

Создает пользовательский ресурс GlobalConfiguration. Требуется
controller.enableCustomResources.

По умолчанию: false

### `controller.globalConfiguration.spec`

Спецификация GlobalConfiguration для определения параметров глобальной
конфигурации ANIC.

По умолчанию: {}

### `controller.enableSnippets`

Включает пользовательские фрагменты конфигурации Angie в ресурсах
Ingress, VirtualServer, VirtualServerRoute и TransportServer.

По умолчанию: false

### `controller.healthStatus`

Добавляет местоположение "/angie-health" на сервер по умолчанию.
Местоположение отвечает кодом статуса 200 на любой запрос. Это полезно
для внешней проверки работоспособности ANIC.

По умолчанию: false

### `controller.healthStatusURI`

Задает URI местоположения состояния работоспособности на сервере по
умолчанию. Требуется `controller.HealthStatus`.

По умолчанию: "/angie-health"

### `controller.angieStatus.enable`

Включает в Angie API.

По умолчанию: true

### `controller.angieStatus.port`

Задает порт, на котором доступен Angie API.

По умолчанию: 8080

### `controller.angieStatus.allowCidrs`

Добавляет блоки IP или CIDR в список разрешенных для Angie API.
Несколько IP или CIDR разделяются запятыми.

По умолчанию: 127.0.0.1,::1

### `controller.priorityClassName`

Класс приоритета подов ANIC.

По умолчанию: Нет

### `controller.service.create`

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

По умолчанию: true

### `controller.service.type`

Тип сервиса, который необходимо создать для ANIC.

По умолчанию: LoadBalancer

### `controller.service.externalTrafficPolicy`

Внешняя политика трафика сервиса. Значение Local сохраняет исходный
IP-адрес клиента.

По умолчанию: Local

### `controller.service.annotations`

Аннотации сервиса ANIC.

По умолчанию: {}

### `controller.service.extraLabels`

Экстра-метки сервиса.

По умолчанию: {}

### `controller.service.loadBalancerIP`

Статический IP-адрес для балансировщика нагрузки. Для
`controller.service.type` должно быть установлено значение
`LoadBalancer`.  Поставщик облачных услуг должен поддерживать эту
функцию.

По умолчанию: ""

### `controller.service.externalIPs`

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

По умолчанию: []

### `controller.service.loadBalancerSourceRanges`

Диапазоны IP-адресов (CIDR), которым разрешен доступ к балансировщику
нагрузки. Для `controller.service.type` должно быть установлено значение
`LoadBalancer`. Поставщик облачных услуг должен поддерживать эту
функцию.

По умолчанию: []

### `controller.service.name`

Имя сервиса.

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

### `controller.service.customPorts`

Список пользовательских портов, которые будут доступны через сервис
ANIC. Следует обычному синтаксису yaml Kubernetes для
портов сервиса.

По умолчанию: []

### `controller.service.httpPort.enable`

Включает HTTP-порт для сервиса ANIC.

По умолчанию: true

### `controller.service.httpPort.port`

HTTP-порт сервиса ANIC.

По умолчанию: 80

### `controller.service.httpPort.nodePort`

Пользовательский NodePort для HTTP-порта. Для `controller.service.type`
должно быть установлено значение `NodePort`.

По умолчанию: ""

### `controller.service.httpPort.targetPort`

Целевое значение HTTP-порта сервиса ANIC.

По умолчанию: 80

### `controller.service.httpsPort.enable`

Включает порт HTTPS для сервиса ANIC.

По умолчанию: true

### `controller.service.httpsPort.port`

HTTPS-порт сервиса ANIC.

По умолчанию: 443

### `controller.service.httpsPort.nodePort`

Пользовательский NodePort для HTTPS-порта. Для `controller.service.type`
должно быть установлено значение `NodePort`.

По умолчанию: ""

### `controller.service.httpsPort.targetPort`

Целевой порт HTTPS-порта сервиса ANIC.

443

### `controller.serviceAccount.annotations`

Аннотации учетной записи сервиса ANIC.

По умолчанию: {}

### `controller.serviceAccount.name`

Имя учетной записи сервиса подов ANIC. Используется для
RBAC.

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

### `controller.serviceAccount.imagePullSecretName`

Имя секретного файла, содержащего учетные данные реестра Docker. Секрет
должен находиться в том же пространстве имен, что и релиз Helm.

По умолчанию: ""

### `controller.reportIngressStatus.enable`

Добавляет в поле адреса в статусе ресурсов Ingress внешний адрес Ingress
Controller. Нужно также указать источник внешнего адреса через внешнюю
службу через `controller.reportIngressStatus.ExternalService`, либо
через `controller.reportIngressStatus.ingressLink,` либо через запись
`external-status-address` в ConfigMap через `controller.config.entries`.

#### NOTE
Значение `controller.config.entries.external-status-address` имеет
приоритет над остальными.

По умолчанию: true

### `controller.reportIngressStatus.externalService`

Указывает имя сервиса с типом LoadBalancer, через который Ingress
Controller будет доступен извне. Внешний адрес сервиса используется для
отчетов о состоянии ресурсов Ingress, VirtualServer и
VirtualServerRoute.  Значение `controller.reportIngressStatus.enable`
должно быть задано как `true`. Значение по умолчанию создается
автоматически и включается, когда `controller.service.create` имеет
значение `true`, а `controller.service.type` - значение `LoadBalancer`.

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

### `controller.reportIngressStatus.ingressLink`

Указывает имя ресурса IngressLink, который предоставляет доступ к подам
ANIC через систему BIG-IP. IP-адрес системы BIG-IP
используется для отчетов о состоянии ресурсов Ingress, VirtualServer и
VirtualServerRoute. Значение `controller.reportIngressStatus.enable`
должно быть задано как `true`.

По умолчанию: ""

### `controller.reportIngressStatus.enableLeaderElection`

Включает выбор лидера, чтобы избежать ситуации, когда несколько реплик
контроллера сообщают о состоянии ресурсов Ingress. Значение
`controller.reportIngressStatus.enable` должно быть задано как `true`.

По умолчанию: `true`

### `controller.reportIngressStatus.leaderElectionLockName`

Указывает имя ConfigMap в том же пространстве имен, что и контроллер,
которое используется для блокировки выбора лидера. Значение
controller.reportIngressStatus.enableLeaderElection должно быть задано
как `true`.

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

### `controller.reportIngressStatus.annotations`

Аннотации к конфигурационной карте выборов лидера.

По умолчанию: {}

### `controller.pod.annotations`

Аннотации пода ANIC.

По умолчанию: {}

### `controller.pod.extraLabels`

Дополнительные экстра-метки для пода ANIC.

По умолчанию: {}

### `controller.readyStatus.enable`

Включает конечную точку готовности `"/angie-ready"`. Конечная точка
возвращает код успешного завершения, если Angie загрузил всю
конфигурацию после запуска. Этим также настраивается проверка готовности
для подов ANIC, которая использует конечную точку
готовности.

По умолчанию: `true`

### `controller.readyStatus.port`

HTTP-порт для конечной точки готовности.

По умолчанию: `8081`

### `controller.readyStatus.initialDelaySeconds`

Число секунд с запуска пода ANIC до инициирования проверки
готовности.

По умолчанию: `0`

### `controller.enableLatencyMetrics`

Включает сбор метрик задержки для апстримов. Требуется
`prometheus.create`.

По умолчанию: `false`

### `controller.minReadySeconds`

Задает минимальное количество секунд, в течение которых вновь созданный
под должен прийти в готовое состояние без сбоя какого-либо из
контейнеров, чтобы считаться доступным; документацию см. [здесь](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#min-ready-seconds).

По умолчанию: `0`

### `controller.autoscaling.enabled`

Включает HorizontalPodAutoscaling.

По умолчанию: `false`

### `controller.autoscaling.annotations`

Аннотации HorizontalPodAutoscaler для ANIC.

По умолчанию: {}

### `controller.autoscaling.minReplicas`

Минимальное число реплик для HPA.

По умолчанию: `1`

### `controller.autoscaling.maxReplicas`

Максимальное число реплик для HPA.

По умолчанию: `3`

### `controller.autoscaling.targetCPUUtilizationPercentage`

Целевой процент загрузки ЦП.

По умолчанию: `50`

### `controller.autoscaling.targetMemoryUtilizationPercentage`

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

По умолчанию: `50`

### `controller.podDisruptionBudget.enabled`

Включает PodDisruptionBudget.

По умолчанию: `false`

### `controller.podDisruptionBudget.annotations`

Аннотации к бюджету сбоев пода ANIC.

По умолчанию: {}

### `controller.podDisruptionBudget.minAvailable`

Количество подов ANIC, которые должны быть доступны.
Взаимоисключающая с `maxUnavailable`` настройка.

По умолчанию: `0`

### `controller.podDisruptionBudget.maxUnavailable`

Количество подов ANIC, которые могут быть недоступны.
Взаимоисключающая с `minAvailable` настройка.

По умолчанию: 0

### `controller.strategy`

Задает стратегию замены старых подов новыми. Документация по [стратегии
обновления развертывания](https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#strategy)
и [стратегии обновления daemonset](https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/#daemonset-update-strategy)

По умолчанию: {}

### `controller.disableIPV6`

В явной форме отключает прослушиватели IPV6 для узлов, которые не
поддерживают стек IPV6.

По умолчанию: `false`

### `controller.readOnlyRootFilesystem`

Настраивает корневую файловую систему как доступную только для чтения и
добавляет тома для временных данных.

По умолчанию: `false`

### `rbac.create`

Настраивает RBAC.

По умолчанию: `true`

### `prometheus.create`

Публикует метрики ANIC в формате Prometheus.

По умолчанию: `true`

### `prometheus.port`

Настраивает порт для получения метрик.

По умолчанию: `9113`

### `prometheus.scheme`

Настраивает схему HTTP, используемую для подключений к конечной точке
Prometheus.

По умолчанию: `http`

### `prometheus.secret`

Пространство имен или имя TLS-секрета Kubernetes. Если секрет указан, он
используется для защиты конечной точки Prometheus с помощью
TLS-соединений.

По умолчанию: ""

### `prometheus.service.create`

Создает сервис ClusterIP для метрик ANIC.

По умолчанию: `false`

### `prometheus.service.labels`

Задает лейблы для сервиса ClusterIP.

По умолчанию: service: "anic-prometheus-service"

### `prometheus.serviceMonitor.create`

Создает ServiceMonitor для метрик ANIC.

По умолчанию: `false`

### `prometheus.serviceMonitor.labels`

Задает лейблы для сервиса ServiceMonitor.

По умолчанию: Нет
