Panoramica dell'API Organization Policy

L'API Organization Policy utilizza risorse personalizzate di Kubernetes e si basa su Kubernetes Resource Model (KRM). Viene utilizzata per gestire il ciclo di vita delle policy dell'organizzazione, ad esempio la creazione, l'aggiornamento e l'eliminazione.

Per utilizzare l'API Organization Policy, ti consigliamo di utilizzare l'interfaccia a riga di comando di Kubernetes kubectl. Se la tua applicazione deve utilizzare le proprie librerie per chiamare questa API, utilizza l'esempio seguente, la definizione completa dell'API e la pagina di corrispondenza delle policy dedicata per creare le richieste.

Endpoint di servizio e documento di rilevamento

L'endpoint API per l'API Organization Policy è: https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1 dove MANAGEMENT_API_SERVER_ENDPOINT è l'endpoint del server dell'API di gestione.

Utilizzando il comando kubectl proxy, puoi accedere a questo URL nel browser o con uno strumento come curl per ottenere il documento di rilevamento per l'API Organization Policy. Il comando kubectl proxy apre un proxy al server API Kubernetes sulla tua macchina locale. Dopo aver eseguito il comando, puoi accedere al documento al seguente URL: http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1.

Esempio di KRM

Di seguito è riportato un esempio di un oggetto GDCHRestrictedServices nell'API Organization Policy per limitare l'utilizzo di Database Services ai progetti con l'etichetta 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.dbadmin.gdc.goog"
      kinds:
      - Dbclusters
      - Backupplans
      - Imports
      - Restores
    - apiGroups:
      - "oracle.dbadmin.gdc.goog"
      kinds:
      - Dbclusters
      - Backupplans
      - Imports
  parameters:
    disabledOperations:
      - "UPDATE"
      - "CREATE"