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 フィールドの指定
リソースの 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
フィールドのある Config Connector を使用して、新しい 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
は、リソースを管理する Namespace Config Connector に置き換えます。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
フィールドを使用してフォルダを取得するには、次の手順を行います。
次の内容を
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
は、リソースを管理する Namespace Config Connector に置き換えます。kubectl describe
を使用して、フォルダの詳細を確認します。kubectl describe --namespace CC_NAMESPACE folder folder-sample-for-acquisition
CC_NAMESPACE
は、リソースを管理する Namespace Config Connector に置き換えます。
次のステップ
リソースのリファレンスを参照して、Config Connector がサポートするリソースを確認してください。