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. Una vez que se ejecute ese comando, podrás acceder al documento en la siguiente URL: http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1
.
Ejemplo de KRM
El siguiente ejemplo es un objeto GDCHRestrictedServices
en la API de Organization Policy para restringir el uso del servicio de base 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"