リソース参照の作成

Config Connector で作成された Google Cloud リソースは、他のリソースを参照できます。Config Connector は、リソース参照を介してこれらの関係を定義します。このトピックでは、参照を使用してリソースを作成する方法について説明します。

参照の種類

Config Connector では、参照は依存関係またはリンクになる場合があります。

依存関係
依存関係参照は、Config Connector リソースに必要な既存の Google Cloud リソースを指します。たとえば、ファイアウォール ルールはネットワークなしでは存在できません。
関係
リンク参照は、独立したリソースを結び付けます。たとえば、プロジェクトは請求先アカウントに関連付けることができます。

リソース参照を指定する

リソース参照を、リソースの spec で指定します。フィールドの名前は、リソースの短い名前の後に Ref が付いたものです。例:

  • topic という名前の PubSubTopic への参照は topicRef です。
  • bucket という名前の StorageBucket への参照は bucketRef です。

参照は、単一のフィールド(name)を持つオブジェクトです。resourceRef のリソースは参照の名前に置き換えられます。

以下の YAML は、myTopic という名前の PubSubTopic を参照する Pub/Sub PubSubSubscription を記述しています。

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: myTopic

Pub/Sub の例

Pub/Sub トピックの作成

この例では、PubSubTopic に依存する PubSubSubscription を作成します。

  1. 以下を pubsub-topic.yaml という名前のファイルにコピーします。[TOPIC_NAME] は目的の PubSubTopic 名に置き換えます。
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: [TOPIC_NAME]

たとえば、myTopic というトピックを作成する YAML は次のとおりです。

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubTopic
metadata:
  name: myTopic
  1. kubectl applyPubSubTopic を作成します。
kubectl --namespace [CC_NAMESPACE] apply -f pubsub-topic.yaml

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

Pub/Sub サブスクリプションの作成

  1. 以下を pubsub-subscription.yaml という名前のファイルにコピーします。[TOPIC_NAME] は、手順 1 で使用した PubSubTopic 名に置き換えます。
apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: [TOPIC_NAME]

たとえば、前に作成したトピック myTopic を参照する YAML は次のとおりです。

apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
kind: PubSubSubscription
metadata:
  name: pubsubsubscription-referencing-topic
spec:
  topicRef:
    name: myTopic
  1. kubectl applyPubSubSubscription を作成します。
kubectl --namespace [CC_NAMESPACE] apply -f pubsub-subscription.yaml 

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

外部参照

Config Connector は、管理していないリソースを参照できます。これらは外部参照と呼ばれます。たとえば、以下の ComputeURLMaptest-backendservice という名前の BackendService を参照します。

apiVersion: compute.cnrm.cloud.google.com/v1beta1
kind: ComputeURLMap
metadata:
  name: test-urlmap
spec:
  location: global
  defaultService:
    backendServiceRef:
      external: https://www.googleapis.com/compute/v1/projects/[PROJECT_ID]/global/backendServices/test-backendservice

external が受け入れる値の形式は、リソースによって異なります。特定のリソースについては、リソースのリファレンスのドキュメントをご覧ください。リソースの external フィールドの説明を読むと、external が受け入れる値を確認できます。

IAMPolicy と IAMPolicyMember の外部参照

IAMPolicyIAMPolicyMember は、外部参照もサポートしています。たとえば、以下の IAMPolicyMember は、プロジェクト ID test-projectProject を参照しています。

apiVersion: iam.cnrm.cloud.google.com/v1beta1
kind: IAMPolicyMember
metadata:
  name: test-iampolicymember
spec:
  member: serviceAccount:test-serviceaccount@test-project.iam.gserviceaccount.com
  role: roles/storage.admin
  resourceRef:
    apiVersion: resourcemanager.cnrm.cloud.google.com/v1beta1
    kind: Project
    external: projects/test-project

リソースのリファレンスで参照するリソースのドキュメントを確認してください。リソースの「IAM 外部参照形式」プロパティを探すことで、external が受け入れる形式を確認することができます。

次のステップ

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

Config Connector クラスタで Secret へのリソース参照を使用する方法をご覧ください。