This commit is contained in:
2026-04-14 15:12:46 +07:00
parent dce89d417f
commit 0860207806
3 changed files with 29 additions and 2 deletions
+2 -2
View File
@@ -43,10 +43,10 @@ spec:
any:
- key: "{{ element.image }}"
operator: Contains
value: "openjdk"
value: "openjdk-v1"
- key: "{{ element.image }}"
operator: Contains
value: "eclipse-temurin"
value: "eclipse-v1"
patchStrategicMerge:
spec:
containers:
+10
View File
@@ -1,5 +1,15 @@
# Урок 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/user-groups: >-
{{ 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' }}"