# Урок 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() }}` ## Файлы | Файл | Описание | |------|----------| | `kyverno-global-config.yaml` | ConfigMap с централизованными настройками | | `set-dynamic-resource-limits.yaml` | Лимиты из ConfigMap по типу сервиса | | `add-creator-audit-annotation.yaml` | Автоматический audit trail | ## Подготовка ```bash # Сначала создать ConfigMap с конфигурацией kubectl apply -f kyverno-global-config.yaml # Затем политики kubectl apply -f set-dynamic-resource-limits.yaml kubectl apply -f add-creator-audit-annotation.yaml ``` ## Тест динамических лимитов ```bash # Pod типа "api" — получит 512Mi/500m kubectl apply -f - <