项目范围的资源
Config Connector 可以在项目、文件夹或组织级别管理您的资源。为了让 Config Connector 确定创建资源的位置,它会先检查资源规范中是否有范围定义字段,如果没有找到,则检查是否有范围定义注解。
指定 projectRef
字段
大多数项目级 Config Connector 资源都支持名为 projectRef
的字段
。使用此字段可指定
资源项目
如果 Google Cloud 项目也与 Project CRD 一起在同一集群中管理,您可以将该项目指定为 Kubernetes 资源引用:
...
spec:
projectRef:
name: PROJECT_RESOURCE_NAME
namespace: PROJECT_RESOURCE_NAMESPACE
...
通过这种方式,您可以使用 Config Connector 并创建 Google Cloud 项目及其子资源。 如果项目 Kubernetes 资源与项目级范围的资源位于同一 Kubernetes 命名空间中,则命名空间字段为可选字段。
如果 Google Cloud 项目未作为同一集群中的 Kubernetes 资源进行管理,您可以使用 external
字段直接指定项目 ID。值的确切格式可能会因资源类型而异。两种最常见的格式是“PROJECT_ID”和
“projects/PROJECT_ID”。下面是“projects/PROJECT_ID”的示例:
...
spec:
projectRef:
external: "projects/PROJECT_ID"
...
为资源配置添加注释
如果 Config Connector 资源是项目级资源,但不支持
projectRef
字段,您可以将项目 ID 设置为资源配置
使用 project-id
注解:
...
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
...
以下示例显示包含此注释的 FooBar
资源的 YAML:
apiVersion: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
name: foobarname
为命名空间配置添加注释
您可以为新创建的资源设置默认项目 ID,方法是为 Kubernetes 命名空间添加注释。如果命名空间中的 在其自己的配置中明确设置此注解,即资源级 注解会覆盖命名空间级别的注解。
如需使用命令行对命名空间添加注解,请运行以下命令:
kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/project-id=PROJECT_ID
替换以下内容:
NAMESPACE_NAME
:您的命名空间名称PROJECT_ID
:您的 Google Cloud 项目 ID
或者,您也可以应用包含注释的 YAML 清单。将下面的 YAML 复制到文件中:
apiVersion: v1
kind: Namespace
metadata:
annotations:
cnrm.cloud.google.com/project-id: PROJECT_ID
name: NAMESPACE_NAME
请替换以下内容:
PROJECT_ID
:您的 Google Cloud 项目 IDNAMESPACE_NAME
:您的命名空间名称
创建该文件后,将其应用于您的集群。
使用命名空间名称作为项目 ID
如果资源和命名空间都未指定项目 ID,则 Config Connector 将命名空间的名称用作项目 ID。Config Connector 支持此默认行为,但我们不建议这样做,因为项目 ID 的隐式默认值可能会造成混淆。