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 bernamatopic
adalahtopicRef
. - Referensi ke
StorageBucket
yang bernamabucket
adalahbucketRef
.
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
.
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 namaPubSubTopic
yang Anda inginkanMisalnya, untuk membuat topik bernama
myTopic
, Anda dapat menggunakan YAML berikut file:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubTopic metadata: name: myTopic
Buat
PubSubTopic
dengankubectl apply
.kubectl --namespace CC_NAMESPACE apply -f pubsub-topic.yaml
Mengganti
CC_NAMESPACE
dengan namespace Config Connector mengelola resource.
Membuat 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_NAME
Ganti
TOPIC_NAME
dengan namaPubSubTopic
yang Anda gunakan di langkah 1. Misalnya, YAML yang merujuk ke topikmyTopic
yang Anda buat sebelumnya adalah:apiVersion: pubsub.cnrm.cloud.google.com/v1beta1 kind: PubSubSubscription metadata: name: pubsubsubscription-referencing-topic spec: topicRef: name: myTopic
Buat
PubSubSubscription
dengankubectl 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 .