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

在本範例中,您將使用 Config Connector 和 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 欄位管理資源時,如果符合下列條件,Config Connector 就會取得資源: Google Cloud

  • 資源具有使用者指定的資源 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 支援的資源。