Dokumen ini menjelaskan struktur dan parameter file resep penyesuaian, imagebuilder.yaml, yang Anda gunakan untuk menentukan image OS dasar, konfigurasi hardware, tujuan rilis, dan tindakan penyesuaian untuk pipeline Image Builder.
Ringkasan skema
Konfigurasi penyesuaian menggunakan versi API imagebuilder.gcp.com/v1 dan jenis resource OSImageCustomization.
File resep standar memiliki struktur berikut:
apiVersion: imagebuilder.gcp.com/v1 kind: OSImageCustomization metadata: # Recipe metadata and identifying details infrastructureConfig: # VM machine type, zone, and network settings source: # Base source image profile destinations: # Output OS image release targets spec: config: # Build options and validation test flags steps: # Customization actions (Shell, FileCopy, UpdateKernelCommandLine, InstallGPU)
Metadata
Memberikan detail identifikasi untuk template build kustom ini:
metadata: name: CONFIG_NAME description: DESCRIPTION
name(string, Wajib): ID untuk konfigurasi ini.description(string, Opsional): Deskripsi tujuan build.
Konfigurasi infrastruktur
Menentukan properti hardware dan jaringan instance virtual machine sementara yang dibuat Image Builder selama tugas build dan validasi:
infrastructureConfig: machineType: MACHINE_TYPE zone: ZONE acceleratorType: nvidia-l4 acceleratorCount: 1 debug: false instanceDurationHours: 2.0 reservations: - RESERVATION_NAME
machineType(string, Wajib): Jenis mesin Compute Engine yang akan digunakan untuk VM pekerja dan pengujian. Pastikan jenis mesin cocok dengan arsitektur image sumber yang Anda tentukan diimageFamilyatauimagePath. Misalnya, gunakane2-standard-4untuk image x86 danc4a-standard-4untuk image Arm. Jenis mesin bare metal tidak didukung.zone(string, Wajib): Zona tempat VM pekerja dan pengujian berjalan, sepertius-central1-a.acceleratorType(string, Opsional): Jenis akselerator GPU yang akan dihubungkan ke worker VM, sepertinvidia-tesla-t4ataunvidia-l4.acceleratorCount(number, Opsional): Jumlah akselerator GPU yang akan dipasang ke VM pekerja.debug(boolean, Opsional): Jika Anda menetapkandebugketrue, Image Builder akan mempertahankan worker VM, baik penyesuaian selesai maupun gagal, sehingga Anda dapat memeriksa atau memecahkan masalah instance aktif menggunakan SSH. Setelan defaultnya adalahfalse.instanceDurationHours(number, Opsional): Membatasi runtime VM pekerja. Batas waktu dimulai saat penyesuaian selesai atau mengalami error skrip, sehingga Anda dapat terhubung ke VM aktif selama sesi proses debug interaktif. Dibatasi hingga maksimum2.0jam.reservations(array string, Opsional): Nama resource reservasi kapasitas (sepertitest-reservationdi project yang sama) yang akan digunakan saat Image Builder membuat VM.
Gambar sumber
Mengidentifikasi image sistem operasi dasar yang digunakan Image Builder untuk meluncurkan worker VM. Anda harus menentukan salah satu opsi berikut:
Untuk menentukan kelompok image standar:
source: imageFamily: projects/IMAGE_PROJECT/global/images/family/IMAGE_FAMILY
Untuk menentukan URI versi image langsung:
source: imagePath: projects/IMAGE_PROJECT/global/images/IMAGE_NAME
imageFamily(string): Jalur ke grup keluarga image standar, sepertiprojects/ubuntu-os-cloud/global/images/family/ubuntu-2204-lts.imagePath(string): URI resource langsung ke versi image Compute Engine tertentu, sepertiprojects/cos-cloud/global/images/cos-105-17412-226-28.
Tujuan
Menentukan tempat dan cara merilis image OS kustom yang dikompilasi. Properti ini berisi daftar objek tujuan rilis di bagian diskImage:
destinations: - diskImage: name: IMAGE_NAME project: PROJECT_ID family: IMAGE_FAMILY description: DESCRIPTION licenses: - projects/PROJECT_ID/global/licenses/LICENSE_NAME labels: env: production signatureDatabaseFile: SIGNATURE_DB_PATH storageLocations: - us-central1
name(string, Wajib): Awalan nama dasar yang ditetapkan ke resource image Compute Engine akhir. Image Builder secara otomatis menambahkan ID build unik ke awalan ini dan memangkas nama image akhir menjadi 63 karakter.family(string, Opsional): Kelompok image yang akan diterapkan ke image yang baru dibuat.project(string, Wajib): The Google Cloud project where Image Builder menulis image output.description(string, Opsional): Teks deskripsi yang dilampirkan ke metadata image yang dihasilkan.licenses(array string, Opsional): Jalur resource lisensi software tertentu yang diterapkan ke image ini.labels(peta, Opsional): Key-value pair metadata pemberian tag, sepertienv: production.signatureDatabaseFile(string, Opsional): Jalur resource ke file database tanda tangan booting aman.storageLocations(array string, Opsional): Region atau multi-region penyimpanan target, sepertius-central1atauus, tempat Compute Engine menyimpan blok disk akhir. Catatan: Meskipun properti ini diformat sebagai daftar, Anda hanya dapat menentukan satu lokasi per tujuan image.
Konfigurasi spesifikasi
Menerapkan opsi eksekusi umum:
spec: config: skipSystemTests: false
skipSystemTests(boolean, Opsional): Mengalihkan apakah VM pengujian mengevaluasi kondisi booting, jaringan, dan struktur UEFI. Setelan defaultnya adalahfalse.
Langkah spesifikasi
Menentukan daftar objek langkah yang dijalankan Image Builder secara berurutan di worker VM. Untuk mengetahui skema parameter input lengkap dan contoh penggunaan untuk setiap jenis langkah, lihat Tindakan penyesuaian yang didukung.
Semua objek langkah penyesuaian memiliki properti umum berikut:
spec: steps: - name: STEP_NAME action: ACTION_TYPE inputs: # Action-specific input parameters
name(string, Wajib): Nama yang ditentukan pengguna untuk langkah penyesuaian ini.action(string, Wajib): Tindakan helper yang akan dipanggil. Tindakan yang didukung:Shell: Menjalankan skrip terminal di VM.FileCopy: Mentransfer aset dari bucket atau ruang kerja Cloud Storage.UpdateKernelCommandLine: Mengupdate parameter booting.InstallGPU: Mendaftarkan driver GPU NVIDIA.
inputs(objek, Wajib): Properti kunci-nilai yang diperlukan oleh tindakan yang dipilih. Untuk mengetahui referensi dan contoh parameter lengkap, lihat Tindakan penyesuaian yang didukung.
Cuplikan berikut menunjukkan contoh langkah menggunakan tindakan Shell:
spec: steps: - name: setup-environment action: Shell inputs: inlineScript: | #!/usr/bin/env bash echo "Running customization..."
Langkah berikutnya
- Pelajari skema input mendetail, referensi parameter, dan contoh penggunaan untuk langkah penyesuaian di Tindakan penyesuaian yang didukung.
- Pelajari cara mengonfigurasi setelan orkestrasi pipeline di skema file konfigurasi Cloud Build.
- Ikuti tutorial langkah demi langkah untuk Membuat pipeline Image Builder.