使用 resourceID 字段管理资源
本页面介绍如何通过 resourceID
字段管理资源。
通过 Config Connector,您可以使用不可修改但可选的 resourceID
字段明确指定 Google Cloud 资源的资源 ID,以创建或获取资源。“不可变,但可选”表示您可以选择指定或不指定 resourceID
字段,但是在将清单应用到您的集群后不能更改 resourceID
字段的值。
resourceID
字段提高了为具有用户指定资源 ID 的 Google Cloud 资源的命名的灵活性。使用 Config Connector 资源中的 resourceID
字段,您可以在同一命名空间内不同项目、文件夹、组织或父级资源下,定义具有相同类型、和相同 Google Cloud 资源名称的多个 Config Connector 资源。Google Cloud 资源名称也不受 Kubernetes 对象名称的命名约定的限制。此外,resourceID
字段支持获取具有服务生成的资源 ID 的 Google Cloud 资源。
Config Connector 将命名空间设为资源的“所有者”,以防止它被其他所有者占用。但是,如果您使用的是 resourceID
字段,则可以在同一命名空间下创建具有同一 Google Cloud 资源名称的多个资源。这些资源会引发 Config Connector 无法管理的冲突。您需要手动解决所有冲突。
资源 ID 的类型
在 Config Connector 中,资源 ID 可以由用户指定,也可以由服务生成。
- 用户指定的资源 ID
- 在资源创建之前由用户确定、指定并传入的资源 ID。您可以使用
resourceID
字段创建或获取具有用户指定资源 ID 的资源。 - 服务生成的资源 ID
- 在资源创建过程中由服务生成的资源 ID。在资源创建成功后,用户可以检索此 ID。您可以使用
resourceID
字段获取具有服务生成的资源 ID 的资源。若要创建具有服务生成的资源 ID 的新资源,请勿指定此字段。 请参阅具有服务生成的资源 ID 的资源列表。
指定 resourceID 字段
您可以在资源的 spec
中指定 resourceID
字段。
以下清单介绍了如何为 Pub/Sub 主题指定 resourceID
字段。Config Connector 资源的名称为 pubsub-topic-sample
,Pub/Sub 主题的名称为 pubsub-topic-id
。
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
name: pubsub-topic-sample
spec:
resourceID: pubsub-topic-id
使用 resourceID 字段创建资源
创建 BigQuery 数据集
在此示例中,您将使用 Config Connector 和 resourceID
字段来创建新的 BigQuery 数据集。resourceID
字段的值应遵循 BigQuery 数据集的 datasetId
字段的命名约定。
将以下内容复制到名为
bigquery-dataset.yaml
的文件。apiVersion: bigquery.cnrm.cloud.google.com/v1beta1 kind: BigQueryDataset metadata: name: bigquerydataset-sample-for-creation spec: resourceID: bigquerydataset_sample_with_resourceid defaultTableExpirationMs: 3600000 description: "BigQuery Dataset Sample with the ResourceID Field" friendlyName: bigquerydataset-sample-with-resourceid location: US
将 YAML 文件应用到您的集群。
kubectl apply --namespace CC_NAMESPACE -f bigquery-dataset.yaml
将
CC_NAMESPACE
替换为 Config Connector 从其管理资源的命名空间。使用
kubectl describe
查看数据集的相关详情。kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydataset-sample-for-creation
将
CC_NAMESPACE
替换为 Config Connector 从其管理资源的命名空间。
使用 resourceID 字段获取资源
使用 resourceID
字段管理 Google Cloud 资源时,Config Connector 会在以下情况获取资源:
- 该资源具有用户指定的资源 ID,清单中的值和资源名称与现有资源匹配;或者,
- 该资源具有服务生成的资源 ID。
获取文件夹
如需使用 Config Connector 和 resourceID
字段获取文件夹,请按照以下步骤执行:
将以下内容复制到名为
folder.yaml
的文件。apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1 kind: Folder metadata: annotations: cnrm.cloud.google.com/organization-id: ORG_ID # Remove the deletion-policy annotation if it is safe to delete the # folder when the resource is deleted from your cluster. cnrm.cloud.google.com/deletion-policy: "abandon" name: folder-sample-for-acquisition spec: resourceID: ACQUIRED_FOLDER_ID displayName: ACQUIRED_FOLDER_DISPLAY_NAME
请替换以下内容:
- 将
ORG_ID
替换为您的组织的数字 ID。 - 将
ACQUIRED_FOLDER_ID
替换为待获取的文件夹的数字 ID。 - 将
ACQUIRED_FOLDER_DISPLAY_NAME
替换为待获取的文件夹的显示名。
- 将
将 YAML 文件应用到您的集群。
kubectl apply --namespace CC_NAMESPACE -f folder.yaml
将
CC_NAMESPACE
替换为 Config Connector 从其管理资源的命名空间。使用
kubectl describe
查看文件夹的相关详情。kubectl describe --namespace CC_NAMESPACE folder folder-sample-for-acquisition
将
CC_NAMESPACE
替换为 Config Connector 从其管理资源的命名空间。
后续步骤
请查看资源引用以了解 Config Connector 支持的资源。