Membuat referensi resource


Resource Google Cloud yang dibuat dengan Config Connector dapat merujuk ke resource lainnya. Config Connector menetapkan hubungan ini melalui referensi resource. Topik ini menjelaskan cara membuat resource dengan referensi.

Jenis referensi

Di Config Connector, referensi dapat berupa dependensi atau link.

Dependensi
Referensi dependensi mengacu ke resource Google Cloud yang ada resource yang diperlukan untuk resource Config Connector. Misalnya, sebuah {i>firewall<i} aturan tidak dapat ada tanpa jaringan
Link
Referensi link menggabungkan resource yang independen. Sebagai contoh, Project dapat dikaitkan dengan Akun Penagihan.

Menentukan referensi resource

Anda menentukan referensi resource dalam spec resource. Nama kolom adalah nama pendek resource yang diikuti dengan Ref. Contoh:

  • Referensi ke PubSubTopic yang bernama topic adalah topicRef.
  • Referensi ke StorageBucket yang bernama bucket adalah bucketRef.

Referensinya adalah objek dengan satu kolom (name). Resource di resourceRef diganti dengan nama referensi.

File YAML berikut menjelaskan PubSubSubscription Pub/Sub yang mereferensikan PubSubTopic bernama myTopic.

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

Contoh Pub/Sub

Membuat PubSubTopic

Dalam contoh ini, Anda membuat PubSubSubscription yang bergantung pada PubSubTopic.

  1. Salin kode berikut ke file bernama pubsub-topic.yaml:

    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
    name: TOPIC_NAME
    

    Ganti TOPIC_NAME dengan nama PubSubTopic yang Anda inginkan

    Misalnya, untuk membuat topik bernama myTopic, Anda dapat menggunakan YAML berikut file:

    apiVersion: pubsub.cnrm.cloud.google.com/v1beta1
    kind: PubSubTopic
    metadata:
      name: myTopic
    
  2. Buat PubSubTopic dengan kubectl apply.

    kubectl --namespace CC_NAMESPACE apply -f pubsub-topic.yaml

    Mengganti CC_NAMESPACE dengan namespace Config Connector mengelola resource.

Membuat PubSubSubscription

  1. Salin kode berikut ke dalam file bernama `pubsub-subscription.yaml:

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

    Ganti TOPIC_NAME dengan nama PubSubTopic yang Anda gunakan di langkah 1. Misalnya, YAML yang merujuk ke topik myTopic yang Anda buat sebelumnya adalah:

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

    kubectl --namespace CC_NAMESPACE apply -f pubsub-subscription.yaml 

    Mengganti CC_NAMESPACE dengan namespace Config Connector mengelola resource.

Referensi eksternal

Config Connector dapat mereferensikan resource yang tidak dikelola. Berikut adalah yang dikenal sebagai Referensi Eksternal. Misalnya, ComputeURLMap di bawah merujuk ke BackendService bernama test-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

Format nilai yang diterima oleh external bergantung pada resource. Lihat untuk resource tertentu dalam dokumentasi . Anda dapat mengetahui apa nilai yang diterima external dengan membaca deskripsi resource Kolom external.

IAMPolicy, IAMPartialPolicy, dan IAMPolicyMember

IAMPolicy, IAMPartialPolicy, dan IAMPolicyMember juga mendukung Eksternal Referensi. Misalnya, IAMPolicyMember di bawah mereferensikan Project dengan ID project test-project.

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:
    kind: Project
    external: projects/test-project

Anda dapat mengetahui format yang diterima kolom external dengan membaca dokumentasi referensi. Tujuan IAMPolicy, IAMPartialPolicy dan IAMPolicyMember halaman mencantumkan format yang diterima untuk semua resource yang didukung. Format tersebut tercantum di bagian "External Reference Formats" pada tabel Resource yang Didukung. Anda juga dapat membuka halaman referensi masing-masing resource (misalnya, PubSubTopic) dan lihat nilai yang tercantum dalam "IAM External Reference Format" baris dari di tabel ringkasan resource.

Referensi lintas namespace

Dengan Config Connector, resource dapat mereferensikan resource di namespace lain. Namun, jika Config Connector diinstal di namespaced-mode, Anda harus memberikan izin tambahan Config Connector untuk referensi lintas nama.

Misalnya, jika Anda ingin membuat resource di NAMESPACE_A yang resource referensi dalam NAMESPACE_B, Anda harus membuat hal berikut RoleBinding:

apiVersion: rbac.authorization.k8s.io/v1
kind: RoleBinding
metadata:
  namespace: NAMESPACE_B
  name: allow-references-from-NAMESPACE_A
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cnrm-viewer
subjects:
- kind: ServiceAccount
  name: cnrm-controller-manager-NAMESPACE_A
  namespace: cnrm-system

Langkah selanjutnya

  • Tinjau Referensi resource untuk pelajari resource yang didukung Config Connector.

  • Lihat bagaimana Anda dapat menggunakan referensi resource ke Rahasia di Config Connector Anda .