fix foreach

This commit is contained in:
2026-05-19 17:16:39 +07:00
parent e995770695
commit f980b651d9
11 changed files with 37 additions and 29 deletions
@@ -26,14 +26,14 @@ spec:
- kube-system
- kyverno
validate:
message: >-
Все контейнеры в поде '{{ request.object.metadata.name }}'
обязаны иметь resources.limits.memory и resources.limits.cpu.
foreach:
- list: >-
request.object.spec.containers[] |
merge(request.object.spec.initContainers[] || `[]`, @) |
merge(request.object.spec.ephemeralContainers[] || `[]`, @)
message: >-
Контейнер '{{ element.name }}' в поде '{{ request.object.metadata.name }}'
не имеет resource limits. Добавьте resources.limits.memory и resources.limits.cpu.
pattern:
resources:
limits:
@@ -25,14 +25,14 @@ spec:
namespaces:
- kube-system
validate:
message: >-
Один из образов в поде '{{ request.object.metadata.name }}' использует
тег :latest или не имеет тега. Используйте конкретный тег или digest.
foreach:
- list: >-
request.object.spec.containers[] |
merge(request.object.spec.initContainers[] || `[]`, @) |
merge(request.object.spec.ephemeralContainers[] || `[]`, @)
message: >-
Образ '{{ element.image }}' использует тег :latest или не имеет тега.
Используйте конкретный тег (nginx:1.25.3) или digest (nginx@sha256:...).
deny:
conditions:
any:
@@ -27,15 +27,14 @@ spec:
- kube-system
- kyverno
validate:
message: >-
Один из образов в поде '{{ request.object.metadata.name }}' из недоверенного реестра.
Разрешены: registry.company.com/, gcr.io/company-project/.
foreach:
- list: >-
request.object.spec.containers[] |
merge(request.object.spec.initContainers[] || `[]`, @) |
merge(request.object.spec.ephemeralContainers[] || `[]`, @)
message: >-
Образ '{{ element.image }}' из недоверенного реестра.
Разрешены: registry.company.com/, gcr.io/company-project/.
Загрузите образ в внутренний реестр и обновите манифест.
deny:
conditions:
all:
@@ -26,14 +26,14 @@ spec:
namespaces:
- kube-system
validate:
message: >-
Один из контейнеров в поде '{{ request.object.metadata.name }}' добавляет
запрещённые capabilities. Разрешена только NET_BIND_SERVICE.
foreach:
- list: >-
request.object.spec.containers[] |
merge(request.object.spec.initContainers[] || `[]`, @) |
merge(request.object.spec.ephemeralContainers[] || `[]`, @)
message: >-
Контейнер '{{ element.name }}' добавляет запрещённые capabilities.
Разрешена только NET_BIND_SERVICE. Пересмотрите необходимость привилегий.
deny:
conditions:
any:
@@ -26,14 +26,14 @@ spec:
namespaces:
- kube-system
validate:
message: >-
Один из контейнеров в поде '{{ request.object.metadata.name }}'
имеет securityContext.privileged: true. Запрещено.
foreach:
- list: >-
request.object.spec.containers[] |
merge(request.object.spec.initContainers[] || `[]`, @) |
merge(request.object.spec.ephemeralContainers[] || `[]`, @)
message: >-
Контейнер '{{ element.name }}' имеет securityContext.privileged: true.
Привилегированные контейнеры запрещены. Удалите поле или установите false.
deny:
conditions:
any:
@@ -25,14 +25,14 @@ spec:
namespaces:
- kube-system
validate:
message: >-
Каждый контейнер в поде '{{ request.object.metadata.name }}' должен
сбрасывать все capabilities: securityContext.capabilities.drop: [ALL].
foreach:
- list: >-
request.object.spec.containers[] |
merge(request.object.spec.initContainers[] || `[]`, @) |
merge(request.object.spec.ephemeralContainers[] || `[]`, @)
message: >-
Контейнер '{{ element.name }}' не сбрасывает все capabilities.
Добавьте securityContext.capabilities.drop: [ALL].
deny:
conditions:
all:
@@ -45,11 +45,13 @@ spec:
namespaces:
- kube-system
validate:
message: >-
Один из контейнеров в поде '{{ request.object.metadata.name }}'
использует runAsUser: 0 (root). Установите runAsUser >= 1000.
foreach:
- list: >-
request.object.spec.containers[] |
merge(request.object.spec.initContainers[] || `[]`, @)
message: "Контейнер '{{ element.name }}' использует runAsUser: 0 (root). Установите runAsUser >= 1000."
deny:
conditions:
any: