Konfigurasikan pengaturan CD Argo - Amazon EKS

View a markdown version of this page

Konfigurasikan pengaturan CD Argo - Amazon EKS

Bantu meningkatkan halaman ini

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih GitHub tautan Edit halaman ini di yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Konfigurasikan pengaturan CD Argo

Kemampuan EKS untuk CD Argo memberikan pengalaman Argo CD yang dikelola sepenuhnya. Upstream Argo CD menawarkan banyak pengaturan dan fitur opsional, dan kemampuan mendukung sebagian dari mereka. Untuk pengaturan yang didukung, Anda mengkonfigurasinya dengan cara yang sama seperti CD Argo hulu, melalui cluster argocd-cm ConfigMap Anda. Kemampuan membaca bidang yang didukung dari itu ConfigMap dan menerapkannya ke instance CD Argo yang dikelola.

Bagian berikut menjelaskan cara mengonfigur argocd-cm ConfigMap asi pengaturan yang didukung.

Prasyarat

Sebelum Anda mengkonfigurasi pengaturan CD Argo, Anda harus memiliki:

  • Cluster EKS dengan kemampuan CD Argo dibuat (lihatMembuat kemampuan Argo CD)

  • Namespace dikonfigurasi untuk Argo CD dalam kemampuan (secara default, namespace) argocd

  • kubectlCLI dikonfigurasi untuk berkomunikasi dengan cluster Anda

Konfigurasikan argocd-cm ConfigMap

Untuk mengkonfigurasi pengaturan CD Argo yang didukung, buat ConfigMap nama argocd-cm di cluster Anda. Kemampuan terkelola membaca pengaturan yang didukung dari ini ConfigMap dan menerapkannya ke instance CD Argo yang dikelola. Untuk pengaturan yang didukung kemampuan dan cara menerapkannya, lihatPengaturan yang didukung.

Buat ConfigMap dengan persyaratan berikut:

  • Beri nama ConfigMap argocd-cm.

  • Buat di namespace yang dikonfigurasi untuk Argo CD dalam kemampuan (namespace yang Anda tetapkan dalam konfigurasi CD Argo saat Anda membuat kemampuan). Secara default, ini adalah argocd namespace.

  • Terapkan labelnyaapp.kubernetes.io/part-of: argocd. Label ini diperlukan, cocok dengan perilaku CD Argo hulu.

  • Gunakan format bidang dan kunci yang sama dengan CD Argo hulu.

Contoh berikut menunjukkan ConfigMap struktur, dengan pengaturan yang menampilkan spanduk di Argo CD UI. Tambahkan pengaturan lain yang didukung data di bawah dengan cara yang sama.

apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: ui.bannercontent: "Production cluster"
penting

A ConfigMap bukanlah toko yang aman. Jangan menaruh rahasia, kredenSIAL, atau informasi sensitif lainnya di dalamnya argocd-cm ConfigMap.

Bagaimana kemampuan menerapkan pengaturan Anda

Anda mengkonfigurasi Argo CD dengan membuat argocd-cm ConfigMap cluster Anda sendiri. Kemampuan menerapkan pengaturan yang didukung dari instans CD Argo yang dikelola Anda ConfigMap ke Anda. Ini hanya menerapkan pengaturan yang didukung, dan mengabaikan bidang atau fitur lain yang Anda tetapkan. Pengaturan apa pun yang tidak tercantum di Pengaturan yang didukung tidak didukung dan tidak berpengaruh.

Kemampuan memvalidasi nilai yang Anda tetapkan. Jika nilai tidak valid atau cacat, kemampuan mengabaikan nilai itu dan terus berjalan dengan konfigurasi default untuk pengaturan tersebut. Kesalahan dalam Anda ConfigMap tidak merusak instance CD Argo yang dikelola Anda.

catatan

Kemampuan menerapkan konfigurasi dari argocd-cm ConfigMap dalam cluster Anda. Setiap kepala sekolah dengan akses tulis ke ini ConfigMap dapat mengubah konfigurasi instance CD Argo terkelola Anda. Kontrol akses berbasis peran (RBAC) Kubernetes cluster Anda mengatur akses ke ConfigMap, bukan izin IAM yang mengontrol sumber daya kemampuan. Sebagai praktik terbaik keamanan, berikan izin untuk memodifikasi objek di namespace CD Argo hanya untuk pengguna tepercaya dan akun layanan. Karena Kubernetes RBAC mencakup izin berdasarkan jenis sumber daya, Anda masih dapat memberikan akses yang dibutuhkan pengguna lain. Misalnya, Anda dapat mengizinkan pengembang untuk membuat dan mengelola Aplikasi tetapi tidak memodifikasi ConfigMaps. Ini mencegah mereka mengubah argocd-cm konfigurasi.

Untuk informasi selengkapnya tentang model tanggung jawab bersama, Kubernetes RBAC, dan isolasi namespace untuk kemampuan CD Argo, lihat. Pertimbangan keamanan untuk Kemampuan EKS Untuk mengontrol akses dalam Argo CD, lihatKonfigurasikan izin CD Argo.

Pengaturan yang didukung

Bagian berikut mencantumkan argocd-cm pengaturan yang didukung kemampuan terkelola, dikelompokkan berdasarkan kategori. Setiap pengaturan menggunakan kunci dan format yang sama dengan CD Argo hulu. Kolom Bagaimana nilai Anda diterapkan setiap tabel menunjukkan apakah nilai Anda ditambahkan ke atau mengesampingkan konfigurasi default kemampuan. Untuk deskripsi lengkap setiap pengaturan, lihat ConfigMap referensi argocd-cm di situs web dokumentasi Argo CD.

Antarmuka pengguna

Pengaturan ini menyesuaikan UI CD Argo.

Pengaturan Deskripsi Bagaimana nilai Anda diterapkan

ui.bannercontent

Teks untuk spanduk yang ditampilkan di seluruh UI, seperti pengenal lingkungan atau pemberitahuan pemeliharaan.

Menimpa

ui.bannerurl

URL yang ditautkan ke spanduk, seperti runbook atau halaman wiki.

Menimpa

ui.bannerpermanent

Setel true untuk mencegah pengguna menolak spanduk.

Menimpa

ui.bannerposition

Dimana spanduk muncul:top,bottom, atauboth.

Menimpa

ui.cssurl

URL file CSS khusus untuk branding atau styling. CSS berjalan di browser Anda.

Menimpa

Pengaturan sumber daya

Pengaturan ini mengontrol bagaimana kemampuan menonton, membandingkan, dan menampilkan sumber daya yang dikelola Argo CD.

Pengaturan Deskripsi Bagaimana nilai Anda diterapkan

resource.customizations.ignoreDifferences.<group>_<kind>

Bidang yang harus diabaikan ketika CD Argo membandingkan Git dengan cluster untuk jenis sumber daya, seperti jumlah replika yang dikelola oleh Horizontal Pod Autoscaler.

Menambahkan

resource.customizations.ignoreDifferences.all

Bidang yang harus diabaikan saat membandingkan Git dengan cluster, diterapkan ke semua jenis sumber daya.

Menambahkan

resource.customizations.ignoreResourceUpdates.<group>_<kind>

Bidang yang diabaikan Argo CD saat memutuskan apakah acara pembaruan harus memicu rekonsiliasi, yang mengurangi beban. Peristiwa masih terjadi, dan Argo CD mengabaikan hanya perubahan pada bidang ini.

Menambahkan

resource.customizations.ignoreResourceUpdates.all

Bidang yang diabaikan Argo CD saat memproses peristiwa pembaruan, diterapkan ke semua jenis sumber daya.

Menambahkan

resource.customizations.knownTypeFields.<group>_<kind>

Jenis bidang (daftar, peta, atau primitif) untuk Sumber Daya Kustom, sehingga Argo CD menghitung perbedaan yang akurat alih-alih menunjukkan penggantian seluruh bidang.

Menambahkan

resource.customizations.health.<group>_<kind>

Pemeriksaan kesehatan khusus untuk jenis sumber daya, didefinisikan sebagai skrip Lua. Kemampuan ini mencakup pemeriksaan kesehatan bawaan untuk sumber daya ACK dan kro. Lihat Pemeriksaan kesehatan khusus.

Menimpa

resource.exclusions

Jenis sumber daya yang tidak ditonton Argo CD, yang meningkatkan kinerja untuk jenis churn tinggi.

Menambahkan

resource.inclusions

Jenis sumber daya yang ditonton Argo CD. Saat diatur, Argo CD hanya menonton jenis yang terdaftar.

Menambahkan

resource.compareoptions

Opsi yang mengontrol bagaimana Argo CD menghitung perbedaan, seperti. ignoreAggregatedRoles

Menimpa

resource.respectRBAC

Apakah pengontrol hanya menonton sumber daya yang memiliki izin RBAC untuk dibaca. Mener normal ima ataustrict.

Menimpa

resource.customLabels

Label sumber daya tambahan untuk ditampilkan dalam tampilan sumber daya UI.

Menimpa

resource.includeEventLabelKeys

Label dari Aplikasi dan Proyek untuk disalin ke peristiwa Kubernetes yang dihasilkan CD Argo.

Menimpa

resource.excludeEventLabelKeys

Label yang akan dikecualikan dari peristiwa Kubernetes yang dihasilkan CD Argo.

Menimpa

resource.sensitive.mask.annotations

Anotasi untuk menutupi saat UI atau CLI menampilkan Rahasia.

Menimpa

Pengaturan repositori dan alat

Pengaturan ini mengontrol alat manifes yang digunakan Argo CD untuk merender manifes Anda.

Pengaturan Deskripsi Bagaimana nilai Anda diterapkan

kustomize.enable

Apakah Kustomize diaktifkan sebagai tipe sumber manifes.

Menimpa

helm.enable

Apakah Helm diaktifkan sebagai tipe sumber manifes.

Menimpa

jsonnet.enable

Apakah Jsonnet diaktifkan sebagai tipe sumber manifes.

Menimpa

kustomize.buildOptions

Bendera baris perintah global diteruskan ke setiapkustomize build. Kemampuan mendukung subset bendera. Lihat Bendera Kustomize.buildOptions yang didukung.

Menimpa

Bendera Kustomize.buildOptions yang didukung

Untukkustomize.buildOptions, kemampuan menyaring nilai Anda ke satu set flag yang aman dan didukung. Itu tidak mendukung flag yang memungkinkan build membaca file arbitrer atau menjalankan kode arbitrer. Ini menjatuhkan tanda yang tidak didukung atau nilai yang tidak valid secara individual dan menerapkan tanda yang didukung yang tersisa. Anda dapat menulis bendera dalam --flag=value bentuk --flag value atau.

Bendera Nilai yang didukung Catatan

--reorder

legacy, none

Mengubah urutan YAML yang dirender saja.

--enable-helm

Boolean

Menjalankan biner Helm yang dikelola dari jalur.

--enable-managedby-label

Boolean

Menambahkan label saja.

Kemampuan menjatuhkan bendera lain, termasuk--load-restrictor,--enable-exec, dan--enable-alpha-plugins.

Pemeriksaan kesehatan khusus

Argo CD menilai kesehatan sumber daya yang disebarkannya. Untuk sumber daya Kubernetes standar seperti Deployments and Services, Argo CD memiliki logika kesehatan bawaan. Untuk Sumber Daya Kustom yang tidak dikenali oleh Argo CD, tidak memiliki logika kesehatan bawaan dan tidak melaporkan status kesehatan.

Ketika Sumber Daya Kustom tidak memiliki pemeriksaan kesehatan, Argo CD tidak melaporkan kesehatan untuk itu dan mengecualikannya dari kesehatan Aplikasi secara keseluruhan. Akibatnya, Aplikasi dapat melaporkan Healthy bahkan ketika sumber dayanya masih disediakan atau gagal. Ini juga berarti bahwa gelombang sinkronisasi dapat maju sebelum sumber daya tersebut siap, karena urutan sinkronisasi tergantung pada kesehatan yang dilaporkan.

Dengan pemeriksaan kesehatan khusus, Anda dapat menentukan logika kesehatan untuk Sumber Daya Kustom Anda, sehingga CD Argo melaporkan penyebaran kesehatan dan urutan yang akurat dengan benar. Anda menentukan pemeriksaan kesehatan khusus dengan cara yang sama seperti yang Anda lakukan di CD Argo hulu, menggunakan kunci konfigurasi yang sama. Skrip hulu dan contoh komunitas yang ada bekerja dengan Kemampuan EKS untuk CD Argo tanpa modifikasi.

Built-in pemeriksaan kesehatan untuk ACK dan kro

Kapabilitas EKS untuk CD Argo mencakup pemeriksaan kesehatan bawaan untuk sumber daya Peng AWS ontrol untuk Kubernetes (ACK) dan kro (Kube Resource Orchestrator). Sumber daya ini melaporkan kesehatan yang akurat tanpa konfigurasi tambahan.

Untuk mengubah cara kemampuan menilai kesehatan sumber daya ACK atau kro, Anda dapat menentukan pemeriksaan kesehatan khusus untuk jenis sumber daya tersebut. Pemeriksaan kesehatan khusus yang Anda tetapkan untuk jenis sumber daya menggantikan pemeriksaan kesehatan bawaan untuk jenis tersebut.

Tulis pemeriksaan kesehatan khusus

Tentukan pemeriksaan kesehatan khusus dengan menambahkan skrip Lua ke argocd-cm ConfigMap, menggunakan kunci dalam format berikut:

resource.customizations.health.<group>_<kind>

Ganti <group> dengan grup API dari Sumber Daya Kustom dan <kind> dengan jenisnya. Misalnya, kunci untuk Sumber Daya Kustom dengan grup API example.com dan jenisnya Database adalahresource.customizations.health.example.com_Database.

Script Lua memiliki akses ke objek sumber daya melalui obj variabel global. Skrip harus mengembalikan tabel dengan status bidang yang disetel ke salah satu dariHealthy,Progressing,Degraded, atauSuspended. Script juga dapat mengatur message bidang opsional untuk memberikan pesan status deskriptif.

Contoh berikut ConfigMap mendefinisikan pemeriksaan kesehatan untuk Sumber Daya Database Kustom. Skrip melaporkan sumber daya seperti Healthy saat fase statusnyaReady, dan Progressing sebaliknya:

apiVersion: v1 kind: ConfigMap metadata: name: argocd-cm namespace: argocd labels: app.kubernetes.io/part-of: argocd data: resource.customizations.health.example.com_Database: | hs = {} hs.status = "Progressing" hs.message = "Waiting for the resource to become ready" if obj.status ~= nil then if obj.status.phase == "Ready" then hs.status = "Healthy" hs.message = "Database is ready" end end return hs

Untuk informasi selengkapnya tentang format skrip pemeriksaan kesehatan, daftar pemeriksaan kesehatan bawaan, dan contoh komunitas yang dapat Anda adaptasi, lihat Resource Health di situs dokumentasi Argo CD.

Keselamatan dan keterbatasan

Dengan kemampuan terkelola, skrip pemeriksaan kesehatan kustom Anda berjalan dalam komputasi terisolasi dan dikelola sepenuhnya. Lingkungan eksekusi diisolasi per kemampuan dan tidak memiliki akses ke data cluster Anda atau ke AWS API. Anda tidak menyediakan, menambal, atau mengoperasikan bagian mana pun dari lingkungan eksekusi.

Perhatikan hal berikut saat Anda menulis pemeriksaan kesehatan khusus untuk digunakan dengan Kemampuan EKS:

  • Pustaka Lua standar tidak tersedia. useOpenLibsOpsi ini selalu dinonaktifkan, yang merupakan default di hulu Argo CD. Skrip tidak dapat mengakses sistem operasi atau sistem file. Jika Anda memigrasikan skrip dari CD Argo yang dikelola sendiri yang bergantung pada pustaka Lua standar, skrip mungkin tidak berjalan dengan cara yang sama dalam kemampuan. Sebaiknya Anda menguji skrip pemeriksaan kesehatan Anda di lingkungan pengembangan sebelum menggunakannya dalam produksi.

Jika evaluasi kesehatan sementara tidak tersedia, laporan kemampuan mempengaruhi Sumber Daya Khusus sebagai Progressing bukannya menghapus status kesehatannya. Ini membuat sumber daya yang terpengaruh terlihat dalam kesehatan Aplikasi sampai evaluasi pulih.

Verifikasi pemeriksaan kesehatan khusus

Setelah Anda menerapkan atau memperbarui argocd-cm ConfigMap, konfirmasikan bahwa pemeriksaan kesehatan aktif:

  1. Di Argo CD UI, pilih Aplikasi yang menyertakan Sumber Daya Kustom dari jenis yang Anda tentukan pemeriksaan kesehatan. Konfirmasikan bahwa sumber daya melaporkan status kesehatan yang dikembalikan skrip Anda. Atau, jalankan argocd app get <application-name> dan tinjau status kesehatan sumber daya.

  2. Jika sumber daya tidak melaporkan kesehatan yang diharapkan, verifikasi yang berikut ini:

    • Nam ConfigMap anya argocd-cm dan berada di namespace yang dikonfigurasi untuk Argo CD dalam kemampuan.

    • Ini ConfigMap memiliki app.kubernetes.io/part-of: argocd label yang diperlukan.

    • Kunci pemeriksaan kesehatan menggunakan yang benar <group>_<kind> untuk jenis sumber daya.