Descripción general de la API de Organization Policy

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

Para usar la API de 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, usa el siguiente ejemplo, la definición completa de la API y la página de coincidencias de políticas dedicada para compilar tus solicitudes.

Extremo de servicio y documento de descubrimiento

El extremo de API de Organization Policy es el siguiente: https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1 donde MANAGEMENT_API_SERVER_ENDPOINT es el extremo del servidor de la API de 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 de Organization Policy. El comando kubectl proxy abre un proxy al servidor de la API de Kubernetes en tu máquina local. Después de que se ejecute ese comando, puedes 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 de Organization Policy para restringir el uso de los servicios de bases de datos a los proyectos que tienen 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"