init
This commit is contained in:
@@ -43,10 +43,10 @@ spec:
|
|||||||
any:
|
any:
|
||||||
- key: "{{ element.image }}"
|
- key: "{{ element.image }}"
|
||||||
operator: Contains
|
operator: Contains
|
||||||
value: "openjdk"
|
value: "openjdk-v1"
|
||||||
- key: "{{ element.image }}"
|
- key: "{{ element.image }}"
|
||||||
operator: Contains
|
operator: Contains
|
||||||
value: "eclipse-temurin"
|
value: "eclipse-v1"
|
||||||
patchStrategicMerge:
|
patchStrategicMerge:
|
||||||
spec:
|
spec:
|
||||||
containers:
|
containers:
|
||||||
|
|||||||
@@ -1,5 +1,15 @@
|
|||||||
# Урок 3.3 — Продвинутые техники мутации и переменные
|
# Урок 3.3 — Продвинутые техники мутации и переменные
|
||||||
|
|
||||||
|
## Источники переменных
|
||||||
|
|
||||||
|
Kyverno поддерживает несколько источников переменных:
|
||||||
|
|
||||||
|
1. **Данные запроса** — `request.object`, `request.operation`, `request.userInfo`
|
||||||
|
2. **Данные из API** — через `context.apiCall`
|
||||||
|
3. **Данные из ConfigMap** — через `context.configMap`
|
||||||
|
4. **Глобальные переменные** — через `context.globalReference`
|
||||||
|
5. **Генерируемые данные** — `{{ random('[0-9]{6}') }}`, `{{ time_now() }}`
|
||||||
|
|
||||||
## Файлы
|
## Файлы
|
||||||
|
|
||||||
| Файл | Описание |
|
| Файл | Описание |
|
||||||
|
|||||||
@@ -32,3 +32,20 @@ spec:
|
|||||||
audit.company.com/created-at: "{{ time_now_utc() }}"
|
audit.company.com/created-at: "{{ time_now_utc() }}"
|
||||||
audit.company.com/user-groups: >-
|
audit.company.com/user-groups: >-
|
||||||
{{ request.userInfo.groups | join(', ', @) }}
|
{{ request.userInfo.groups | join(', ', @) }}
|
||||||
|
|
||||||
|
- name: set-environment-labels
|
||||||
|
match:
|
||||||
|
resources:
|
||||||
|
kinds:
|
||||||
|
- Pod
|
||||||
|
context:
|
||||||
|
- name: namespaceConfig
|
||||||
|
apiCall:
|
||||||
|
urlPath: "/api/v1/namespaces/{{ request.object.metadata.namespace }}"
|
||||||
|
jmesPath: "metadata.labels"
|
||||||
|
mutate:
|
||||||
|
patchStrategicMerge:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
+(environment): "{{ namespaceConfig.environment || 'unknown' }}"
|
||||||
|
+(team): "{{ namespaceConfig.team || 'platform' }}"
|
||||||
Reference in New Issue
Block a user