使用 resourceID 欄位管理資源


本頁面說明如何使用 resourceID 欄位管理資源。

Config Connector 可讓您使用不可變動但可選的 resourceID 欄位,明確指定 Google Cloud資源的資源 ID,以便建立或取得資源。「不可變動,但可選填」表示您可以選擇是否指定 resourceID 欄位,但在將資訊清單套用至叢集後,您就無法變更 resourceID 欄位的值。

resourceID 欄位可讓您更靈活地命名具有使用者指定資源 ID 的 Google Cloud資源。您可以使用 Config Connector 資源中的 resourceID 欄位,在相同命名空間內的不同專案、資料夾、組織或父項資源下,定義多個相同類型的 Config Connector 資源,並使用相同的 Google Cloud資源名稱。 Google Cloud 資源名稱也不受 Kubernetes 物件名稱的命名慣例限制。此外,resourceID 欄位可讓您取得具有服務產生資源 ID 的 Google Cloud 資源。

Config Connector 會將命名空間設為資源的「擁有者」,以免資源遭到其他擁有者取用。不過,如果您使用 resourceID 欄位,則在同一個命名空間下,可以有多個具有相同 Google Cloud 資源名稱的資源。這些資源會造成 Config Connector 無法管理的衝突。您必須手動解決任何衝突問題。

資源 ID 類型

在 Config Connector 中,資源 ID 可以由使用者指定服務產生

使用者指定的資源 ID
在建立資源前,由使用者決定、指定及傳入的資源 ID。您可以使用 resourceID 欄位建立或取得具有使用者指定資源 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 資料集

在這個範例中,您會使用 resourceID 欄位搭配設定連接器,建立新的 BigQuery 資料集。resourceID 欄位的值應遵循 BigQuery 資料集 datasetId 欄位的命名慣例

  1. 將下列內容複製到名為 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
    
  2. 將 YAML 檔案套用至叢集。

    kubectl apply --namespace CC_NAMESPACE -f bigquery-dataset.yaml

    CC_NAMESPACE 替換為 Config Connector 管理資源的命名空間。

  3. 使用 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 欄位取得資料夾,請完成下列步驟:

  1. 將下列內容複製到名為 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 包含要取得的資料夾顯示名稱。
  2. 將 YAML 檔案套用至叢集。

    kubectl apply --namespace CC_NAMESPACE -f folder.yaml

    CC_NAMESPACE 替換為 Config Connector 管理資源的命名空間。

  3. 使用 kubectl describe 查看資料夾的詳細資料。

    kubectl describe --namespace CC_NAMESPACE folder folder-sample-for-acquisition

    CC_NAMESPACE 替換為 Config Connector 管理資源的命名空間。

後續步驟

請參閱資源參考資料,瞭解 Config Connector 支援的資源。