AgenBaker adalah kumpulan komponen yang digunakan untuk menyediakan node Kubernetes di Azure.
AgenBaker memiliki beberapa bagian
Konsumen utama AgenBaker adalah Azure Kubernetes Service (AKS).
AKS menggunakan AgentBaker untuk menyediakan node Linux dan Windows Kubernetes.
Mengembangkan AgenBaker membutuhkan beberapa syarat dasar:
Jalankan make -C hack/tools install untuk menginstal semua alat pengembangan.
Jika Anda mengubah kode atau artefak yang digunakan untuk menghasilkan data khusus atau muatan ekstensi skrip khusus, Anda harus menjalankan make .
Ini menjalankan kembali kode untuk menyematkan file statis dalam kode GO, yang sebenarnya akan digunakan saat runtime.
Ini juga menjalankan tes unit (setara dengan go test ./... ) dan meregenerasi snapshot testData.
Kami menggunakan Golangci-Lint untuk menegakkan gaya.
Jalankan make -C hack/tools install untuk menginstal linter.
Jalankan ./hack/tools/bin/golangci-lint run untuk menjalankan linter.
Saat ini kami memiliki banyak kegagalan yang kami harapkan untuk dihilangkan.
Kami memiliki pekerjaan untuk menjalankan Golangci-Lint pada permintaan tarik.
Pekerjaan ini menggunakan fitur "no-isues" linters.
Selama PRS tidak memperkenalkan masalah baru bersih, mereka harus lulus.
Kami juga memiliki pekerjaan berbaris untuk menegakkan gaya pesan yang berkomitmen.
Kami mematuhi komitmen konvensional.
Lebih suka permintaan tarik dengan komitmen tunggal.
Untuk membersihkan komitmen yang sedang berlangsung, Anda dapat menggunakan git rebase -i untuk memperbaiki komitmen.
Lihat dokumentasi GIT untuk lebih jelasnya.
Sebagian besar kode dapat diuji dengan tes unit Vanilla GO.
Silakan kunjungi tautan resmi GitHub untuk lebih jelasnya. Di bawah ini adalah kasus penggunaan singkat.
Shellspec digunakan sebagai kerangka kerja untuk tes unit. Ada 2 opsi untuk menginstalnya.
Shellspec sudah termasuk dalam Makefile. Anda dapat menginstalnya hanya dengan menjalankan make tools-install atau make generate in Root (/AgentBaker).
Catatan: make generate Will Instal dan jalankan tes ShellSpec.
Jika Anda ingin menginstalnya di mesin lokal Anda, silakan jalankan curl -fsSL https://git.io/shellspec | sh .
Secara default, itu harus dipasang di ~/.local/lib/shellspec . Harap tambahkan ke $ Path untuk kenyamanan Anda. Contoh export PATH=$PATH:~/.local/lib/shellspec .
Anda perlu menulis file xxx_spec.sh untuk tes.
Misalnya, AgentBaker/spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh adalah file uji untuk AgentBaker/parts/linux/cloud-init/artifacts/cse_install.sh
Untuk menjalankan semua tes, di folder AgenBaker, cukup jalankan bash ./hack/tools/bin/shellspec di root (/agentbaker) direktori.
bash ./hack/tools/bin/shellspec -x => dengan -x , itu akan menunjukkan jejak verbose untuk debugging.bash ./hack/tools/bin/shellspec -E "<test name>" => Anda dapat menjalankan satu test case dengan menggunakan -E dan nama tes. Misalnya, bash ./hack/tools/bin/shellspec -E "returns downloadURIs.ubuntu."r2004".downloadURL of package runc for UBUNTU 20.04" . Anda juga dapat melakukan -xE untuk jejak verbose untuk satu test case.bash ./hack/tools/bin/shellspec "path to xxx_spec.sh" => dengan memberikan jalur lengkap file spesifikasi tertentu, Anda hanya dapat menjalankan file spesifikasi itu alih -alih semua file spec di proyek agenbaker. Misalnya, bash ./hack/tools/bin/shellspec "spec/parts/linux/cloud-init/artifacts/cse_install_spec.sh" Kami juga memiliki tes data snapshot, yang menyimpan output API kunci sebagai file pada disk.
Kami dapat memverifikasi secara manual konten snapshot yang terlihat benar.
Kami sekarang memiliki tes unit yang dapat secara langsung memvalidasi konten tanpa meninggalkan file yang dihasilkan pada disk.
Lihat ./pkg/agent/baker_test.go untuk contoh (cari dynamic-config-dir untuk melihat sampel validasi.).
Lihat direktori E2E.
Proyek ini menyambut kontribusi dan saran. Sebagian besar kontribusi mengharuskan Anda untuk menyetujui perjanjian lisensi kontributor (CLA) yang menyatakan bahwa Anda memiliki hak untuk, dan benar -benar melakukannya, beri kami hak untuk menggunakan kontribusi Anda. Untuk detailnya, kunjungi https://cla.opensource.microsoft.com.
Saat Anda mengirimkan permintaan tarik, bot CLA akan secara otomatis menentukan apakah Anda perlu memberikan CLA dan menghiasi PR secara tepat (misalnya, pemeriksaan status, komentar). Cukup ikuti instruksi yang disediakan oleh bot. Anda hanya perlu melakukan ini sekali di semua repo menggunakan CLA kami.
Proyek ini telah mengadopsi kode perilaku open source Microsoft. Untuk informasi lebih lanjut, lihat FAQ Kode Perilaku atau hubungi [email protected] dengan pertanyaan atau komentar tambahan.
File CGManifest adalah file JSON yang digunakan untuk mendaftarkan komponen secara manual ketika jenis komponen tidak didukung oleh tata kelola. Nama file adalah "cgmanifest.json" dan Anda dapat memiliki sebanyak yang Anda butuhkan dan dapat berada di mana saja di repositori Anda.
Jalur file: ./vhdbuilder/cgmanifest.json
Referensi: https://docs.opensource.microsoft.com/tools/cg/cgmanifest.html
Kemasan: