A API Organization Policy usa recursos personalizados do Kubernetes e baseia-se no modelo de recursos do Kubernetes (KRM). É usado para gerir o ciclo de vida das políticas de organização, como a criação, a atualização e a eliminação.
Para usar a API Organization Policy, recomendamos que use a CLI do Kubernetes
kubectl
. Se a sua aplicação precisar de usar as suas próprias bibliotecas para chamar esta API, use o exemplo seguinte, a definição completa da API e a página de correspondência de políticas dedicada para criar os seus pedidos.
Ponto final do serviço e documento de descoberta
O ponto final da API Organization Policy é:
https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1
onde MANAGEMENT_API_SERVER_ENDPOINT
é o ponto final do servidor da API Management.
Com o comando kubectl proxy
, pode aceder a esse URL no seu navegador ou com uma ferramenta como curl
para obter o documento de descoberta da API Organization Policy. O comando kubectl proxy
abre um proxy para o servidor da API Kubernetes na sua máquina local. Depois de executar esse comando, pode aceder ao documento no seguinte URL:
http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1
.
Exemplo KRM
O exemplo seguinte é um objeto GDCHRestrictedServices
na API Organization Policy para restringir a utilização do serviço de base de dados a projetos que tenham a etiqueta owner: dba-team
.
apiVersion: constraints.gatekeeper.sh/v1beta1
kind: GDCHRestrictedService
metadata:
name: db-restricted-to-dbas
spec:
match:
scope: Namespaced
namespaceSelector:
matchExpressions:
# We are restricting the use of the service in namespaces that
# DON'T have the owner: dba-team label
- key: owner
operator: NotIn
values:
- dba-team
kinds:
- apiGroups:
- "postgresql.ods.anthosapis.com"
kinds:
- Dbclusters
- Backupplans
- Imports
- Restores
- apiGroups:
- "oracle.ods.anthosapis.com"
kinds:
- Dbclusters
- Backupplans
- Imports
parameters:
disabledOperations:
- "UPDATE"
- "CREATE"