Membuat referensi resource
Resource Google Cloud yang dibuat dengan Config Connector dapat mereferensikan resource lain. Config Connector menentukan 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 merujuk ke resource Google Cloud yang ada dan diperlukan untuk resource Config Connector. Misalnya, aturan firewall tidak dapat ada tanpa jaringan
- Link
- Referensi link mengikat resource independen. Misalnya, 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
PubSubTopicbernamatopicadalahtopicRef. - Referensi ke
StorageBucketbernamabucketadalahbucketRef.
Referensi 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
Buat PubSubTopic
Dalam contoh ini, Anda akan membuat PubSubSubscription yang bergantung pada
PubSubTopic.
Salin kode berikut ke dalam file bernama
pubsub-topic.yaml:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: TOPIC_NAMEGanti
TOPIC_NAMEdengan namaPubSubTopicyang Anda inginkanMisalnya, untuk membuat topik bernama
myTopic, Anda dapat menggunakan file YAML berikut:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: myTopicBuat
PubSubTopicdengankubectl apply.kubectl --namespace CC_NAMESPACE apply -f pubsub-topic.yaml
Ganti
CC_NAMESPACEdengan namespace yang dikelola Config Connector sumber dayanya.
Buat PubSubSubscription
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_NAMEGanti
TOPIC_NAMEdengan namaPubSubTopicyang Anda gunakan di langkah 1. Misalnya, YAML yang mereferensikan topikmyTopicyang Anda buat sebelumnya adalah:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: myTopicBuat
PubSubSubscriptiondengankubectl apply.kubectl --namespace CC_NAMESPACE apply -f pubsub-subscription.yaml
Ganti
CC_NAMESPACEdengan namespace yang dikelola Config Connector sumber dayanya.
Referensi eksternal
Config Connector dapat mereferensikan resource yang tidak dikelolanya. Referensi ini dikenal sebagai Referensi Eksternal. Misalnya, ComputeURLMap di bawah
mereferensikan 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 dokumentasi untuk resource tertentu di Referensi
resource. Anda dapat mengetahui nilai yang diterima external dengan membaca deskripsi kolom external resource.
IAMPolicy, IAMPartialPolicy, dan IAMPolicyMember
IAMPolicy, IAMPartialPolicy, dan IAMPolicyMember juga mendukung Referensi Eksternal. Misalnya, IAMPolicyMember di bawah mereferensikan Project dengan
project ID 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. Halaman
IAMPolicy,
IAMPartialPolicy
dan IAMPolicyMember
mencantumkan format yang diterima untuk semua resource yang didukung. Format tercantum di kolom "Format Referensi Eksternal" pada tabel Resource yang Didukung.
Anda juga dapat membuka halaman referensi setiap resource (misalnya, PubSubTopic) dan melihat nilai yang tercantum di baris "IAM External Reference Format" pada tabel ringkasan resource.
Referensi lintas-namespace
Config Connector memungkinkan resource mereferensikan resource di namespace lain. Namun, jika Config Connector diinstal dalam mode namespace, Anda perlu memberikan izin tambahan ke Config Connector untuk mengizinkan referensi lintas namespace.
Misalnya, jika Anda ingin membuat resource di NAMESPACE_A yang mereferensikan resource di NAMESPACE_B, Anda perlu membuat RoleBinding berikut:
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 berikutnya
Tinjau Referensi resource untuk mempelajari resource yang didukung Config Connector.
Lihat cara menggunakan referensi resource ke Secret di cluster Config Connector Anda.