Organization Policy API 概览

组织政策 API 使用 Kubernetes 自定义资源,并依赖于 Kubernetes 资源模型 (KRM)。它用于管理组织政策的生命周期,例如创建、更新、删除。

如需使用组织政策 API,我们建议您使用 Kubernetes CLI kubectl。如果您的应用需要使用自己的库来调用此 API,请使用以下示例、完整的 API 定义和专用政策匹配页面来构建请求。

服务端点和发现文档

Organization Policy API 的 API 端点为:https://MANAGEMENT_API_SERVER_ENDPOINT/apis/constraints.gatekeeper.sh/v1beta1,其中 MANAGEMENT_API_SERVER_ENDPOINT 是 Management API 服务器的端点。

使用 kubectl proxy 命令,您可以在浏览器中或使用 curl 等工具访问该网址,以获取组织政策 API 的发现文档。kubectl proxy 命令会在本地机器上打开一个指向 Kubernetes API 服务器的代理。该命令运行后,您可以通过以下网址访问文档:http://127.0.0.1:8001/apis/constraints.gatekeeper.sh/v1beta1

KRM 示例

以下是组织政策 API 中的 GDCHRestrictedServices 对象示例,用于将数据库服务的使用限制为具有标签 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"