Resource cakupan project


Config Connector dapat mengelola resource Anda di level project, folder, atau organisasi. Agar Config Connector dapat menentukan tempat untuk membuat resource, pertama-tama ia akan memeriksa kolom yang menentukan cakupan dalam spesifikasi resource Anda, jika tidak ditemukan, lalu memeriksa anotasi yang menentukan cakupan.

Tentukan kolom projectRef

Sebagian besar resource Config Connector cakupan project mendukung kolom bernama projectRef dalam spesifikasi CRD-nya. Gunakan kolom ini untuk menentukan project Google Cloud yang ingin Anda gunakan untuk membuat resource.

Jika project Google Cloud juga dikelola dalam cluster yang sama dengan CRD Project, Anda dapat menentukan project tersebut sebagai referensi resource Kubernetes:

...
spec:
  projectRef:
    name: PROJECT_RESOURCE_NAME
    namespace: PROJECT_RESOURCE_NAMESPACE
...

Dengan pendekatan ini, Anda dapat menggunakan Config Connector dan membuat project Google Cloud dengan resource turunannya dalam satu operasi penerapan. Kolom namespace bersifat opsional jika resource Kubernetes project berada di namespace Kubernetes yang sama dengan resource cakupan project Anda.

Jika project Google Cloud tidak dikelola sebagai resource Kubernetes di cluster yang sama, Anda dapat menggunakan kolom external untuk menentukan project ID secara langsung. Format nilai yang tepat mungkin berbeda-beda bergantung pada jenis resource. Dua format yang paling umum adalah "PROJECT_ID" dan "projects/PROJECT_ID". Lihat contoh "projects/PROJECT_ID" di bawah:

...
spec:
  projectRef:
    external: "projects/PROJECT_ID"
...

Menganotasi konfigurasi resource

Jika resource Config Connector memiliki cakupan project tetapi tidak mendukung kolom projectRef, Anda dapat menetapkan project ID ke konfigurasi resource menggunakan anotasi project-id:

...
metadata:
  annotations:
    cnrm.cloud.google.com/project-id: PROJECT_ID
...

Berikut adalah contoh tampilan YAML resource FooBar dengan anotasi ini di dalamnya:

apiVersion: foo.cnrm.cloud.google.com/v1beta1
kind: FooBar
metadata:
  annotations:
    cnrm.cloud.google.com/project-id: PROJECT_ID
  name: foobarname

Menganotasi konfigurasi namespace

Anda dapat menetapkan project ID default untuk resource yang baru dibuat dengan memberi anotasi pada namespace Kubernetes. Jika salah satu resource dalam namespace memiliki anotasi ini yang ditetapkan secara eksplisit dalam konfigurasinya sendiri, anotasi tingkat resource akan menimpa anotasi level namespace.

Untuk menganotasi namespace menggunakan command line, jalankan perintah berikut:

kubectl annotate namespace NAMESPACE_NAME cnrm.cloud.google.com/project-id=PROJECT_ID

Ganti kode berikut:

  • NAMESPACE_NAME: nama namespace Anda
  • PROJECT_ID: project ID Google Cloud Anda

Atau, Anda dapat menerapkan manifes YAML yang berisi anotasi tersebut. Salin YAML di bawah ke dalam file:

apiVersion: v1
kind: Namespace
metadata:
  annotations:
    cnrm.cloud.google.com/project-id: PROJECT_ID
  name: NAMESPACE_NAME

Ganti kode berikut:

  • PROJECT_ID: project ID Google Cloud Anda
  • NAMESPACE_NAME: nama namespace Anda

Setelah file dibuat, terapkan ke cluster Anda.

Menggunakan nama namespace sebagai project ID

Jika resource atau namespace tidak menentukan project ID, Config Connector akan menggunakan nama namespace sebagai project ID. Perilaku default ini didukung oleh Config Connector, tetapi kami tidak merekomendasikannya karena setelan default implisit project ID bisa membingungkan.