A API Organization Policy usa recursos personalizados do Kubernetes e depende do modelo de recursos do Kubernetes (KRM). Ele é usado para gerenciar o ciclo de vida das políticas da organização, como criação, atualização e exclusão.
Para usar a API Organization Policy, recomendamos que você use a CLI do Kubernetes
kubectl. Se o aplicativo precisar usar as próprias bibliotecas para chamar essa API,
use o exemplo a seguir, a definição completa da API e a
página dedicada de correspondência de política para criar suas solicitações.
Endpoint de serviço e documento de descoberta
O endpoint de API Organization Policy é:
https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1
em que MANAGEMENT_API_SERVER_ENDPOINT é o endpoint do servidor da API Management.
Usando o comando kubectl proxy, é possível acessar esse URL no navegador ou
com uma ferramenta como curl para receber 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. Quando esse comando estiver em execução, acesse o
documento no seguinte URL:
http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1.
Exemplo de KRM
O exemplo a seguir é um objeto GDCHRestrictedServices na API Organization Policy para restringir o uso do serviço de banco de dados a projetos com o rótulo 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"