Blueprint adalah konfigurasi Terraform yang dikemas sebagai image Open Container Initiative (OCI). Konfigurasi Terraform menentukan infrastruktur dan aplikasi yang di-deploy oleh SaaS Runtime ke Google Cloud.
Halaman ini menjelaskan cara membuat image OCI dari konfigurasi Terraform yang ada, dan cara menguploadnya ke SaaS Runtime.
Untuk mengetahui detail tentang konfigurasi Terraform ini, lihat Blueprint di SaaS Runtime.
Sebelum memulai
- Pastikan Anda telah mengaktifkan SaaS Runtime.
- Di project yang Anda gunakan untuk SaaS Runtime, pastikan Anda memiliki repositori Artifact Registry yang ditetapkan ke format Docker. Untuk mengetahui detail selengkapnya, lihat Membuat repositori untuk SaaS Runtime.
- Identifikasi konfigurasi Terraform yang ingin Anda deploy menggunakan
SaaS Runtime.
- 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 SaaS Runtime, Anda harus:
- 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 SaaS Runtime 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. SaaS Runtime menggunakan arsip ZIP untuk membuat image OCI.
Lihat detail di bagian berikut: Mengupload arsip zip.
Hubungkan repositori Git yang memiliki file Terraform. SaaS Runtime menggunakan file untuk membuat image OCI. Kemudian, SaaS Runtime menggunakan Cloud Build untuk membangun dan mengupload blueprint 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 SaaS Runtime 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 SaaS Runtime saat membuat rilis atau jenis unit. SaaS Runtime 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.
SaaS Runtime 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 SaaS Runtime ke repositori ini. SaaS Runtime 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 SaaS Runtime saat Anda membuat rilis, atau saat Anda membuat jenis unit.
SaaS Runtime menggunakan Developer Connect untuk terhubung ke repositori Git. Untuk mengetahui detail selengkapnya tentang Developer Connect, lihat dokumentasi Developer Connect.
SaaS Runtime 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, SaaS Runtime akan menggunakan file yang diubah untuk otomatis membangun image OCI baru, lalu mendorongnya 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 mengirim 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 SaaS Runtime, 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 Runtime SaaS dan akun layanan, lihat Akun layanan Runtime SaaSREPOSITORY_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 sekarang ada di repositori Artifact Registry.
Untuk menggunakan image ini dengan SaaS Runtime, pilih image ini saat Anda membuat rilis, atau saat Anda membuat jenis unit.
Langkah berikutnya
- Untuk memahami lebih lanjut SaaS Runtime, lihat Ringkasan SaaS Runtime.
- Untuk mempelajari blueprint lebih lanjut, lihat Blueprint di SaaS Runtime.
- Untuk mulai menggunakan SaaS Runtime, mulailah dengan Membuat penawaran SaaS.