|
Este documento foi traduzido usando tecnologia de tradução automática de máquina. Sempre trabalhamos para apresentar traduções precisas, mas não oferecemos nenhuma garantia em relação à integridade, precisão ou confiabilidade do conteúdo traduzido. Em caso de qualquer discrepância, a versão original em inglês prevalecerá e constituirá o texto official. |
|
Esta é uma documentação não divulgada para Admission Controller 1.34-dev. |
Migração de ValidatingAdmissionPolicy
A partir do Kubernetes v1.26, o ValidatingAdmissionPolicy fornece uma maneira de escrever políticas de admissão personalizadas no Kubernetes. As políticas são escritas com o Common Expression Language (CEL), estendidas com algumas extensões específicas do Kubernetes. A ValidatingAdmissionPolicy alcançou estabilidade no Kubernetes v1.30.
SUSE Security Admission Controller fornece uma política CEL que é capaz de executar políticas VAP do Kubernetes sem nenhuma modificação. Você pode ler mais sobre a política CEL na esta seção da documentação de Admission Controller. Este parágrafo explica os benefícios de executar políticas VAP usando Admission Controller.
Este guia explica como usar a ferramenta kwctl para migrar uma política VAP para Admission Controller.
Etapas de migração
|
Você deve usar a versão 1.14.0 ou posterior do |
Dado um arquivo contendo esta definição YAML de um ValidatingAdmissionPolicy:
ValidatingAdmissionPolicy definição de
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicy
metadata:
name: "force-liveness-probe"
spec:
failurePolicy: Fail
variables:
- name: containers_without_liveness_probe
expression: |
object.spec.template.spec.containers.filter(c, !has(c.livenessProbe)).map(c, c.name)
matchConstraints:
resourceRules:
- apiGroups: ["apps"]
apiVersions: ["v1"]
operations: ["CREATE", "UPDATE"]
resources: ["deployments"]
validations:
- expression: |
size(variables.containers_without_liveness_probe) == 0
messageExpression: |
'These containers are missing a liveness probe: ' + variables.containers_without_liveness_probe.join(' ')
reason: Invalid
E um arquivo contendo o ValidatingAdmissionPolicyBinding recurso:
ValidatingAdmissionPolicyBinding definição de
apiVersion: admissionregistration.k8s.io/v1
kind: ValidatingAdmissionPolicyBinding
metadata:
name: "kw-scaffold-demo"
spec:
policyName: "force-liveness-probe"
validationActions: [Deny]
matchResources:
namespaceSelector:
matchLabels:
docs.kubewarden.io/vap-migration: enabled
Você pode migrar a política para Admission Controller seguindo estes passos:
kwctl comando para migração de política
$ kwctl scaffold vap \
-p vap.yml \
-b vap-binding.yml
O comando produz uma saída semelhante a esta:
Saída da migração
apiVersion: policies.kubewarden.io/v1
kind: ClusterAdmissionPolicy
metadata:
name: kw-scaffold-demo
spec:
module: ghcr.io/kubewarden/policies/cel-policy:latest
settings:
failurePolicy: Fail
variables:
- expression: |
object.spec.template.spec.containers.filter(c, !has(c.livenessProbe)).map(c, c.name)
name: containers_without_liveness_probe
validations:
- expression: |
size(variables.containers_without_liveness_probe) == 0
messageExpression: |
'These containers are missing a liveness probe: ' + variables.containers_without_liveness_probe.join(' ')
reason: Invalid
rules:
- apiGroups:
- apps
apiVersions:
- v1
resources:
- deployments
operations:
- CREATE
- UPDATE
mutating: false
namespaceSelector:
matchLabels:
docs.kubewarden.io/vap-migration: enabled
|
O comando avisa o usuário sobre o uso da
É recomendável usar uma versão específica para evitar mudanças que quebrem a compatibilidade. Você pode fazer isso usando a
|