文件夹范围的资源


Config Connector 可以在项目、文件夹或组织级别管理您的资源。为了让 Config Connector 确定在何处创建资源,它会先在资源规范中检查范围定义字段,如果找不到,则检查范围定义注解

指定 folderRef 字段

大多数文件夹级的 Config Connector 资源在其 CRD 规范中支持名为 folderRef 的字段。使用此字段指定要在其中创建资源的 Google Cloud 文件夹。

如果还通过文件夹 CRD 在同一集群中管理 Google Cloud 文件夹,您可以将该文件夹指定为 Kubernetes 资源引用:

...
spec:
  folderRef:
    name: FOLDER_RESOURCE_NAME
    namespace: FOLDER_RESOURCE_NAMESPACE
...

借助此方法,您可以在单个应用操作中使用 Config Connector 并创建一个 Google Cloud 文件夹及其子资源。如果 Config Connector Folder 资源与文件夹范围资源位于同一 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: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
  annotations:
    cnrm.cloud.google.com/folder-id: FOLDER_ID
  name: foobarname

为命名空间配置添加注释

您可以通过注释 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 文件夹 ID
  • NAMESPACE_NAME:您的命名空间名称

创建文件后,将其应用到您的集群。