|
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. |
Criando uma nova política de validação
Este tutorial abrange a criação de uma política que valida os nomes de host dos objetos Pod.
A política é rejeitar todos os Pods que usam um ou mais nomes de host na lista de negação. Você fornece a configuração da política usando as configurações de runtime.
Para resumir, as configurações da política devem ser assim:
denied_hostnames:
- bad-host
- forbidden-host
A política rejeita a criação deste Pod:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
hostname: bad-host
containers:
- name: nginx
image: nginx:latest
No entanto, aceita a criação deste Pod:
apiVersion: v1
kind: Pod
metadata:
name: nginx
spec:
hostname: allowed-host
containers:
- name: nginx
image: nginx:latest
Estruturando um novo projeto de política
Você pode criar um novo projeto de política usando o repositório de modelo. Selecione o botão verde "Usar este modelo" próximo ao topo da página e siga o assistente do GitHub.
Clone o repositório localmente e atualize o arquivo package.json para refletir os detalhes da sua política:
{
"name": "your-policy-name",
"version": "1.0.0",
"description": "Your policy description",
"repository": {
"type": "git",
"url": "https://github.com/your-username/your-policy-name"
}
}
Certifique-se de usar um caminho de repositório que corresponda ao seu repositório real do GitHub.
qualidade
Desde que as ferramentas necessárias estejam disponíveis, o comando make all constrói o alvo annotated-policy.wasm. O comando make e2e executa testes usando bats com kwctl.
makemake all
npx webpack --config webpack.config.cjs
asset bundled.js 5.52 KiB [compared for emit] [minimized] (name: main)
asset types.d.ts 430 bytes [compared for emit]
asset index.d.ts 11 bytes [compared for emit]
./src/index.ts 3.84 KiB [built] [code generated]
./node_modules/kubewarden-policy-sdk/dist/bundle.js 3.85 KiB [built] [code generated]
webpack 5.101.3 compiled successfully in 2280 ms
npm install
up to date, audited 400 packages in 2s
58 packages are looking for funding
run `+npm fund+` for details
found 0 vulnerabilities
make e2e
npx webpack --config webpack.config.cjs
asset bundled.js 5.52 KiB [compared for emit] [minimized] (name: main)
asset types.d.ts 430 bytes [compared for emit]
asset index.d.ts 11 bytes [compared for emit]
./src/index.ts 3.84 KiB [built] [code generated]
./node_modules/kubewarden-policy-sdk/dist/bundle.js 3.85 KiB [built] [code generated]
webpack 5.101.3 compiled successfully in 1909 ms
bats e2e.bats
e2e.bats
✓ reject because hostname is on the deny list
✓ accept because hostname is not on the deny list
✓ accept because the deny list is empty
✓ accept because pod has no hostname set
✓ accept non-pod resources
5 tests, 0 failures