Mengelola kolom secara eksternal
Saat Config Connector membuat resource di Google Cloud, kolom yang tidak ditentukan dalam spesifikasi akan mengambil nilai dari API kecuali jika tidak dapat dibaca (misalnya, tidak tersedia melalui permintaan HTTP GET).
Dalam hal ini, kolom ini dianggap "dikelola secara eksternal", karena Kubernetes bukanlah sumber tepercaya untuk nilai ini.
Perilaku dengan penerapan sisi server
Jika penerapan sisi server diaktifkan untuk resource, nilai kolom yang dikelola secara eksternal di objek akan diperbarui terus-menerus agar cocok dengan resource Google Cloud yang mendasarinya.
Jika ada nilai untuk kolom dalam spesifikasi dalam konfigurasi yang diterapkan, kolom tersebut tidak akan dikelola secara eksternal.
Jika kolom dihapus, kolom tersebut akan dikelola secara eksternal.
Perilaku tanpa penerapan sisi server
Jika penerapan sisi server tidak diaktifkan, kolom yang tidak ditentukan dalam spesifikasi resource akan diisi dengan nilai yang dibaca dari Google Cloud API, dan Config Connector menerapkan nilai yang awalnya terisi tersebut.
Sebagai contoh: jika pengguna menerapkan konfigurasi resource tanpa menetapkan
nilai untuk bar
dalam spesifikasi:
spec:
foo: "foo"
Jika nilai kolom bar
adalah baz
di Google Cloud API, resource di api-server akan diisi ke nilai tersebut:
# object in the api-server
spec:
foo: "foo"
bar: "baz" # populated by first reconciliation
Jika resource Google Cloud diubah secara langsung sehingga bar
kini menjadi
baz-2
, Google Cloud API akan dikoreksi ke nilai yang
awalnya diisi di spesifikasi resource: baz
:
# object in the api-server
spec:
foo: "foo"
bar: "baz" # still the originally populated value, and overrides the Google Cloud value
Perilaku untuk kolom daftar dalam spesifikasi resource
Karena keterbatasan teknis di Config Connector, kolom daftar di konfigurasi resource Anda tidak dapat dikelola secara eksternal secara default. Artinya, Config Connector selalu mengambil alih kepemilikan kolom daftar dalam spesifikasi resource, meskipun kolom tersebut tidak ditentukan dalam konfigurasi resource asli Anda.
Pada saat spesifikasi resource diterapkan, Config Connector membaca nilai kolom daftar dari Google Cloud API dan memperlakukan nilai awal ini sebagai sumber kebenaran dan status yang diinginkan. Jika nilai dalam kolom daftar tersebut diubah di luar Config Connector, Config Connector akan mencoba mengubahnya kembali, yang mungkin tidak diinginkan.
Untuk mengabaikan batasan ini dan mengizinkan kolom daftar dikelola secara eksternal,
gunakan anotasi cnrm.cloud.google.com/state-into-spec
. Anotasi
ini tidak didukung untuk semua resource. Untuk melihat apakah
resource mendukung anotasi, periksa
halaman referensi resource yang sesuai.
metadata:
annotations:
cnrm.cloud.google.com/state-into-spec: absent
Dengan menetapkan nilai state-into-spec
sebagai absent
, Config Connector akan mengabaikan
kolom daftar jika tidak ditentukan dalam konfigurasi resource Anda. Hal ini membuat
kolom daftar di resource dikelola secara eksternal.
Peringatan
Kolom yang dikelola oleh Config Connector dan otomatis diperbarui oleh layanan eksternal dapat memicu update tanpa batas pada API yang mendasarinya. Hal ini dapat terjadi jika API yang mendasarinya memiliki kolom penskalaan otomatis atau update otomatis. Pastikan kolom ini diperlakukan sebagai dikelola secara eksternal dengan mengaktifkan penerapan sisi server untuk resource dan membiarkan kolom tersebut tidak ada di file konfigurasi Anda saat penerapan.