Blueprint adalah konfigurasi Terraform yang dikemas sebagai image Open Container Initiative (OCI). Konfigurasi Terraform menentukan infrastruktur dan aplikasi yang di-deploy App Lifecycle Manager ke Google Cloud.
Halaman ini menjelaskan cara membuat image OCI dari konfigurasi Terraform yang ada, dan cara menguploadnya ke App Lifecycle Manager.
Untuk mengetahui detail tentang konfigurasi Terraform ini, lihat Cetak biru di Pengelola Siklus Proses Aplikasi.
Sebelum memulai
- Pastikan Anda telah mengaktifkan Pengelola Siklus Proses Aplikasi.
- Di project yang Anda gunakan untuk App Lifecycle Manager, pastikan Anda memiliki repositori Artifact Registry yang ditetapkan ke format Docker. Untuk mengetahui detail selengkapnya, lihat Membuat repositori untuk App Lifecycle Manager.
- Identifikasi konfigurasi Terraform yang ingin Anda deploy menggunakan
App Lifecycle Manager.
- Untuk mengetahui detail tentang cara memutuskan cara memodelkan penawaran SaaS menggunakan cetak biru, lihat Menentukan model penawaran SaaS
- Untuk mengetahui detail tentang persyaratan konfigurasi Terraform, lihat Persyaratan blueprint.
Membuat dan mengupload cetak biru
Untuk men-deploy konfigurasi Terraform ke Google Cloud menggunakan App Lifecycle Manager, Anda perlu:
- Kemasi konfigurasi Terraform ke dalam image OCI. Image OCI ini disebut cetak biru.
- Masukkan image OCI ini ke repositori Artifact Registry yang Anda identifikasi atau siapkan.
Bergantung pada cara Anda memilih untuk membuat dan mengupload cetak biru, Anda dapat melakukan semua langkah secara manual, atau App Lifecycle Manager dapat melakukan beberapa langkah.
Anda dapat membuat image OCI dan menguploadnya ke repositori menggunakan salah satu metode berikut:
Upload arsip zip yang berisi konfigurasi Terraform. App Lifecycle Manager menggunakan arsip ZIP untuk membuat image OCI.
Lihat detail di bagian berikut: Mengupload arsip zip.
Hubungkan repositori Git yang memiliki file Terraform. App Lifecycle Manager menggunakan file untuk membuat image OCI. App Lifecycle Manager kemudian menggunakan Cloud Build untuk mem-build dan mengupload cetak biru setiap kali Anda memperbarui repositori.
Lihat detail di bagian berikut: Menghubungkan ke repositori Git.
Bangun image OCI secara lokal dan kirim image ke repositori di Artifact Registry.
Lihat detail di bagian berikut: Membangun dan mengirim image secara manual.
Otomatiskan pembuatan dan pengiriman image OCI ke repositori di Artifact Registry. Mengotomatiskan proses ini akan membantu Anda memasukkan Pengelola Siklus Proses Aplikasi ke dalam pipeline CI/CD.
Lihat detailnya di bagian berikut: Mengotomatiskan pembuatan cetak biru.
Mengupload arsip zip
Anda dapat membuat arsip zip dari file Terraform. Anda mengupload arsip ini ke Pengelola Siklus Proses Aplikasi saat membuat rilis atau jenis unit. App Lifecycle Manager menggunakan arsip ZIP untuk membuat image OCI yang diperlukan.
Untuk memberikan cetak biru menggunakan arsip ZIP, lakukan hal berikut:
- Buka direktori project Terraform Anda.
- Buat arsip ZIP yang berisi konfigurasi Terraform.
- Pastikan bahwa:
- Arsip zip hanya berisi file Terraform Anda. Misalnya,
main.tf,variables.tf,outputs.tf,versions.tf, dan modul. - Arsip zip tidak berisi file yang tidak perlu, misalnya
direktori
.git, atau dockerfile.
- Arsip zip hanya berisi file Terraform Anda. Misalnya,
- Perintah untuk membuat arsip zip mungkin terlihat mirip dengan ini:
zip terraform-files.zip main.tf outputs.tf variables.tf versions.tf
- Pastikan bahwa:
- Upload arsip ZIP saat Anda membuat rilis, atau saat Anda membuat jenis unit.
App Lifecycle Manager menggunakan arsip ZIP untuk membuat image OCI yang diperlukan, dan mengirimkannya ke repositori Artifact Registry.
Menghubungkan ke repositori Git
Jika menyimpan konfigurasi Terraform di repositori Git, Anda dapat menghubungkan App Lifecycle Manager ke repositori ini. App Lifecycle Manager menggunakan file untuk membuat image OCI yang diperlukan saat Anda membuat jenis unit atau membuat rilis.
Untuk menyediakan cetak biru menggunakan repositori Git, lakukan hal berikut:
- Pastikan file Terraform Anda berada di direktori root repositori Git Anda.
- Hubungkan repositori Git Anda ke App Lifecycle Manager saat Anda membuat rilis, atau saat Anda membuat jenis unit.
App Lifecycle Manager menggunakan Developer Connect untuk terhubung ke repositori Git. Untuk mengetahui detail selengkapnya tentang Developer Connect, lihat dokumentasi Developer Connect.
App Lifecycle Manager menggunakan file Terraform dari repositori Git untuk membuat image OCI yang diperlukan, dan mengirimkannya ke repositori Artifact Registry.
Integrasi ini mengotomatiskan proses pembuatan blueprint setiap kali Anda memperbarui kode Terraform di repositori. Jika ada perubahan di repositori Git yang ditautkan, App Lifecycle Manager akan menggunakan file yang diubah untuk otomatis membangun image OCI baru, lalu mengirimkannya ke repositori Artifact Registry.
Membangun dan mengirim image secara manual
Metode ini memberi Anda kontrol terperinci atas proses pembuatan cetak biru.
Untuk membuat blueprint secara manual, lakukan langkah-langkah berikut:
Di direktori root file Terraform Anda, buat file bernama
Dockerfiledengan konten berikut:# syntax=docker/dockerfile:1-labs FROM scratch COPY --exclude=Dockerfile --exclude=.git --exclude=.gitignore . /Dockerfileini menggunakan image dasar minimal (scratch). Sebaiknya sertakandockerignoreke perintah untuk mengecualikan file yang tidak relevan, seperti:Dockerfileitu sendiri- direktori
.git - file
.gitignore
Jika Anda tidak memiliki builder Docker, buat builder
docker-containermenggunakandocker buildxdengan menggunakan perintah berikut:docker buildx create --name container --driver=docker-containerJalankan perintah
docker buildx buildberikut dari direktori Terraform Anda untuk membangun dan mengirimkan blueprint ke Artifact Registry:IMAGE_NAME=us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:TAG ENGINE_TYPE=inframanager ENGINE_VERSION=TERRAFORM_VERSION docker buildx build -t $IMAGE_NAME \ --builder=container \ --push \ --annotation "com.easysaas.engine.type=$ENGINE_TYPE" \ --annotation "com.easysaas.engine.version=$ENGINE_VERSION" \ --provenance=false .Ganti kode berikut:
PROJECT_ID: Project ID Anda.REPOSITORY_NAME: Nama repositori Artifact Registry Anda.IMAGE_NAME: Nama untuk image cetak biru Anda.TAG: Tag untuk versi image Anda (misalnya,latest, atauv1.0.0). Memilih tag deskriptif akan membantu Anda mengelola versi cetak biru secara efektif.TERRAFORM_VERSION: versi Terraform yang didukung untuk digunakan. Lihat Versi Terraform yang didukung untuk mengetahui daftar versi yang didukung oleh Infrastructure Manager.
Perintah mungkin terlihat seperti contoh berikut:
IMAGE_NAME=us-docker.pkg.dev/saas-docs-testing/blueprints-repo/my-terraform-blueprint:v1.0.0 ENGINE_TYPE=inframanager ENGINE_VERSION=1.5.7 docker buildx build -t $IMAGE_NAME \ --builder=container \ --push \ --annotation "com.easysaas.engine.type=$ENGINE_TYPE" \ --annotation "com.easysaas.engine.version=$ENGINE_VERSION" \ --provenance=false .
Image OCI ada di repositori Artifact Registry.
Untuk menggunakan image ini dengan App Lifecycle Manager, pilih image ini saat Anda membuat rilis, atau saat Anda membuat jenis unit.
Mengotomatiskan pembuatan cetak biru
Anda dapat mengotomatiskan pembuatan image OCI dan pengiriman ke Artifact Registry menggunakan Cloud Build. Anda dapat menyiapkan pemicu sehingga setiap kali kode Terraform diubah, image OCI akan otomatis di-build dan dikirim ke Artifact Registry.
Untuk menyiapkan otomatisasi ini, lakukan hal berikut:
Di root repositori Terraform, buat file
cloudbuild.yamldengan konfigurasi berikut:steps: - id: 'Create Dockerfile' name: 'bash' args: ['-c', 'echo -e "# syntax=docker/dockerfile:1-labs\nFROM scratch\nCOPY --exclude=Dockerfile.Blueprint --exclude=.git --exclude=.gitignore . /" > Dockerfile.Blueprint'] - id: 'Create docker-container driver' name: 'docker' args: ['buildx', 'create', '--name', 'container', '--driver=docker-container'] - id: 'Build and Push docker image' name: 'docker' args: ['buildx', 'build', '-t', '${_IMAGE_NAME}', '--builder=container', '--push', '--annotation', 'com.easysaas.engine.type=${_ENGINE_TYPE}','--annotation', 'com.easysaas.engine.version=${_ENGINE_VERSION}', '--provenance=false','-f', 'Dockerfile.Blueprint', '.'] serviceAccount: '${_SERVICE_ACCOUNT}' substitutions: _SERVICE_ACCOUNT: 'projects/PROJECT_ID/serviceAccounts/CLOUD_BUILD_SERVICE_ACCOUNT' _IMAGE_NAME: 'us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:latest' _ENGINE_TYPE: 'inframanager' _ENGINE_VERSION: 'TERRAFORM_VERSION' options: logging: CLOUD_LOGGING_ONLYGanti kode berikut:
PROJECT_ID: Project ID Anda.CLOUD_BUILD_SERVICE_ACCOUNT: Nama lengkap akun layanan Cloud Build Anda. Untuk mengetahui detail selengkapnya tentang App Lifecycle Manager dan akun layanan, lihat Akun layanan App Lifecycle Manager.REPOSITORY_NAME: Nama repositori Artifact Registry Anda.IMAGE_NAME: Nama untuk image cetak biru Anda.TAG: Tag untuk versi image Anda (misalnya,latest, atauv1.0.0). Memilih tag deskriptif akan membantu Anda mengelola versi cetak biru secara efektif.TERRAFORM_VERSION: versi Terraform yang didukung untuk digunakan. Lihat Versi Terraform yang didukung untuk mengetahui daftar versi yang didukung oleh Infrastructure Manager.
Mulai tugas Cloud Build menggunakan perintah
gcloud builds submitdari direktori yang berisi filecloudbuild.yamlAnda:gcloud builds submit --config=cloudbuild.yaml --substitutions=_IMAGE_NAME='us-docker.pkg.dev/PROJECT_ID/REPOSITORY_NAME/IMAGE_NAME:TAG'Ganti kode berikut:
PROJECT_ID: Project ID Anda.REPOSITORY_NAME: Nama repositori Artifact Registry Anda.IMAGE_NAME: Nama untuk image cetak biru AndaTAG: Tag untuk versi image Anda (misalnya,latest, atauv1.0.0). Memilih tag deskriptif akan membantu Anda mengelola versi cetak biru secara efektif.
Anda dapat menyiapkan pemicu sehingga setiap kali kode Terraform diubah, image OCI akan otomatis di-build dan dikirim ke Artifact Registry. Untuk mengetahui detailnya, lihat Membuat dan mengelola pemicu build.
Image OCI kini ada di repositori Artifact Registry.
Untuk menggunakan image ini dengan App Lifecycle Manager, pilih image ini saat Anda membuat rilis, atau saat Anda membuat jenis unit.
Langkah berikutnya
- Untuk memahami lebih lanjut Pengelola Siklus Proses Aplikasi, lihat Ringkasan Pengelola Siklus Proses Aplikasi.
- Untuk mempelajari lebih lanjut cetak biru, lihat Cetak biru di App Lifecycle Manager.
- Untuk mulai menggunakan App Lifecycle Manager, mulailah dengan Membuat penawaran SaaS.