Доступно в редакциях:  Open/CE, Core, BE, SE, SE+, Ultimate/EE

Стадия жизненного цикла модуля: Общедоступная версия

У модуля есть требования для установки

Модуль создан на основе Reloader. Он предоставляет возможность автоматически произвести rollout в случае изменения ConfigMap или Secret. Для управления используются аннотации. Модуль запускается на системных узлах.

У Reloader отсутствует отказоустойчивость.

В этом документе описаны основные аннотации. Вы можете найти больше примеров в разделе Примеры документации.

Аннотация Ресурс Описание Примеры значений
pod-reloader.deckhouse.io/auto Deployment, DaemonSet, StatefulSet При изменениях в связанных (примонтированных или использованных как переменные окружения) ConfigMap или Secret произойдет перезапуск подов этого контроллера "true", "false"
secret.pod-reloader.deckhouse.io/auto Deployment, DaemonSet, StatefulSet При изменениях только в связанных Secret’ах произойдёт перезапуск подов этого контроллера "true", "false"
configmap.pod-reloader.deckhouse.io/auto Deployment, DaemonSet, StatefulSet При изменениях только в связанных ConfigMap’ах произойдёт перезапуск подов этого контроллера "true", "false"
pod-reloader.deckhouse.io/search Deployment, DaemonSet, StatefulSet При наличии этой аннотации перезапуск будет производиться исключительно при изменении ConfigMap’ов или Secret’ов с аннотацией pod-reloader.deckhouse.io/match: "true" "true", "false"
pod-reloader.deckhouse.io/configmap-reload Deployment, DaemonSet, StatefulSet Указывание списка ConfigMap, от которых зависит контроллер "some-cm", "some-cm1,some-cm2"
pod-reloader.deckhouse.io/secret-reload Deployment, DaemonSet, StatefulSet Указывание списка секретов, от которых зависит контроллер "some-secret", "some-secret1,some-secret2"
pod-reloader.deckhouse.io/ignore Secret, ConfigMap При изменении ConfigMap’ов или Secret’ов с этой аннотацией перезапуск подов происходить не будет "true", "false"
pod-reloader.deckhouse.io/match Secret, ConfigMap Аннотация, по которой из связанных ресурсов выбираются те, изменения которых отслеживаются "true", "false"
pod-reloader.deckhouse.io/pause-period Deployment Приостанавливает rollout на заданное время при пакетном обновлении нескольких ConfigMap или Secret одновременно 30s, 5m
pod-reloader.deckhouse.io/rollout-strategy Rollout Определяет способ обновления ресурса Rollout Argo Rollouts: restart устанавливает spec.restartAt (перезапуск подов без нового выката), rollout выполняет полный выкат "restart", "rollout"

Аннотация pod-reloader.deckhouse.io/search не может быть использована вместе с pod-reloader.deckhouse.io/auto: "true", так как Reloader будет игнорировать pod-reloader.deckhouse.io/search и pod-reloader.deckhouse.io/match. Для корректной работы установите аннотации pod-reloader.deckhouse.io/auto значение "false" или удалите ее.

Аннотации pod-reloader.deckhouse.io/configmap-reload и pod-reloader.deckhouse.io/secret-reload не могут быть использованы вместе с pod-reloader.deckhouse.io/auto: "true", так как Reloader будет игнорировать pod-reloader.deckhouse.io/configmap-reload и pod-reloader.deckhouse.io/secret-reload. Для корректной работы установите аннотации pod-reloader.deckhouse.io/auto значение "false" или удалите ее.

Поддержка Argo Rollouts

Модуль также может перезапускать ресурс Rollout Argo Rollouts. По умолчанию поддержка отключена, включить ее можно параметром enableArgoRollouts:

apiVersion: deckhouse.io/v1alpha1
kind: ModuleConfig
metadata:
  name: pod-reloader
spec:
  enabled: true
  version: 1
  settings:
    enableArgoRollouts: true

Перед включением параметра в кластере должен быть установлен Argo Rollouts (должен существовать CRD rollouts.argoproj.io), иначе ресурсы Rollout отслеживаться не будут.

После включения ресурс Rollout реагирует на те же аннотации, что и Deployment (pod-reloader.deckhouse.io/auto, pod-reloader.deckhouse.io/search, pod-reloader.deckhouse.io/configmap-reload и другие).

Если аннотация pod-reloader.deckhouse.io/rollout-strategy не задана, используется стратегия rollout.