Mengelola kolom secara eksternal


Saat Config Connector membuat resource di Google Cloud, kolom harus diisi tidak ditentukan dalam spesifikasi mengambil nilai dari API kecuali jika nilai tersebut tidak dapat dibaca (misalnya, opsi tidak tersedia dengan menggunakan permintaan HTTP GET).

Dalam hal ini, kolom ini dianggap "dikelola secara eksternal", karena Kubernetes tidak yang menjadi sumber tepercaya untuk nilai ini.

Perilaku dengan penerapan sisi server

Jika penerapan sisi server diaktifkan untuk resource. Nilai kolom yang dikelola secara eksternal di Google Cloud diupdate terus-menerus agar sesuai dengan resource Anda

Jika ada nilai untuk sebuah bidang dalam spesifikasi dalam konfigurasi yang diterapkan, tersebut tidak 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 diisi dengan nilai yang dibaca dari Google Cloud API, dan Config Connector menerapkan nilai yang awalnya diisi tersebut.

Sebagai contoh: jika pengguna menerapkan konfigurasi resource tanpa menetapkan untuk bar dalam spesifikasi:

spec:
    foo: "foo"

Jika nilai kolom bar adalah baz di Google Cloud API, pada api-server 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 sekarang baz-2, Google Cloud API dikoreksi ke nilai yang pertama kali diisi dalam 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 di spesifikasi resource

Karena keterbatasan teknis di Config Connector, cantumkan kolom di resource Anda tidak dapat dikelola secara eksternal secara default. Artinya Config Connector selalu mengambil kepemilikan kolom daftar di spesifikasi resource, bahkan jika kolom tersebut tidak ditentukan dalam konfigurasi resource asli Anda.

Pada saat spesifikasi resource diterapkan, Config Connector akan membaca nilai kolom daftar dari Google Cloud API dan memperlakukan nilai awal ini sebagai sumber kebenaran dan status yang diinginkan. Jika nilai di {i>field<i} daftar itu dimodifikasi di luar Config Connector, Config Connector mencoba mengubahnya yang mungkin tidak diinginkan.

Untuk mengabaikan batasan ini dan membiarkan kolom daftar dikelola secara eksternal, menggunakan anotasi cnrm.cloud.google.com/state-into-spec. Ini tidak didukung untuk semua sumber daya. Untuk melihat apakah sumber daya yang mendukung anotasi, periksa halaman referensi resource.

metadata:
  annotations:
    cnrm.cloud.google.com/state-into-spec: absent

Dengan menetapkan nilai state-into-spec sebagai absent, Config Connector akan mengabaikan mencantumkan kolom jika tidak ditentukan dalam konfigurasi resource Anda. Ini akan meninggalkan mencantumkan kolom di resource yang akan dikelola secara eksternal.

Peringatan

Kolom yang dikelola oleh Config Connector dan otomatis diperbarui oleh layanan eksternal dapat memicu update tanpa henti pada API dasar. Hal ini dapat terjadi jika API yang mendasarinya memiliki kolom penskalaan otomatis atau update otomatis. Pastikan bahwa kolom ini diperlakukan sebagai dikelola secara eksternal dengan mengaktifkan penerapan sisi server sumber daya dan meninggalkan {i>field<i} dari file konfigurasi Anda saat menerapkan.