Halaman ini menjelaskan cara mengonfigurasi lebih dari satu cakupan root dan namespace dengan cakupan sumber tepercaya dengan membuat Objek RootSync dan RepoSync.
Memiliki sumber tepercaya memungkinkan Anda menyinkronkan cakupan cluster dan konfigurasi cakupan namespace. Sumber tepercaya dapat menggunakan kredensial tingkat admin untuk memberlakukan kebijakan pada namespace aplikasi dan mengganti perubahan lokal yang melenceng dari status yang Anda deklarasikan dalam konfigurasi. Administrator pusat biasanya mengatur sumber kebenaran.
Sumber tepercaya cakupan namespace bersifat opsional dan dapat berisi konfigurasi cakupan namespace disinkronkan ke namespace tertentu di seluruh cluster. Anda dapat mendelegasikan pengaturan dan mengontrol sumber tepercaya cakupan namespace kepada pengguna non-administratif. Meskipun Config Sync otomatis mendeteksi perubahan dari sumber kebenaran, Anda dapat tambahkan lapisan tambahan deteksi penyimpangan dengan menambahkan webhook penerimaan ke sumber tepercaya cakupan namespace. Untuk detail tentang cara melakukannya, lihat Mencegah penyimpangan konfigurasi.
Sebelum memulai
- Buat, atau pastikan Anda memiliki akses ke, sumber tepercaya tidak terstruktur yang dapat berisi konfigurasi yang disinkronkan dengan Config Sync. Config Sync mendukung Repositori Git, diagram Helm, dan image OCI sebagai sumber tepercaya. Sumber tepercaya cakupan namespace harus menggunakan format tidak terstruktur.
- Buat, atau pastikan Anda memiliki akses ke, cluster yang ada di edisi Google Kubernetes Engine (GKE) Enterprise platform dan versi yang didukung serta memenuhi persyaratan untuk Config Sync.
Batasan
NamespaceSelectors
(termasuk anotasi yang mengarah ke Pemilih) hanya berfungsi di sumber root yang sesungguhnya.- Jika Anda
menginstal Config Sync menggunakan Konsol Google Cloud atau Google Cloud CLI,
Config Sync otomatis membuat objek RootSync bernama
root-sync
. Oleh karena itu, Anda tidak dapat memberi nama objek RootSync apa pun denganroot-sync
.
Pilih metode konfigurasi yang Anda inginkan
Pilih salah satu dari dua metode untuk mengonfigurasi sumber Anda:
Mengontrol sumber di sumber root tepercaya. Metode ini memusatkan semua konfigurasi sumber kebenaran di kebenaran, memungkinkan administrator pusat untuk mengontrol pengaturan sepenuhnya.
Mengontrol sumber dengan Kubernetes API. Gunakan metode ini jika Anda ingin mendelegasikan kontrol atas sumber kebenaran ke pemilik yang berbeda.
Mengontrol sumber di sumber tepercaya
Mengontrol sumber root di sumber tepercaya (root source)
Config Sync mendukung sinkronisasi dari lebih dari satu sumber kebenaran. Pusat administrator dapat menggunakan sumber tepercaya untuk mengelola semua sumber lainnya. Karena Config Sync mengelola objek RootSync, metode ini mencegah perubahan pada konfigurasi RootSync di cluster.
Untuk menggunakan metode ini, selesaikan tugas-tugas berikut:
Simpan salah satu manifes berikut sebagai
root-sync.yaml
. Menggunakan manifes yang sesuai dengan jenis sumber untuk konfigurasi Anda.Git
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: git sourceFormat: ROOT_FORMAT git: repo: ROOT_REPOSITORY revision: ROOT_REVISION branch: ROOT_BRANCH dir: ROOT_DIRECTORY auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL secretRef: name: ROOT_SECRET_NAME noSSLVerify: ROOT_NO_SSL_VERIFY caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Ganti kode berikut:
ROOT_SYNC_NAME
: menambahkan nama RootSync .ROOT_FORMAT
: tambahkanunstructured
untuk menggunakan repositori tidak terstruktur atau tambahkanhierarchy
untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Bidang ini bersifat opsional dan nilai defaultnya adalahhierarchy
. Sebaiknya tambahkanunstructured
karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.ROOT_REPOSITORY
: tambahkan URL repositori Git ke Anda gunakan sebagai repositori {i>root<i}. Anda dapat memasukkan URL menggunakan HTTPS atau protokol SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
menggunakan protokol HTTPS. Kolom ini wajib diisi.ROOT_REVISION
: menambahkan revisi Git (tag atau ) yang akan disinkronkan. Bidang ini bersifat opsional dan nilai defaultnya adalahHEAD
. Mulai dari Config Sync versi 1.17.0, Anda juga dapat tentukan nama cabang di kolomrevision
. Saat menggunakan {i>hash <i}di versi 1.17.0 atau yang lebih baru, itu harus berupa {i>hash<i}, dan bukan bentuk yang disingkat.ROOT_BRANCH
: menambahkan cabang repositori yang akan disinkronkan. Kolom ini bersifat opsional dan nilai default-nya adalahmaster
. Mulai dari Config Sync versi 1.17.0, sekarang sebaiknya gunakan kolomrevision
untuk menentukan nama cabang kesederhanaan. Jika kolomrevision
dan kolombranch
keduanya tertentu,revision
akan lebih diprioritaskan daripadabranch
.ROOT_DIRECTORY
: menambahkan jalur di repositori Git untuk direktori {i>root<i} yang berisi konfigurasi yang ingin Anda sinkronkan tempat mesin terhubung. Bidang ini bersifat opsional dan defaultnya adalah direktori utama (/
) repositori.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasissh
: Menggunakan pasangan kunci SSHcookiefile
: Menggunakancookiefile
token
: Gunakan tokengcpserviceaccount
: Menggunakan akun layanan Google untuk mengakses Cloud Source Repositories.gcenode
: Gunakan akun layanan Google untuk mengakses dan Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.
Untuk informasi lebih lanjut tentang jenis autentikasi ini, lihat Memberikan akses hanya baca Config Sync ke Git.
Kolom ini wajib diisi.
ROOT_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: tambahkan nama Secret Anda. Jika ini isian diatur, Anda harus menambahkan kunci publik Rahasia ke penyedia Git. Kolom ini bersifat opsional.ROOT_NO_SSL_VERIFY
: Untuk menonaktifkan verifikasi sertifikat SSL, setel kolom ini ketrue
. Nilai defaultnya adalahfalse
.ROOT_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Git Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Manifes ini membuat objek
RootSync
yang menggunakan Git sebagai sumber.OCI
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: oci sourceFormat: ROOT_FORMAT oci: image: ROOT_IMAGE dir: ROOT_DIRECTORY auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Ganti kode berikut:
ROOT_SYNC_NAME
: menambahkan nama RootSync .ROOT_FORMAT
: tambahkanunstructured
untuk menggunakan repositori tidak terstruktur atau tambahkanhierarchy
untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Bidang ini bersifat opsional dan nilai defaultnya adalahhierarchy
. Sebaiknya tambahkanunstructured
karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.ROOT_IMAGE
: URL gambar OCI yang akan digunakan sebagai repositori root, misalnyaLOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Secara default, gambar diambil dari taglatest
, tetapi Anda dapat menarik gambar denganTAG
atauDIGEST
sebagai gantinya. TentukanTAG
atauDIGEST
diPACKAGE_NAME
:- Untuk menarik oleh
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Untuk menarik oleh
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Untuk menarik oleh
ROOT_DIRECTORY
: menambahkan jalur di repositori ke direktori {i>root<i} yang berisi konfigurasi yang ingin Anda sinkronkan tempat mesin terhubung. Bidang ini bersifat opsional dan defaultnya adalah direktori utama (/
) repositori.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasigcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
ROOT_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia OCI Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.
Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Manifes ini membuat objek
RootSync
yang menggunakan image OCI sebagai sumber.Helm
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: helm sourceFormat: ROOT_FORMAT helm: repo: ROOT_HELM_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL secretRef: name: ROOT_SECRET_NAME caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Ganti kode berikut:
ROOT_SYNC_NAME
: menambahkan nama RootSync .ROOT_FORMAT
: tambahkanunstructured
untuk menggunakan repositori tidak terstruktur atau tambahkanhierarchy
untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Bidang ini bersifat opsional dan nilai defaultnya adalahhierarchy
. Sebaiknya tambahkanunstructured
karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.ROOT_HELM_REPOSITORY
: URL Helm repositori yang akan digunakan sebagai repositori root. Anda dapat memasukkan URL menggunakan protokol HTTPS atau SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
menggunakan HTTPS dan berperforma tinggi karena merupakan protokol biner. Kolom ini wajib diisi.HELM_CHART_NAME
: tambahkan nama Helm Anda diagram. Kolom ini wajib diisi.HELM_CHART_VERSION
: versi diagram Anda. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, versi terbaru akan dataHELM_RELEASE_NAME
: nama rilis Helm. Kolom ini bersifat opsional.HELM_RELEASE_NAMESPACE
: namespace target untuk suatu rilis. Perintah ini hanya menetapkan namespace untuk resource yang berisinamespace: {{ .Release.Namespace }}
dalam templatenya. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, namespace defaultconfig-management-system
akan digunakan.HELM_INCLUDE_CRDS
: ditetapkan ketrue
jika Anda mau template Helm untuk juga menghasilkan CustomResourceDefinition. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, defaultnya adalahfalse
dan CRD tidak akan dibuat.VALUE
: nilai yang akan digunakan, bukan nilai default yang menyertai diagram Helm. Format kolom ini dengan cara yang sama seperti file value.yaml diagram helm. Kolom ini bersifat opsional.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasitoken
: Gunakan nama pengguna dan sandi untuk mengakses Helm pribadi repositori resource.gcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
ROOT_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: tambahkan nama Secret Anda jikatoken
adalahROOT_AUTH_TYPE
. Kolom ini bersifat opsional.ROOT_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Helm Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.
Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Manifes ini membuat objek
RootSync
yang menggunakan Helm sebagai sumber.Lakukan perubahan pada sumber tepercaya:
git add . git commit -m 'Setting up a new root source of truth.' git push
Anda dapat mengulangi langkah-langkah di atas jika perlu mengonfigurasi beberapa sumber root. Anda juga dapat menyimpan konfigurasi beberapa objek RootSync di root yang disinkronkan oleh objek RootSync lain, untuk mengelola beberapa RootSync secara terpusat dengan gaya GitOps.
Mengontrol objek cakupan namespace dalam sumber tepercaya root
Sumber tepercaya cakupan namespace dapat dikelola oleh sumber tepercaya root. Karena sumber cakupan namespace dikelola oleh Config Sync, metode ini mencegah perubahan lokal apa pun pada definisi sumber cakupan namespace.
Untuk menggunakan metode ini, selesaikan tugas-tugas berikut:
Di sumber root tepercaya, deklarasikan konfigurasi
namespace
:# ROOT_SOURCE/namespaces/NAMESPACE/namespace.yaml apiVersion: v1 kind: Namespace metadata: name: NAMESPACE
Ganti
NAMESPACE
dengan nama untuk namespace Anda.Di sumber root tepercaya, buat salah satu
RepoSync
berikut objek di namespace yang sama. Gunakan manifes yang sesuai dengan sumber untuk konfigurasi Anda:Git
#ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: git # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured git: repo: NAMESPACE_REPOSITORY revision: NAMESPACE_REVISION branch: NAMESPACE_BRANCH dir: "NAMESPACE_DIRECTORY" auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME noSSLVerify: NAMESPACE_NO_SSL_VERIFY caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_REPOSITORY
: tambahkan URL repositori Git ke gunakan sebagai repositori namespace. Anda dapat memasukkan URL menggunakan HTTPS atau protokol SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
penggunaan di protokol HTTPS. Jika Anda tidak memasukkan protokol, URL akan diperlakukan sebagai URL HTTPS. Kolom ini wajib diisi.NAMESPACE_REVISION
: menambahkan revisi Git (tag atau hash) yang akan disinkronkan. Bidang ini bersifat opsional dan nilai defaultnya adalahHEAD
. Mulai dari Config Sync versi 1.17.0, Anda juga dapat tentukan nama cabang di kolomrevision
. Saat menggunakan {i>hash <i}di versi 1.17.0 atau yang lebih baru, itu harus berupa {i>hash<i}, dan bukan bentuk yang disingkat.NAMESPACE_BRANCH
: menambahkan cabang repositori yang akan disinkronkan. Kolom ini bersifat opsional dan nilai default-nya adalahmaster
. Mulai dari Config Sync versi 1.17.0, sekarang sebaiknya gunakan kolomrevision
untuk menentukan nama cabang kesederhanaan. Jika kolomrevision
dan kolombranch
keduanya tertentu,revision
akan lebih diprioritaskan daripadabranch
.NAMESPACE_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasissh
: Menggunakan pasangan kunci SSHcookiefile
: Menggunakancookiefile
token
: Gunakan tokengcpserviceaccount
: Gunakan akun layanan Google untuk mengakses di Cloud Source Repositories.gcenode
: Gunakan akun layanan Google untuk mengakses repositori di dan Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.Untuk informasi lebih lanjut tentang jenis autentikasi ini, lihat Memberikan akses hanya baca Config Sync ke Git.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiNAMESPACE_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: tambahkan nama yang ingin Anda berikan Secret Anda. Kolom ini bersifat opsional.NAMESPACE_NO_SSL_VERIFY
: Untuk menonaktifkan verifikasi sertifikat SSL, setel kolom ini ketrue
. Nilai defaultnya adalahfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Git Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RepoSync.OCI
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: oci # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured oci: image: NAMESPACE_IMAGE dir: NAMESPACE_DIRECTORY auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_IMAGE
: URL gambar OCI yang akan digunakan sebagai sumber namespace, misalnyaLOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Secara default, gambar diambil dari taglatest
, tetapi Anda dapat menarik gambar denganTAG
atauDIGEST
sebagai gantinya. TentukanTAG
atauDIGEST
diPACKAGE_NAME
:- Untuk menarik oleh
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Untuk menarik oleh
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Untuk menarik oleh
NAMESPACE_DIRECTORY
: menambahkan jalur dalam sumber ke direktori {i>root<i} yang berisi konfigurasi yang ingin Anda sinkronkan tempat mesin terhubung. Bidang ini bersifat opsional dan defaultnya adalah direktori utama (/
) sumbernya.NAMESPACE_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasigcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia OCI Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Helm
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: helm # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured helm: repo: NAMESPACE_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_REPOSITORY
: URL Helm repositori yang akan digunakan sebagai repositori root. Anda dapat memasukkan URL menggunakan protokol HTTPS atau SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
menggunakan HTTPS dan berperforma tinggi karena merupakan protokol biner. Kolom ini wajib diisi.HELM_CHART_NAME
: tambahkan nama Helm Anda diagram. Kolom ini wajib diisi.HELM_CHART_VERSION
: versi diagram Anda. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, versi terbaru akan dataHELM_RELEASE_NAME
: nama rilis Helm. Kolom ini bersifat opsional.HELM_RELEASE_NAMESPACE
: namespace target untuk suatu rilis. Perintah ini hanya menetapkan namespace untuk resource yang berisinamespace: {{ .Release.Namespace }}
dalam templatenya. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, namespace defaultconfig-management-system
akan digunakan.HELM_INCLUDE_CRDS
: ditetapkan ketrue
jika Anda mau template Helm untuk juga menghasilkan CustomResourceDefinition. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, defaultnya adalahfalse
dan CRD tidak akan dibuat.VALUE
: nilai yang akan digunakan, bukan nilai default yang menyertai diagram Helm. Format kolom ini dengan cara yang sama sebagai file value.yaml diagram helm. Kolom ini bersifat opsional.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasitoken
: Gunakan nama pengguna dan sandi untuk mengakses Helm pribadi repositori resource.gcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: tambahkan nama Secret Anda jikatoken
adalahROOT_AUTH_TYPE
. Kolom ini bersifat opsional.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Helm Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Jika Anda menggunakan
gcpserviceaccount
sebagai jenis autentikasi dan tidak memiliki Workload Identity Federation for GKE diaktifkan, Anda harus membuat Binding kebijakan IAM antara akun layanan Kubernetes untuk setiap namespace dan akun akun layanan Anda. Lihat Memberikan akses ke Git untuk mendapatkan petunjuk tentang cara membuat binding ini.Di sumber root, deklarasikan konfigurasi
RoleBinding
yang memberikan izin izin akun layananSERVICE_ACCOUNT_NAME
untuk mengelola objek dalam namespace. Config Sync secara otomatis membuat Akun layananSERVICE_ACCOUNT_NAME
saat Konfigurasi RepoSync disinkronkan ke cluster.RoleBinding
dapat merujukRole
dalam namespace yang sama. Sebagai alternatif,RoleBinding
dapat mereferensikanClusterRole
dan mengikatClusterRole
tersebut ke namespaceRoleBinding
. Meskipun Anda harus mematuhi prinsip hak istimewa terendah dengan memberikan izin terperinci keRole
yang ditentukan pengguna, Anda dapat menentukanClusterRole
atau menggunakan peran yang ditampilkan kepada pengguna, dan mereferensikanClusterRole
yang sama dalam beberapaRoleBindings
di namespace yang berbeda.ClusterRole Default
Anda dapat mendeklarasikan
RoleBinding
yang merujuk keClusterRole
default, untuk contoh,admin
atauedit
. Untuk mempelajari lebih lanjut, lihat Peran yang ditampilkan kepada pengguna.# ROOT_REPO/namespaces/NAMESPACE/sync-rolebinding.yaml kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: syncs-repo namespace: NAMESPACE subjects: - kind: ServiceAccount name: SERVICE_ACCOUNT_NAME namespace: config-management-system roleRef: kind: ClusterRole name: CLUSTERROLE_NAME apiGroup: rbac.authorization.k8s.io
Ganti kode berikut:
NAMESPACE
: tambahkan nama namespace Anda.SERVICE_ACCOUNT_NAME
: tambahkan nama akun layanan rekonsiliasi. Jika nama RepoSync adalahrepo-sync
,SERVICE_ACCOUNT_NAME
adalahns-reconciler-NAMESPACE
. Jika tidak, masalahns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
. Misalnya, jika nama RepoSync Anda adalahprod
,SERVICE_ACCOUNT_NAME
akan menjadins-reconciler-NAMESPACE-prod-4
. Bilangan bulat4
digunakan karenaprod
yang berisi 4 karakter.CLUSTERROLE_NAME
: menambahkan nama default ClusterRole.
Peran yang ditentukan pengguna
Anda dapat mendeklarasikan
ClusterRole
atauRole
dengan memberikan daftar yang sesuai untuk setiap resource yang dikelola oleh objekRepoSync
. Hal ini memungkinkan izin yang lebih terperinci. Lihat merujuk ke referensi untuk mengetahui detail selengkapnya.Misalnya,
ClusterRole
atauRole
berikut memberikan izin untuk mengelola objekDeployment
danServiceAccount
.# ROOT_REPO/namespaces/NAMESPACE/sync-role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ROLE_KIND metadata: namespace: NAMESPACE # only set this field for a 'Role' name: RECONCILER_ROLE rules: # Update 'apiGroups' and 'resources' to reference actual resources managed by 'RepoSync'. - apiGroups: ["apps"] resources: ["deployments"] verbs: ["*"] - apiGroups: [""] resources: ["serviceaccounts"] verbs: ["*"]
Untuk mendeklarasikan
RoleBinding
yang merujuk keClusterRole
atauRole
, buat objek berikut.RoleBinding
memberikan izin tambahan untuk mengizinkan Config Sync untuk mengelola resource cakupan namespace untuk pemberianRepoSync
.# ROOT_REPO/namespaces/NAMESPACE/sync-rolebinding.yaml kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: syncs-repo namespace: NAMESPACE subjects: - kind: ServiceAccount name: SERVICE_ACCOUNT_NAME namespace: config-management-system roleRef: kind: ROLE_KIND name: RECONCILER_ROLE apiGroup: rbac.authorization.k8s.io
Ganti kode berikut:
ROLE_KIND
: tetapkanClusterRole
atauRole
.NAMESPACE
: tambahkan nama namespace Anda.SERVICE_ACCOUNT_NAME
: tambahkan nama akun layanan rekonsiliasi. Jika nama RepoSync adalahrepo-sync
,SERVICE_ACCOUNT_NAME
adalahns-reconciler-NAMESPACE
. Jika tidak, masalahns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
. Misalnya, jika nama RepoSync Anda adalahprod
,SERVICE_ACCOUNT_NAME
akan menjadins-reconciler-NAMESPACE-prod-4
. Bilangan bulat4
digunakan karenaprod
yang berisi 4 karakter.RECONCILER_ROLE
: tambahkan namaClusterRole
atauRole
.
Lakukan perubahan pada sumber tepercaya:
git add . git commit -m 'Setting up a new namespace-scoped source of truth.' git push
Jika diperlukan, buat Secret berdasarkan metode otentikasi pilihan Anda. Jika Anda menggunakan
none
sebagai jenis autentikasi, Anda dapat melewati langkah ini.Secret tersebut harus memenuhi persyaratan berikut:
- Buat Secret di namespace yang sama dengan RepoSync.
- Nama Secret harus cocok dengan nama
spec.git.secretRef
yang Anda tentukan dalamrepo-sync.yaml
. - Anda harus menambahkan kunci publik Secret ke penyedia Git.
Untuk memverifikasi konfigurasi, gunakan
kubectl get
pada salah satu objek dalam sumber namespace. Contoh:kubectl get rolebindings -n NAMESPACE
Anda dapat mengulangi langkah-langkah di atas jika perlu mengonfigurasi lebih dari satu sumber dengan cakupan namespace.
Mengontrol sumber cakupan namespace dalam sumber dengan cakupan namespace
Config Sync mendukung sinkronisasi dari lebih dari satu sumber kebenaran cakupan namespace per namespace. Sumber tepercaya cakupan namespace dapat dikelola di sumber kebenaran cakupan namespace di namespace yang sama.
Untuk menggunakan metode ini, selesaikan tugas-tugas berikut:
Di sumber kebenaran cakupan namespace, buat salah satu
RepoSync
berikut objek di namespace yang sama. Gunakan manifes yang sesuai dengan sumber untuk konfigurasi Anda:Git
#ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: git # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured git: repo: NAMESPACE_REPOSITORY revision: NAMESPACE_REVISION branch: NAMESPACE_BRANCH dir: "NAMESPACE_DIRECTORY" auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME noSSLVerify: NAMESPACE_NO_SSL_VERIFY caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_REPOSITORY
: tambahkan URL repositori Git ke gunakan sebagai repositori namespace. Anda dapat memasukkan URL menggunakan HTTPS atau protokol SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
penggunaan di protokol HTTPS. Jika Anda tidak memasukkan protokol, URL akan diperlakukan sebagai URL HTTPS. Kolom ini wajib diisi.NAMESPACE_REVISION
: menambahkan revisi Git (tag atau hash) yang akan disinkronkan. Bidang ini bersifat opsional dan nilai defaultnya adalahHEAD
. Mulai dari Config Sync versi 1.17.0, Anda juga dapat tentukan nama cabang di kolomrevision
. Saat menggunakan {i>hash <i}di versi 1.17.0 atau yang lebih baru, itu harus berupa {i>hash<i}, dan bukan bentuk yang disingkat.NAMESPACE_BRANCH
: menambahkan cabang repositori yang akan disinkronkan. Kolom ini bersifat opsional dan nilai default-nya adalahmaster
. Mulai dari Config Sync versi 1.17.0, sekarang sebaiknya gunakan kolomrevision
untuk menentukan nama cabang kesederhanaan. Jika kolomrevision
dan kolombranch
keduanya tertentu,revision
akan lebih diprioritaskan daripadabranch
.NAMESPACE_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasissh
: Menggunakan pasangan kunci SSHcookiefile
: Menggunakancookiefile
token
: Gunakan tokengcpserviceaccount
: Gunakan akun layanan Google untuk mengakses di Cloud Source Repositories.gcenode
: Gunakan akun layanan Google untuk mengakses repositori di dan Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.Untuk informasi lebih lanjut tentang jenis autentikasi ini, lihat Memberikan akses hanya baca Config Sync ke Git.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiNAMESPACE_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: tambahkan nama yang ingin Anda berikan Secret Anda. Kolom ini bersifat opsional.NAMESPACE_NO_SSL_VERIFY
: Untuk menonaktifkan verifikasi sertifikat SSL, setel kolom ini ketrue
. Nilai defaultnya adalahfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Git Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RepoSync.OCI
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: oci # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured oci: image: NAMESPACE_IMAGE dir: NAMESPACE_DIRECTORY auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_IMAGE
: URL gambar OCI yang akan digunakan sebagai sumber namespace, misalnyaLOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Secara default, gambar diambil dari taglatest
, tetapi Anda dapat menarik gambar denganTAG
atauDIGEST
sebagai gantinya. TentukanTAG
atauDIGEST
diPACKAGE_NAME
:- Untuk menarik oleh
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Untuk menarik oleh
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Untuk menarik oleh
NAMESPACE_DIRECTORY
: menambahkan jalur dalam sumber ke direktori {i>root<i} yang berisi konfigurasi yang ingin Anda sinkronkan tempat mesin terhubung. Bidang ini bersifat opsional dan defaultnya adalah direktori utama (/
) sumbernya.NAMESPACE_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasigcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia OCI Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Helm
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: helm # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured helm: repo: NAMESPACE_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_REPOSITORY
: URL Helm repositori yang akan digunakan sebagai repositori root. Anda dapat memasukkan URL menggunakan protokol HTTPS atau SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
menggunakan HTTPS dan berperforma tinggi karena merupakan protokol biner. Kolom ini wajib diisi.HELM_CHART_NAME
: tambahkan nama Helm Anda diagram. Kolom ini wajib diisi.HELM_CHART_VERSION
: versi diagram Anda. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, versi terbaru akan dataHELM_RELEASE_NAME
: nama rilis Helm. Kolom ini bersifat opsional.HELM_RELEASE_NAMESPACE
: namespace target untuk suatu rilis. Perintah ini hanya menetapkan namespace untuk resource yang berisinamespace: {{ .Release.Namespace }}
dalam templatenya. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, namespace defaultconfig-management-system
akan digunakan.HELM_INCLUDE_CRDS
: ditetapkan ketrue
jika Anda mau template Helm untuk juga menghasilkan CustomResourceDefinition. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, defaultnya adalahfalse
dan CRD tidak akan dibuat.VALUE
: nilai yang akan digunakan, bukan nilai default yang menyertai diagram Helm. Format kolom ini dengan cara yang sama sebagai file value.yaml diagram helm. Kolom ini bersifat opsional.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasitoken
: Gunakan nama pengguna dan sandi untuk mengakses Helm pribadi repositori resource.gcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: tambahkan nama Secret Anda jikatoken
adalahROOT_AUTH_TYPE
. Kolom ini bersifat opsional.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Helm Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Jika Anda menggunakan
gcpserviceaccount
sebagai jenis autentikasi dan tidak memiliki Workload Identity Federation for GKE diaktifkan, Anda harus membuat Binding kebijakan IAM antara akun layanan Kubernetes untuk setiap namespace dan akun akun layanan Anda. Lihat Memberikan akses ke Git untuk mendapatkan petunjuk tentang cara membuat binding ini.Di sumber root, deklarasikan konfigurasi
RoleBinding
yang memberikan izin izin akun layananSERVICE_ACCOUNT_NAME
untuk mengelola objek dalam namespace. Config Sync secara otomatis membuat Akun layananSERVICE_ACCOUNT_NAME
saat Konfigurasi RepoSync disinkronkan ke cluster.RoleBinding
dapat merujukRole
dalam namespace yang sama. Sebagai alternatif,RoleBinding
dapat mereferensikanClusterRole
dan mengikatClusterRole
tersebut ke namespaceRoleBinding
. Meskipun Anda harus mematuhi prinsip hak istimewa terendah dengan memberikan izin terperinci keRole
yang ditentukan pengguna, Anda dapat menentukanClusterRole
atau menggunakan peran yang ditampilkan kepada pengguna, dan mereferensikanClusterRole
yang sama dalam beberapaRoleBindings
di namespace yang berbeda.ClusterRole Default
Anda dapat mendeklarasikan
RoleBinding
yang merujuk keClusterRole
default, untuk contoh,admin
atauedit
. Untuk mempelajari lebih lanjut, lihat Peran yang dilihat pengguna.# ROOT_REPO/namespaces/NAMESPACE/sync-rolebinding.yaml kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: syncs-repo namespace: NAMESPACE subjects: - kind: ServiceAccount name: SERVICE_ACCOUNT_NAME namespace: config-management-system roleRef: kind: ClusterRole name: CLUSTERROLE_NAME apiGroup: rbac.authorization.k8s.io
Ganti kode berikut:
NAMESPACE
: tambahkan nama namespace Anda.SERVICE_ACCOUNT_NAME
: tambahkan nama akun layanan rekonsiliasi. Jika nama RepoSync adalahrepo-sync
,SERVICE_ACCOUNT_NAME
adalahns-reconciler-NAMESPACE
. Jika tidak, masalahns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
. Misalnya, jika nama RepoSync Anda adalahprod
,SERVICE_ACCOUNT_NAME
akan menjadins-reconciler-NAMESPACE-prod-4
. Bilangan bulat4
digunakan karenaprod
yang berisi 4 karakter.CLUSTERROLE_NAME
: menambahkan nama default ClusterRole.
Peran yang ditentukan pengguna
Anda dapat mendeklarasikan
ClusterRole
atauRole
dengan memberikan daftar yang sesuai untuk setiap resource yang dikelola oleh objekRepoSync
. Hal ini memungkinkan izin yang lebih terperinci. Lihat merujuk ke referensi untuk mengetahui detail selengkapnya.Misalnya,
ClusterRole
atauRole
berikut memberikan izin untuk mengelola objekDeployment
danServiceAccount
.# ROOT_REPO/namespaces/NAMESPACE/sync-role.yaml apiVersion: rbac.authorization.k8s.io/v1 kind: ROLE_KIND metadata: namespace: NAMESPACE # only set this field for a 'Role' name: RECONCILER_ROLE rules: # Update 'apiGroups' and 'resources' to reference actual resources managed by 'RepoSync'. - apiGroups: ["apps"] resources: ["deployments"] verbs: ["*"] - apiGroups: [""] resources: ["serviceaccounts"] verbs: ["*"]
Untuk mendeklarasikan
RoleBinding
yang merujuk keClusterRole
atauRole
, buat objek berikut.RoleBinding
memberikan izin tambahan untuk mengizinkan Config Sync untuk mengelola resource cakupan namespace untuk pemberianRepoSync
.# ROOT_REPO/namespaces/NAMESPACE/sync-rolebinding.yaml kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: syncs-repo namespace: NAMESPACE subjects: - kind: ServiceAccount name: SERVICE_ACCOUNT_NAME namespace: config-management-system roleRef: kind: ROLE_KIND name: RECONCILER_ROLE apiGroup: rbac.authorization.k8s.io
Ganti kode berikut:
ROLE_KIND
: tetapkanClusterRole
atauRole
.NAMESPACE
: tambahkan nama namespace Anda.SERVICE_ACCOUNT_NAME
: tambahkan nama akun layanan rekonsiliasi. Jika nama RepoSync adalahrepo-sync
,SERVICE_ACCOUNT_NAME
adalahns-reconciler-NAMESPACE
. Jika tidak, masalahns-reconciler-NAMESPACE-REPO_SYNC_NAME-REPO_SYNC_NAME_LENGTH
. Misalnya, jika nama RepoSync Anda adalahprod
,SERVICE_ACCOUNT_NAME
akan menjadins-reconciler-NAMESPACE-prod-4
. Bilangan bulat4
digunakan karenaprod
yang berisi 4 karakter.RECONCILER_ROLE
: tambahkan namaClusterRole
atauRole
.
Lakukan perubahan pada sumber tepercaya:
git add . git commit -m 'Setting up a new namespace-scoped source of truth.' git push
Jika diperlukan, buat Secret berdasarkan metode otentikasi pilihan Anda. Jika Anda menggunakan
none
sebagai jenis autentikasi, Anda dapat melewati langkah ini.Secret tersebut harus memenuhi persyaratan berikut:
- Buat Secret di namespace yang sama dengan RepoSync.
- Nama Secret harus cocok dengan nama
spec.git.secretRef
yang Anda tentukan dalamrepo-sync.yaml
. - Anda harus menambahkan kunci publik Secret ke penyedia Git.
Untuk memverifikasi konfigurasi, gunakan
kubectl get
pada salah satu objek dalam sumber tepercaya cakupan namespace. Contoh:kubectl get rolebindings -n NAMESPACE
Anda dapat mengulangi langkah-langkah di atas jika perlu mengonfigurasi lebih dari satu cakupan namespace sumber.
Mengontrol sumber tepercaya dengan Kubernetes API
Dalam metode ini, administrator pusat
mendelegasikan deklarasi
RootSync
objek ke administrator lain. Untuk objek RepoSync
, pusat
administrator hanya mendeklarasikan namespace di sumber root tepercaya dan delegasi
deklarasi objek RepoSync
ke operator aplikasi.
Mengontrol lebih dari satu sumber tepercaya
Administrator lain dapat mengontrol sumber tepercaya dengan menyelesaikan tugas berikut:
Simpan salah satu manifes berikut sebagai
root-sync.yaml
. Menggunakan manifes yang sesuai dengan jenis sumber untuk konfigurasi Anda.Git
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: git sourceFormat: ROOT_FORMAT git: repo: ROOT_REPOSITORY revision: ROOT_REVISION branch: ROOT_BRANCH dir: ROOT_DIRECTORY auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL secretRef: name: ROOT_SECRET_NAME noSSLVerify: ROOT_NO_SSL_VERIFY caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Ganti kode berikut:
ROOT_SYNC_NAME
: menambahkan nama RootSync .ROOT_FORMAT
: tambahkanunstructured
untuk menggunakan repositori tidak terstruktur atau tambahkanhierarchy
untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Bidang ini bersifat opsional dan nilai defaultnya adalahhierarchy
. Sebaiknya tambahkanunstructured
karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.ROOT_REPOSITORY
: tambahkan URL repositori Git ke Anda gunakan sebagai repositori {i>root<i}. Anda dapat memasukkan URL menggunakan HTTPS atau protokol SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
menggunakan protokol HTTPS. Kolom ini wajib diisi.ROOT_REVISION
: menambahkan revisi Git (tag atau ) yang akan disinkronkan. Bidang ini bersifat opsional dan nilai defaultnya adalahHEAD
. Mulai dari Config Sync versi 1.17.0, Anda juga dapat tentukan nama cabang di kolomrevision
. Saat menggunakan {i>hash <i}di versi 1.17.0 atau yang lebih baru, itu harus berupa {i>hash<i}, dan bukan bentuk yang disingkat.ROOT_BRANCH
: menambahkan cabang repositori yang akan disinkronkan. Kolom ini bersifat opsional dan nilai default-nya adalahmaster
. Mulai dari Config Sync versi 1.17.0, sekarang sebaiknya gunakan kolomrevision
untuk menentukan nama cabang kesederhanaan. Jika kolomrevision
dan kolombranch
keduanya tertentu,revision
akan lebih diprioritaskan daripadabranch
.ROOT_DIRECTORY
: menambahkan jalur di repositori Git untuk direktori {i>root<i} yang berisi konfigurasi yang ingin Anda sinkronkan tempat mesin terhubung. Bidang ini bersifat opsional dan defaultnya adalah direktori utama (/
) repositori.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasissh
: Menggunakan pasangan kunci SSHcookiefile
: Menggunakancookiefile
token
: Gunakan tokengcpserviceaccount
: Menggunakan akun layanan Google untuk mengakses Cloud Source Repositories.gcenode
: Gunakan akun layanan Google untuk mengakses dan Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.
Untuk informasi lebih lanjut tentang jenis autentikasi ini, lihat Memberikan akses hanya baca Config Sync ke Git.
Kolom ini wajib diisi.
ROOT_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: tambahkan nama Secret Anda. Jika ini isian diatur, Anda harus menambahkan kunci publik Rahasia ke penyedia Git. Kolom ini bersifat opsional.ROOT_NO_SSL_VERIFY
: Untuk menonaktifkan verifikasi sertifikat SSL, setel kolom ini ketrue
. Nilai defaultnya adalahfalse
.ROOT_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Git Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Manifes ini membuat objek
RootSync
yang menggunakan Git sebagai sumber.OCI
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: oci sourceFormat: ROOT_FORMAT oci: image: ROOT_IMAGE dir: ROOT_DIRECTORY auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Ganti kode berikut:
ROOT_SYNC_NAME
: menambahkan nama RootSync .ROOT_FORMAT
: tambahkanunstructured
untuk menggunakan repositori tidak terstruktur atau tambahkanhierarchy
untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Bidang ini bersifat opsional dan nilai defaultnya adalahhierarchy
. Sebaiknya tambahkanunstructured
karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.ROOT_IMAGE
: URL gambar OCI yang akan digunakan sebagai repositori root, misalnyaLOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Secara default, gambar diambil dari taglatest
, tetapi Anda dapat menarik gambar denganTAG
atauDIGEST
sebagai gantinya. TentukanTAG
atauDIGEST
diPACKAGE_NAME
:- Untuk menarik oleh
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Untuk menarik oleh
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Untuk menarik oleh
ROOT_DIRECTORY
: menambahkan jalur di repositori ke direktori {i>root<i} yang berisi konfigurasi yang ingin Anda sinkronkan tempat mesin terhubung. Bidang ini bersifat opsional dan defaultnya adalah direktori utama (/
) repositori.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasigcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
ROOT_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia OCI Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.
Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Manifes ini membuat objek
RootSync
yang menggunakan image OCI sebagai sumber.Helm
# root-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RootSync metadata: name: ROOT_SYNC_NAME namespace: config-management-system spec: sourceType: helm sourceFormat: ROOT_FORMAT helm: repo: ROOT_HELM_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: ROOT_AUTH_TYPE gcpServiceAccountEmail: ROOT_EMAIL secretRef: name: ROOT_SECRET_NAME caCertSecretRef: name: ROOT_CA_CERT_SECRET_NAME
Ganti kode berikut:
ROOT_SYNC_NAME
: menambahkan nama RootSync .ROOT_FORMAT
: tambahkanunstructured
untuk menggunakan repositori tidak terstruktur atau tambahkanhierarchy
untuk menggunakan repositori hierarkis. Nilai ini peka huruf besar/kecil. Bidang ini bersifat opsional dan nilai defaultnya adalahhierarchy
. Sebaiknya tambahkanunstructured
karena format ini memungkinkan Anda mengatur konfigurasi dengan cara yang paling nyaman bagi Anda.ROOT_HELM_REPOSITORY
: URL Helm repositori yang akan digunakan sebagai repositori root. Anda dapat memasukkan URL menggunakan protokol HTTPS atau SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
menggunakan HTTPS dan berperforma tinggi karena merupakan protokol biner. Kolom ini wajib diisi.HELM_CHART_NAME
: tambahkan nama Helm Anda diagram. Kolom ini wajib diisi.HELM_CHART_VERSION
: versi diagram Anda. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, versi terbaru akan dataHELM_RELEASE_NAME
: nama rilis Helm. Kolom ini bersifat opsional.HELM_RELEASE_NAMESPACE
: namespace target untuk suatu rilis. Perintah ini hanya menetapkan namespace untuk resource yang berisinamespace: {{ .Release.Namespace }}
dalam templatenya. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, namespace defaultconfig-management-system
akan digunakan.HELM_INCLUDE_CRDS
: ditetapkan ketrue
jika Anda mau template Helm untuk juga menghasilkan CustomResourceDefinition. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, defaultnya adalahfalse
dan CRD tidak akan dibuat.VALUE
: nilai yang akan digunakan, bukan nilai default yang menyertai diagram Helm. Format kolom ini dengan cara yang sama seperti file value.yaml diagram helm. Kolom ini bersifat opsional.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasitoken
: Gunakan nama pengguna dan sandi untuk mengakses Helm pribadi repositori resource.gcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
ROOT_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.ROOT_SECRET_NAME
: tambahkan nama Secret Anda jikatoken
adalahROOT_AUTH_TYPE
. Kolom ini bersifat opsional.ROOT_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Helm Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.
Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Manifes ini membuat objek
RootSync
yang menggunakan Helm sebagai sumber.Terapkan perubahan:
kubectl apply -f root-sync.yaml
Anda dapat mengulangi langkah-langkah di atas jika perlu mengonfigurasi lebih dari satu sumber root tepercaya.
Mengontrol sumber kebenaran cakupan namespace
Tugas administrator pusat
Administrator pusat menyelesaikan tugas-tugas berikut:
Di sumber tepercaya, deklarasikan konfigurasi
namespace
untuk sumber cakupan namespace.# ROOT_REPO/namespaces/NAMESPACE/namespace.yaml apiVersion: v1 kind: Namespace metadata: name: NAMESPACE
Ganti
NAMESPACE
dengan nama untuk namespace Anda.Di sumber root tepercaya, deklarasikan
RoleBinding
untuk memberikan izin operator aplikasi lainnya. Gunakan Pencegahan eskalasi RBAC untuk memastikan bahwa operator aplikasi nantinya tidak dapat menerapkan pengikatan peran dengan izin akses yang tidak diberikan oleh pengikatan peran ini.Untuk mendeklarasikan RoleBinding, buat manifes berikut:
# ROOT_REPO/namespaces/NAMESPACE/operator-rolebinding.yaml kind: RoleBinding # Add RBAC escalation prevention apiVersion: rbac.authorization.k8s.io/v1 metadata: name: operator namespace: NAMESPACE subjects: - kind: User name: USERNAME apiGroup: rbac.authorization.k8s.io roleRef: kind: ClusterRole name: OPERATOR_ROLE apiGroup: rbac.authorization.k8s.io
Ganti kode berikut:
NAMESPACE
: tambahkan namespace yang Anda buat di sumber root tepercaya.USERNAME
: menambahkan nama pengguna operator aplikasi.OPERATOR_ROLE
: sebagai administrator pusat, Anda dapat menetapkanOPERATOR_ROLE
untuk menerapkan jenis konfigurasi yang dapat disinkronkan dari sumber cakupan namespace. Anda dapat memilih salah satu opsi berikut peran:ClusterRole default:
admin
edit
Untuk mempelajari lebih lanjut, lihat Peran yang ditampilkan kepada pengguna.
ClusterRole atau Peran buatan pengguna yang dideklarasikan di sumber root tepercaya. Ini peran ini memungkinkan adanya izin yang lebih detail.
Lakukan perubahan pada sumber tepercaya:
git add . git commit -m 'Setting up new namespace-scoped source of truth.' git push
Tugas operator aplikasi
Operator aplikasi dapat mengontrol sumber cakupan namespace dengan menyelesaikan tugas berikut:
Deklarasikan konfigurasi
RoleBinding
yang memberikan konfigurasi yang disediakan otomatis Izin akun layananSERVICE_ACCOUNT_NAME
untuk mengelola objek dalam namespace. Config Sync secara otomatis membuat akun layananSERVICE_ACCOUNT_NAME
saat konfigurasiRepoSync
disinkronkan ke cluster.Untuk mendeklarasikan RoleBinding, buat manifes berikut:
# sync-rolebinding.yaml kind: RoleBinding apiVersion: rbac.authorization.k8s.io/v1 metadata: name: syncs-repo namespace: NAMESPACE subjects: - kind: ServiceAccount name: SERVICE_ACCOUNT_NAME namespace: config-management-system roleRef: kind: ClusterRole name: RECONCILER_ROLE apiGroup: rbac.authorization.k8s.io
Ganti kode berikut:
NAMESPACE
: tambahkan namespace yang Anda buat di sumber root tepercaya.SERVICE_ACCOUNT_NAME
: tambahkan nama akun layanan rekonsiliasi. Jika nama RepoSync adalahrepo-sync
,SERVICE_ACCOUNT_NAME
adalahns-reconciler-NAMESPACE
. Jika tidak, akanns-reconciler-NAMESPACE-REPO_SYNC_NAME
.RECONCILER_ROLE
: sebagai operator aplikasi, Anda dapat menetapkanRECONCILER_ROLE
untuk menerapkan jenis konfigurasi apa yang dapat disinkronkan dari sumber cakupan namespace. Anda hanya dapat membatasi lebih lanjut kumpulan izin akses yang dimiliki administrator pusat telah diberikan kepada Anda. Akibatnya, peran ini tidak boleh lebih permisif daripadaOPERATOR_ROLE
yang dideklarasikan administrator pusat dalam bagian sebelumnya.
Terapkan konfigurasi RoleBinding:
kubectl apply -f sync-rolebinding.yaml
Jika diperlukan, buat Secret berdasarkan metode otentikasi pilihan Anda. Jika Anda menggunakan
none
sebagai jenis autentikasi, Anda dapat melewati langkah ini.Rahasia harus memenuhi persyaratan berikut:
- Buat Secret di namespace yang sama dengan RepoSync.
- Nama Secret harus cocok dengan nama
spec.git.secretRef
yang Anda tentukan dalamroot-sync.yaml
. - Anda harus menambahkan kunci publik Secret ke penyedia Git.
Deklarasikan konfigurasi
RepoSync
:Git
#ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: git # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured git: repo: NAMESPACE_REPOSITORY revision: NAMESPACE_REVISION branch: NAMESPACE_BRANCH dir: "NAMESPACE_DIRECTORY" auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME noSSLVerify: NAMESPACE_NO_SSL_VERIFY caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_REPOSITORY
: tambahkan URL repositori Git ke gunakan sebagai repositori namespace. Anda dapat memasukkan URL menggunakan HTTPS atau protokol SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
penggunaan di protokol HTTPS. Jika Anda tidak memasukkan protokol, URL akan diperlakukan sebagai URL HTTPS. Kolom ini wajib diisi.NAMESPACE_REVISION
: menambahkan revisi Git (tag atau hash) yang akan disinkronkan. Bidang ini bersifat opsional dan nilai defaultnya adalahHEAD
. Mulai dari Config Sync versi 1.17.0, Anda juga dapat tentukan nama cabang di kolomrevision
. Saat menggunakan {i>hash <i}di versi 1.17.0 atau yang lebih baru, itu harus berupa {i>hash<i}, dan bukan bentuk yang disingkat.NAMESPACE_BRANCH
: menambahkan cabang repositori yang akan disinkronkan. Kolom ini bersifat opsional dan nilai default-nya adalahmaster
. Mulai dari Config Sync versi 1.17.0, sekarang sebaiknya gunakan kolomrevision
untuk menentukan nama cabang kesederhanaan. Jika kolomrevision
dan kolombranch
keduanya tertentu,revision
akan lebih diprioritaskan daripadabranch
.NAMESPACE_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasissh
: Menggunakan pasangan kunci SSHcookiefile
: Menggunakancookiefile
token
: Gunakan tokengcpserviceaccount
: Gunakan akun layanan Google untuk mengakses di Cloud Source Repositories.gcenode
: Gunakan akun layanan Google untuk mengakses repositori di dan Cloud Source Repositories. Hanya pilih opsi ini jika Workload Identity Federation for GKE tidak diaktifkan di cluster Anda.Untuk informasi lebih lanjut tentang jenis autentikasi ini, lihat Memberikan akses hanya baca Config Sync ke Git.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiNAMESPACE_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: tambahkan nama yang ingin Anda berikan Secret Anda. Kolom ini bersifat opsional.NAMESPACE_NO_SSL_VERIFY
: Untuk menonaktifkan verifikasi sertifikat SSL, setel kolom ini ketrue
. Nilai defaultnya adalahfalse
.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Git Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RepoSync.OCI
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: oci # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured oci: image: NAMESPACE_IMAGE dir: NAMESPACE_DIRECTORY auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_IMAGE
: URL gambar OCI yang akan digunakan sebagai sumber namespace, misalnyaLOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME
. Secara default, gambar diambil dari taglatest
, tetapi Anda dapat menarik gambar denganTAG
atauDIGEST
sebagai gantinya. TentukanTAG
atauDIGEST
diPACKAGE_NAME
:- Untuk menarik oleh
TAG
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME:TAG
- Untuk menarik oleh
DIGEST
:LOCATION-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/PACKAGE_NAME@sha256:DIGEST
- Untuk menarik oleh
NAMESPACE_DIRECTORY
: menambahkan jalur dalam sumber ke direktori {i>root<i} yang berisi konfigurasi yang ingin Anda sinkronkan tempat mesin terhubung. Bidang ini bersifat opsional dan defaultnya adalah direktori utama (/
) sumbernya.NAMESPACE_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasigcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia OCI Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Helm
# ROOT_SOURCE/namespaces/NAMESPACE/repo-sync.yaml apiVersion: configsync.gke.io/v1beta1 kind: RepoSync metadata: name: REPO_SYNC_NAME namespace: NAMESPACE spec: sourceType: helm # Since this is for a namespace repository, the format is unstructured sourceFormat: unstructured helm: repo: NAMESPACE_REPOSITORY chart: HELM_CHART_NAME version: HELM_CHART_VERSION releaseName: HELM_RELEASE_NAME namespace: HELM_RELEASE_NAMESPACE values: foo: bar: VALUE_1 baz: - qux: VALUE_2 xyz: VALUE_3 includeCRDs: HELM_INCLUDE_CRDS auth: NAMESPACE_AUTH_TYPE gcpServiceAccountEmail: NAMESPACE_EMAIL secretRef: name: NAMESPACE_SECRET_NAME caCertSecretRef: name: NAMESPACE_CA_CERT_SECRET_NAME
Ganti kode berikut:
REPO_SYNC_NAME
: tambahkan nama RepoSync . Nama harus unik di seluruh namespace.NAMESPACE
: tambahkan nama namespace Anda.NAMESPACE_REPOSITORY
: URL Helm repositori yang akan digunakan sebagai repositori root. Anda dapat memasukkan URL menggunakan protokol HTTPS atau SSH. Misalnya,https://github.com/GoogleCloudPlatform/anthos-config-management-samples
menggunakan HTTPS dan berperforma tinggi karena merupakan protokol biner. Kolom ini wajib diisi.HELM_CHART_NAME
: tambahkan nama Helm Anda diagram. Kolom ini wajib diisi.HELM_CHART_VERSION
: versi diagram Anda. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, versi terbaru akan dataHELM_RELEASE_NAME
: nama rilis Helm. Kolom ini bersifat opsional.HELM_RELEASE_NAMESPACE
: namespace target untuk suatu rilis. Perintah ini hanya menetapkan namespace untuk resource yang berisinamespace: {{ .Release.Namespace }}
dalam templatenya. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, namespace defaultconfig-management-system
akan digunakan.HELM_INCLUDE_CRDS
: ditetapkan ketrue
jika Anda mau template Helm untuk juga menghasilkan CustomResourceDefinition. Kolom ini bersifat opsional. Jika tidak ada nilai yang ditentukan, defaultnya adalahfalse
dan CRD tidak akan dibuat.VALUE
: nilai yang akan digunakan, bukan nilai default yang menyertai diagram Helm. Format kolom ini dengan cara yang sama sebagai file value.yaml diagram helm. Kolom ini bersifat opsional.ROOT_AUTH_TYPE
: tambahkan salah satu jenis autentikasi berikut:none
: Tidak menggunakan autentikasitoken
: Gunakan nama pengguna dan sandi untuk mengakses Helm pribadi repositori resource.gcenode
: Gunakan Akun layanan default Compute Engine untuk mengakses image di dan Artifact Registry. Hanya pilih opsi ini jika Workload Identity Federation untuk GKE tidak diaktifkan di cluster Anda.gcpserviceaccount
: Gunakan akun layanan Google untuk mengakses gambar.
Kolom ini wajib diisi.
NAMESPACE_EMAIL
: Jika Anda menambahkangcpserviceaccount
sebagaiROOT_AUTH_TYPE
, tambahkan alamat email akun layanan Google Anda. Contoh,acm@PROJECT_ID.iam.gserviceaccount.com
.NAMESPACE_SECRET_NAME
: tambahkan nama Secret Anda jikatoken
adalahROOT_AUTH_TYPE
. Kolom ini bersifat opsional.NAMESPACE_CA_CERT_SECRET_NAME
: tambahkan nama Rahasia. Jika kolom ini disetel, penyedia Helm Anda harus menggunakan sertifikat yang diterbitkan oleh certificate authority (CA) ini. Rahasia harus berisi sertifikat CA dengan kunci bernamacert
. Kolom ini bersifat opsional.Untuk mempelajari lebih lanjut cara mengonfigurasi objek Secret untuk CA sertifikat, lihat Mengonfigurasi Operator untuk Certificate Authority
Untuk penjelasan tentang {i>field<i} dan daftar lengkap {i>field<i} yang Anda dapat ditambahkan ke kolom
spec
, lihat kolom RootSync.Terapkan konfigurasi
RepoSync
:kubectl apply -f repo-sync.yaml
Untuk memverifikasi konfigurasi, gunakan
kubectl get
pada salah satu objek dalam sumber cakupan namespace. Contoh:kubectl get rolebindings -n NAMESPACE
Anda dapat mengulangi langkah-langkah di atas jika perlu mengonfigurasi beberapa sumber kebenaran cakupan namespace .
Memverifikasi status sinkronisasi sumber kebenaran
Anda dapat menggunakan perintah nomos status
untuk memeriksa status sinkronisasi sumber kebenaran:
nomos status
Anda akan melihat output yang mirip dengan contoh berikut:
my_managed_cluster-1
--------------------
<root> git@github.com:foo-corp/acme/admin@main
SYNCED f52a11e4
--------------------
bookstore git@github.com:foo-corp/acme/bookstore@v1
SYNCED 34d1a8c8
Dalam contoh ini, sumber cakupan namespace, dalam hal ini repositori Git,
dikonfigurasi untuk namespace bernama bookstore
.
Memverifikasi penginstalan RootSync
Saat Anda membuat objek RootSync, Config Sync akan membuat rekonsiliasi dengan
Awalan root-reconciler
. Rekonsiliasi adalah Pod yang di-deploy sebagai Deployment.
Menyinkronkan manifes dari sumber kebenaran ke cluster.
Anda dapat memverifikasi bahwa objek RootSync berfungsi dengan benar dengan memeriksa status Deployment rekonsiliasi root:
kubectl get -n config-management-system deployment \
-l configsync.gke.io/sync-name=ROOT_SYNC_NAME
Ganti ROOT_SYNC_NAME
dengan nama RootSync.
Anda akan melihat output yang mirip dengan contoh berikut:
NAME READY UP-TO-DATE AVAILABLE AGE
root-reconciler 1/1 1 1 3h42m
Untuk mengetahui cara lebih lanjut menjelajahi status objek RootSync, lihat Memantau objek RootSync dan RepoSync.
Memverifikasi penginstalan RepoSync
Saat Anda membuat objek RepoSync, Config Sync akan membuat rekonsiliasi dengan
Awalan ns-reconciler-NAMESPACE
, dengan
NAMESPACE
adalah namespace yang Anda buat untuk RepoSync
objek tersebut.
Anda dapat memverifikasi bahwa objek RepoSync berfungsi dengan benar dengan memeriksa status Deployment rekonsiliasi namespace:
kubectl get -n config-management-system deployment \
-l configsync.gke.io/sync-name=REPO_SYNC_NAME \
-l configsync.gke.io/sync-namespace=NAMESPACE
Ganti REPO_SYNC_NAME
dengan nama RepoSync, dan
ganti NAMESPACE
dengan namespace yang Anda buat
sumber tepercaya cakupan namespace Anda.
Untuk mengetahui cara lebih lanjut menjelajahi status objek RepoSync, lihat Menjelajahi objek RootSync dan RepoSync.
Menghapus sumber tepercaya
Pilih tab Central control method atau Kubernetes API method untuk melihatnya instruksi yang relevan.
Metode kontrol pusat
Jika Anda menggunakan metode Kontrol sumber kebenaran dalam sumber kebenaran utama, administrator pusat dapat mengikuti dua langkah berikut untuk menghapus sumber tepercaya:
Tentukan apakah Anda ingin menghapus atau mempertahankan resource yang dikelola melalui objek RootSync dan RepoSync.
Untuk menghapus semua resource yang dikelola objek RootSync atau RepoSync, menyinkronkan objek RootSync atau RepoSync ke sumber kosong. Sebagai contoh, Repositori GitHub tanpa konfigurasi. Jika objek RootSync atau RepoSync berisi objek RootSync atau RepoSync lain, fungsi RootSync bagian dalam atau RepoSync perlu disinkronkan ke repositori Git kosong terlebih dahulu.
Jika Anda telah mengaktifkan webhook dan ingin menyimpan sumber daya Anda, nonaktifkan pencegahan penyimpangan untuk resource yang diabaikan. Jika belum mengaktifkan webhook, Anda tidak perlu melakukan tindakan apa pun langkah-langkah untuk menjaga sumber daya Anda.
Hapus objek RootSync atau RepoSync dari sumber kebenaran.
Metode Kubernetes API
Jika Anda menggunakan Mengontrol sumber kebenaran cakupan namespace dengan Kubernetes API operator aplikasi dapat menggunakan langkah-langkah berikut untuk menghapus sumber tepercaya cakupan namespace:
Tentukan apakah Anda ingin menghapus atau mempertahankan resource yang dikelola melalui objek RootSync dan RepoSync.
Untuk menghapus semua resource yang dikelola objek RootSync atau RepoSync, menyinkronkan objek RootSync atau RepoSync ke sumber kosong. Sebagai contoh, Repositori GitHub tanpa konfigurasi. Jika objek RootSync atau RepoSync berisi objek RootSync atau RepoSync lain, fungsi RootSync bagian dalam atau RepoSync perlu disinkronkan ke repositori Git kosong terlebih dahulu.
Jika Anda telah mengaktifkan webhook dan ingin mempertahankan resource Anda, nonaktifkan pencegahan penyimpangan untuk resource yang diabaikan. Jika belum mengaktifkan webhook, Anda tidak perlu melakukan tindakan apa pun langkah-langkah untuk menjaga sumber daya Anda.
Hapus objek RootSync atau RepoSync dengan menjalankan perintah berikut:
kubectl delete -f FILE_NAME
Ganti
FILE_NAME
dengan nama RootSync Anda atau file konfigurasi RepoSync. Contoh,root-sync.yaml
.
Langkah selanjutnya
- Pelajari cara mencegah penyimpangan konfigurasi dalam sumber kebenaran cakupan namespace.
- Cari tahu cara memantau objek RootSync dan RepoSync.
- Pelajari cara memecah sumber tepercaya menjadi beberapa sumber tepercaya.