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。リソースが正常に作成された後、ユーザーが取得できます。resourceID フィールドを使用して、サービス生成のリソース ID を持つリソースを取得できます。サービス生成のリソース ID を持つ新しいリソースを作成する場合は、このフィールドを指定しないでください。 サービス生成のリソース ID を持つリソースの一覧をご覧ください。

resourceID フィールドの指定

リソースの specresourceID フィールドを指定できます。

次のマニフェストでは、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 フィールドのある Config Connector を使用して、新しい 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 は、リソースを管理する Namespace Config Connector に置き換えます。

  3. kubectl describe を使用して、データセットの詳細を確認します。

    kubectl describe --namespace CC_NAMESPACE bigquerydataset bigquerydataset-sample-for-creation

    CC_NAMESPACE は、リソースを管理する 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 は、リソースを管理する Namespace Config Connector に置き換えます。

  3. kubectl describe を使用して、フォルダの詳細を確認します。

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

    CC_NAMESPACE は、リソースを管理する Namespace Config Connector に置き換えます。

次のステップ

リソースのリファレンスを参照して、Config Connector がサポートするリソースを確認してください。