File penyesuaian gambar

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 di imageFamily atau imagePath. Misalnya, gunakan e2-standard-4 untuk image x86 dan c4a-standard-4 untuk image Arm. Jenis mesin bare metal tidak didukung.
  • zone (string, Wajib): Zona tempat VM pekerja dan pengujian berjalan, seperti us-central1-a.
  • acceleratorType (string, Opsional): Jenis akselerator GPU yang akan dihubungkan ke worker VM, seperti nvidia-tesla-t4 atau nvidia-l4.
  • acceleratorCount (number, Opsional): Jumlah akselerator GPU yang akan dipasang ke VM pekerja.
  • debug (boolean, Opsional): Jika Anda menetapkan debug ke true, Image Builder akan mempertahankan worker VM, baik penyesuaian selesai maupun gagal, sehingga Anda dapat memeriksa atau memecahkan masalah instance aktif menggunakan SSH. Setelan defaultnya adalah false.
  • 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 maksimum 2.0 jam.
  • reservations (array string, Opsional): Nama resource reservasi kapasitas (seperti test-reservation di 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, seperti projects/ubuntu-os-cloud/global/images/family/ubuntu-2204-lts.
  • imagePath (string): URI resource langsung ke versi image Compute Engine tertentu, seperti projects/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, seperti env: production.
  • signatureDatabaseFile (string, Opsional): Jalur resource ke file database tanda tangan booting aman.
  • storageLocations (array string, Opsional): Region atau multi-region penyimpanan target, seperti us-central1 atau us, 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 adalah false.

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:
  • 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