Menambahkan konfigurasi ke sumber tepercaya

Halaman ini menjelaskan cara menambahkan dan mengatur konfigurasi yang disimpan dalam sumber ketepatan.

Tentang konfigurasi

Config Sync didesain untuk cluster operator yang mengelola banyak cluster. Anda dapat memastikan bahwa klaster Anda memenuhi standar kepatuhan dan bisnis dengan membiarkan Config Sync mengelola namespace, Roles, RoleBinding, ResourceQuotas, dan objek Kubernetes penting lainnya, di seluruh armada Anda.

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

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

Batasan

Anda tidak dapat mengubah kolom yang tidak dapat diubah dalam konfigurasi dengan mengubah nilai di kolom yang sesungguhnya. Jika Anda perlu memperbarui kolom yang tidak dapat diubah, hapus secara manual di cluster yang sama. Config Sync kemudian dapat membuat ulang objek dengan nilai {i>field<i} baru.

Pilih cara mengatur konfigurasi Anda

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

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

Format sumber hierarkis, atau terstruktur, memisahkan konfigurasi menjadi beberapa kategori untuk membantu Anda mengatur konfigurasi. Kategorinya adalah sistem konfigurasi, metadata cluster, konfigurasi tingkat cluster, dan namespace konfigurasi Anda. Untuk informasi selengkapnya tentang format sumber hierarkis, lihat Struktur repositori hierarki.

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

Fitur yang didukung untuk format tidak terstruktur dan hierarkis

Tabel berikut menunjukkan perbedaan antara struktur bisnis tidak terstruktur dan format hierarkis:

Fitur Format tidak terstruktur (direkomendasikan) Format hierarkis
Digunakan sebagai format untuk objek RootSync atau sumber tepercaya utama 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 menambahkan konfigurasi ke sumber

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

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

Setelah Anda membuat sumber kebenaran dan menambahkan konfigurasi ke dalamnya, gunakan Perintah nomos vet untuk memverifikasi struktur sumber kebenaran Anda dan memeriksa sintaks dan validitas konfigurasi standar.

Mengonfigurasi Config Sync untuk membaca dari sumber tepercaya

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

Anda mengonfigurasi lokasi sumber kebenaran saat menginstal Config Sync, dan Anda dapat mengedit konfigurasi Config Sync nanti. Selain pasal lokasi sumber tepercaya, Anda dapat menentukan cabang atau subdirektori untuk perhatikan, jika sumbernya memiliki konten selain konfigurasi.

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

Anda dapat memberi pengguna akses ke sumber tepercaya deployment tim produk tertentu. Namun, jika Anda memberi seseorang akses ke sumber deployment yang tepercaya, orang tersebut juga diberikan RBAC yang sama seperti rekonsiliasi yang berjalan untuk sumber yang sesungguhnya.

Untuk mengonfigurasi otentikasi dan otorisasi antara Config Sync dan sumber yang terpercaya, lihat langkah instalasi tentang mengonfigurasi Secret git-creds.

Abaikan mutasi objek

Jika Anda tidak ingin Config Sync mempertahankan status objek dalam setelah ada, Anda dapat menambahkan anotasi client.lifecycle.config.k8s.io/mutation: ignore ke objek yang Anda ingin Config Sync mengabaikan mutasi.

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

Contoh berikut menunjukkan cara menambahkan anotasi ke sebuah 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