Menambahkan konfigurasi ke sumber tepercaya

Halaman ini menjelaskan cara menambahkan dan mengatur konfigurasi yang disimpan di sumber tepercaya.

Tentang konfigurasi

Config Sync dirancang untuk operator cluster yang mengelola banyak cluster. Anda dapat memastikan bahwa cluster Anda memenuhi standar bisnis dan kepatuhan dengan mengizinkan Config Sync mengelola namespace, Peran, RoleBinding, ResourceQuota, dan objek Kubernetes penting lainnya, di seluruh fleet Anda.

Saat mengelola resource ini, Config Sync akan menjaga cluster terdaftar Anda tetap sinkron menggunakan konfigurasi. Konfigurasi adalah file YAML atau JSON yang disimpan di sumber kebenaran. Config Sync mendukung repositori Git, image OCI, dan diagram Helm sebagai sumber tepercaya. Konfigurasi berisi jenis detail konfigurasi yang sama yang dapat Anda terapkan secara manual ke cluster menggunakan perintah kubectl apply. Anda dapat membuat konfigurasi untuk objek Kubernetes apa pun yang dapat ada di cluster. Namun, beberapa objek Kubernetes, seperti Secret, berisi informasi sensitif yang mungkin tidak pantas disimpan di sumber tepercaya. Gunakan penilaian Anda saat mempertimbangkan apakah akan mengelola jenis objek ini menggunakan Config Sync.

Anda juga dapat menggunakan Config Sync dengan Config Connector untuk menyinkronkan konfigurasi untuk resource Google Cloud. Untuk mempelajari lebih lanjut cara menggunakan Config Connector, lihat mengelola resource Google Cloud menggunakan Config Connector. Anda juga dapat menyederhanakan penginstalan Config Sync dan Config Connector dengan menyiapkan Config Controller.

Batasan

Anda tidak dapat mengubah kolom yang tidak dapat diubah dalam konfigurasi dengan mengubah nilai di sumber tepercaya. Jika Anda perlu memperbarui kolom yang tidak dapat diubah, hapus objek di cluster secara manual. Config Sync kemudian dapat membuat ulang objek dengan nilai kolom baru.

Memilih cara mengatur konfigurasi

Config Sync menggunakan sumber tepercaya untuk penyimpanan konfigurasi dan kontrol versi. Ada dua format berbeda yang dapat Anda pilih untuk sumber tepercaya; tidak terstruktur dan hierarkis.

Format sumber tidak terstruktur memungkinkan Anda mengatur konfigurasi dengan cara apa pun yang paling nyaman. Format ini dapat sangat berguna jika Anda mengatur atau membuat konfigurasi menggunakan alat seperti Kustomize, kpt, atau Helm. Untuk contoh cara mengatur konfigurasi, lihat Contoh format untuk repositori tidak terstruktur.

Format sumber hierarkis, atau terstruktur, memisahkan konfigurasi ke dalam kategori yang berbeda untuk membantu Anda mengatur konfigurasi. Kategorinya adalah konfigurasi sistem, metadata cluster, konfigurasi level cluster, dan konfigurasi namespace. Untuk mengetahui informasi selengkapnya tentang format sumber hierarkis, lihat Struktur repo hierarkis.

Format tidak terstruktur direkomendasikan untuk sebagian besar pengguna. Selain itu, saat mengonfigurasi objek RepoSync, Anda harus menggunakan format sumber yang tidak terstruktur.

Fitur yang didukung untuk format hierarkis dan tidak terstruktur

Tabel berikut menyoroti perbedaan antara format tidak terstruktur dan hierarkis:

Fitur Format tidak terstruktur (direkomendasikan) Format hierarkis
Digunakan sebagai format untuk objek RootSync atau sumber tepercaya pusat Didukung Didukung
Digunakan sebagai format untuk objek RepoSync Didukung Tidak didukung
ClusterSelector Didukung Didukung
NamespaceSelector Didukung Didukung
Perintah nomos hydrate Didukung dengan flag --source-format=unstructured Didukung
Perintah nomos init Tidak didukung Didukung
Perintah nomos vet Didukung dengan flag --source-format=unstructured Didukung
Semua perintah nomos lainnya Didukung Didukung
Namespace abstrak Tidak didukung Didukung
Repo objek Tidak didukung Didukung
Objek HierarchyConfig Tidak didukung Didukung

Kapan harus menambahkan konfigurasi ke sumber

Jika membuat format tidak terstruktur, Anda dapat mulai menambahkan konfigurasi ke format tersebut segera setelah dibuat. Jika Anda membuat format hierarkis, gunakan perintah nomos init untuk melakukan inisialisasi sumber tepercaya, atau buat struktur direktori secara manual.

Direktori kosong tidak dapat di-commit ke repositori Git, jadi sebelum mengonfigurasi Config Sync, Anda harus membuat konfigurasi dan menambahkannya ke repositori.

Setelah membuat sumber tepercaya dan menambahkan konfigurasi ke dalamnya, gunakan perintah nomos vet untuk memverifikasi struktur sumber tepercaya dan memeriksa sintaksis serta validitas konfigurasi Anda.

Mengonfigurasi Config Sync untuk membaca dari sumber tepercaya

Setelah membuat sumber tepercaya dan menempatkan konfigurasi ke dalamnya, Anda dapat mengonfigurasi Config Sync untuk membaca dari sumber tersebut. Setelah Anda menyelesaikan langkah ini, Config Sync akan menyinkronkan konfigurasi dari sumber tepercaya ke cluster Anda.

Anda mengonfigurasi lokasi sumber tepercaya saat menginstal Config Sync, dan Anda dapat mengedit konfigurasi Config Sync nanti. Selain lokasi sumber tepercaya, Anda dapat menentukan cabang atau subdirektori yang akan dipantau, jika sumber memiliki konten selain konfigurasi.

Jika Anda menggunakan format hierarkis, dan menginstal Config Sync secara manual dengan kubectl, jangan tempatkan konfigurasi Operator di direktori system/, atau direktori lain yang dicadangkan seperti cluster/ atau namespaces/. Menempatkan konfigurasi di salah satu direktori yang direservasi menyebabkan nomos vet gagal dan mencatat error seperti KNV1033: IllegalSystemResourcePlacementError, KNV1038: IllegalKindInNamespacesError, atau KNV1039: IllegalKindInClusterError.

Anda dapat memberikan akses kepada orang-orang ke sumber tepercaya deployment tim produk tertentu. Namun, saat Anda memberikan akses kepada seseorang ke sumber tepercaya deployment, orang tersebut juga akan diberi RBAC yang sama dengan rekonsiliator yang berjalan untuk sumber tepercaya tersebut.

Untuk mengonfigurasi autentikasi dan otorisasi antara Config Sync dan sumber tepercaya, lihat langkah penginstalan tentang mengonfigurasi Secret git-creds.

Mengabaikan mutasi objek

Jika tidak ingin Config Sync mempertahankan status objek di cluster setelah objek tersebut ada, Anda dapat menambahkan anotasi client.lifecycle.config.k8s.io/mutation: ignore ke objek yang ingin Anda abaikan mutasinya oleh Config Sync.

Untuk menggunakan anotasi, Anda harus mengaktifkan RootSync dan RepoSync API.

Contoh berikut menunjukkan cara menambahkan anotasi ke objek:

metadata:
  annotations:
    client.lifecycle.config.k8s.io/mutation: ignore 

Anda tidak dapat mengubah anotasi ini secara manual pada objek terkelola di cluster.

Langkah selanjutnya