33 lines
1.1 KiB
YAML
33 lines
1.1 KiB
YAML
apiVersion: kyverno.io/v1
|
|
kind: ClusterPolicy
|
|
metadata:
|
|
name: add-wait-for-db
|
|
annotations:
|
|
policies.kyverno.io/title: "Добавление init-контейнера для ожидания PostgreSQL"
|
|
policies.kyverno.io/category: Governance
|
|
policies.kyverno.io/severity: low
|
|
policies.kyverno.io/subject: Deployment,StatefulSet,DaemonSet
|
|
policies.kyverno.io/description: >-
|
|
1. По условию добавляет init-контейнер для ожидания PostgreSQL
|
|
spec:
|
|
rules:
|
|
- name: add-wait-for-db
|
|
match:
|
|
resources:
|
|
kinds:
|
|
- Pod
|
|
preconditions:
|
|
any:
|
|
- key: "{{ request.object.metadata.annotations.\"init.company.com/wait-for-db\" }}"
|
|
operator: Equals
|
|
value: "true"
|
|
mutate:
|
|
patchStrategicMerge:
|
|
spec:
|
|
initContainers:
|
|
- name: wait-for-db
|
|
image: registry.company.com/busybox:1.36
|
|
command:
|
|
- sh
|
|
- -c
|
|
- until nc -z postgres-service 5432; do echo "Ожидаем PostgreSQL..."; sleep 2; done |