Descripción general de la API Organization Policy

La API Organization Policy usa recursos personalizados de Kubernetes y se basa en el modelo de recursos de Kubernetes (KRM). Se usa para gestionar el ciclo de vida de las políticas de la organización, como crear, actualizar y eliminar.

Para usar la API Organization Policy, te recomendamos que uses la CLI de Kubernetes kubectl. Si tu aplicación necesita usar sus propias bibliotecas para llamar a esta API, utiliza el siguiente ejemplo, la definición completa de la API y la página de coincidencia de políticas específica para crear tus solicitudes.

Punto de conexión de servicio y documento de descubrimiento

El endpoint de la API Organization Policy es: https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1 donde MANAGEMENT_API_SERVER_ENDPOINT es el endpoint del servidor de la API Management.

Con el comando kubectl proxy, puedes acceder a esa URL en tu navegador o con una herramienta como curl para obtener el documento de descubrimiento de la API Organization Policy. El comando kubectl proxy abre un proxy al servidor de la API de Kubernetes en tu máquina local. Una vez que se haya ejecutado el comando, podrás acceder al documento en la siguiente URL: http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1.

Ejemplo de KRM

A continuación, se muestra un ejemplo de un objeto GDCHRestrictedServices en la API Organization Policy para restringir el uso de los servicios de bases de datos a los proyectos que tengan la 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"