Стадия жизненного цикла модуля: General Availability
У модуля есть требования для установки
Слежение за всеми изменениями во всех подключенных ресурсах: смонтированных как volume или используемых в переменных окружения
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
annotations:
pod-reloader.deckhouse.io/auto: "true"
spec:
template:
spec:
containers:
- name: nginx
env:
- name: SECRET_WORD
valueFrom:
secretKeyRef:
name: nginx-secret-value
key: extra
volumeMounts:
- name: pages
mountPath: "/usr/share/nginx/pages"
volumes:
- name: pages
configMap:
name: nginx-pages
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: nginx-secret-value
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-pagesСлежение за изменениями только в конкретных ресурсах
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
annotations:
pod-reloader.deckhouse.io/search: "true"
spec:
template:
spec:
containers:
- name: nginx
env:
- name: SECRET_WORD
valueFrom:
secretKeyRef:
name: nginx-secret-value
key: extra
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: nginx-secret-value
annotations:
pod-reloader.deckhouse.io/match: "true"Слежение за изменениями в ресурсах из списка
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
annotations:
pod-reloader.deckhouse.io/configmap-reload: "nginx-config,nginx-pages"
spec:
template:
spec:
containers:
- name: nginx
volumeMounts:
- name: pages
mountPath: "/usr/share/nginx/pages"
- name: config
mountPath: "/etc/nginx/templates"
volumes:
- name: pages
configMap:
name: nginx-pages
- name: config
configMap:
name: nginx-config
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-pages
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-configПерезапуск только при изменении Secret’ов (игнорируя ConfigMap’ы)
Используйте secret.pod-reloader.deckhouse.io/auto: "true" вместо общей аннотации pod-reloader.deckhouse.io/auto, если нагрузка должна перезапускаться только при изменении связанного Secret, но не ConfigMap. Аналогично, configmap.pod-reloader.deckhouse.io/auto: "true" реагирует только на изменения ConfigMap.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
labels:
app: nginx
annotations:
secret.pod-reloader.deckhouse.io/auto: "true"
spec:
template:
spec:
containers:
- name: nginx
env:
- name: SECRET_WORD
valueFrom:
secretKeyRef:
name: nginx-secret-value
key: extra
volumeMounts:
- name: pages
mountPath: "/usr/share/nginx/pages"
volumes:
- name: pages
configMap:
name: nginx-pages
---
apiVersion: v1
kind: Secret
type: Opaque
metadata:
name: nginx-secret-value
---
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-pagesПауза rollout при пакетном обновлении конфигурации
Используйте аннотацию pod-reloader.deckhouse.io/pause-period, чтобы избежать многократных перезапусков при одновременном изменении нескольких ConfigMap или Secret. Rollout произойдёт один раз — после истечения указанного периода ожидания.
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
annotations:
pod-reloader.deckhouse.io/auto: "true"
pod-reloader.deckhouse.io/pause-period: "30s"
spec:
template:
spec:
containers:
- name: nginx
envFrom:
- configMapRef:
name: nginx-config
- secretRef:
name: nginx-secret