文件夹范围的资源
Config Connector 可以在项目、文件夹或组织级别管理您的资源。为了让 Config Connector 确定创建 您的资源的位置,它首先会检查资源规范中是否有 范围定义字段 ,如果未找到,则检查是否有 范围定义注解。
指定 folderRef 字段
大多数文件夹范围的 Config Connector 资源在其 CRD 规范中都支持名为 folderRef
的字段。使用此字段可指定要在其中创建资源的 Google Cloud 文件夹
。
如果 Google Cloud 文件夹也在同一集群中通过 文件夹 CRD 进行管理,您可以将该文件夹指定为 Kubernetes 资源引用:
...
spec:
folderRef:
name: FOLDER_RESOURCE_NAME
namespace: FOLDER_RESOURCE_NAMESPACE
...
这种方法让您可以使用 Config Connector,并通过一次应用操作创建 Google Cloud 文件夹及其子资源。 如果 Config Connector 文件夹资源与文件夹范围的资源位于同一 Kubernetes 命名空间中,则命名空间字段是可选的。
如果 Google Cloud 文件夹未在同一集群中作为 Kubernetes 资源
进行管理,您可以使用 external 字段直接指定
文件夹 ID。值的确切格式可能因资源类型而异。两种最常见的格式是“FOLDER_ID”和
“folders/FOLDER_ID”。请参阅下面的“FOLDER_ID”示例:
...
spec:
folderRef:
external: "FOLDER_ID"
...
为资源配置添加注释
如果 Config Connector 资源是文件夹范围的,但不支持 folderRef 字段,您可以使用 folder-id
注解将文件夹 ID 设置为资源配置:
...
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
...
以下示例展示了具有此注解的资源的 YAML 配置:
apiVersion: SERVICE_NAME.cnrm.cloud.google.com/v1beta1
kind: RESOURCE_KIND
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
name: RESOURCE_NAME
替换以下内容:
SERVICE_NAME:资源的 Google Cloud 服务名称RESOURCE_KIND:Config Connector 资源的种类FOLDER_ID:您的 Google Cloud 文件夹 IDRESOURCE_NAME:资源的名称
为命名空间配置添加注释
您可以通过为 Kubernetes 命名空间添加注解,为新创建的资源设置默认文件夹 ID。如果命名空间中的任何资源在其自己的配置中明确设置了此注解,则资源级注解会覆盖命名空间级注解。
如需使用命令行为命名空间添加注解,请运行以下命令:
kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/folder-id=FOLDER_ID
替换以下内容:
NAMESPACE_NAME:您的命名空间名称FOLDER_ID:您的 Google Cloud 文件夹 ID
或者,您可以应用包含该注解的 YAML 清单。 将下面的 YAML 复制到文件中:
apiVersion: v1
kind: Namespace
metadata:
annotations:
cnrm.cloud.google.com/folder-id: FOLDER_ID
name: NAMESPACE_NAME
替换以下内容:
FOLDER_ID:您的 Google Cloud 文件夹 IDNAMESPACE_NAME:您的命名空间名称
创建文件后,将其应用于您的集群。