Доступно в редакциях: 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.