Dengan mengimpor modul Terraform kustom ke Application Design Center, Anda dapat menambahkan konfigurasi Google Cloud yang dapat digunakan kembali sebagai komponen dalam template aplikasi. Saat Anda mengimpor modul Terraform, App Design Center akan membuat template komponen di katalog ruang Anda sehingga developer dapat menggunakan kembali keputusan dan kebijakan desain yang telah Anda tetapkan.
Untuk mengetahui latar belakang tentang penulisan modul Terraform untuk Google Cloud, lihat berikut ini:
Sebelum memulai
Untuk melakukan tugas dalam dokumen ini, minta administrator untuk memberi Anda peran yang diperlukan pada folder khusus aplikasi atau project pengelolaan, seperti yang tercantum dalam tabel berikut:
| Tugas | Peran yang diperlukan |
|---|---|
| Mengimpor modul Terraform sebagai komponen kustom | Admin Application Design Center (roles/designcenter.admin), atauPengguna Application Design Center ( roles/designcenter.user) |
Untuk mengetahui informasi selengkapnya tentang peran, lihat Kontrol akses dengan IAM.
Mengonfigurasi dan mengimpor modul
Selesaikan langkah-langkah berikut untuk terhubung ke GitHub, membuat file metadata, dan mengimpor modul Terraform.
Menghubungkan ke repositori menggunakan Developer Connect
Buat koneksi Developer Connect ke repositori GitHub tempat Anda menyimpan modul Terraform Google Cloud . Anda akan menggunakan koneksi ini saat mengimpor.
Membuat koneksi Developer Connect.
Untuk mengetahui langkah-langkahnya, lihat Menghubungkan ke GitHub.
Membuat link repositori Developer Connect.
Untuk mengetahui langkah-langkahnya, lihat Menambahkan link repositori ke koneksi yang ada.
Opsional: Menyiapkan metadata modul Terraform Anda
Saat mengimpor modul Terraform, Anda dapat menyediakan metadata Anda sendiri, atau mengizinkan App Design Center membuat file metadata untuk Anda.
Misalnya, berikut adalah file metadata.yaml yang mungkin Anda buat untuk akun layanan:
spec:
info:
actuationTool:
flavor: Terraform
version: ">= 1.3"
interfaces: # Optional
variables:
- name: service_account
connections:
- source:
source: github.com/terraform-google/terraform-google-service-accounts
version: ">= 4.4"
spec:
outputExpr: email
requirements:
roles: # Optional after IAM integrations
- level: Project
roles:
- roles/iam.serviceAccountUser
- roles/iap.admin
- roles/run.admin
- roles/iam.serviceAccountAdmin
providerVersions:
- source: hashicorp/google
version: ">= 6, < 7"
- source: hashicorp/google-beta
version: ">= 6, < 7"
ui: # Optional
input:
variables:
ca_root_module:
name: ca_root_module
title: CA Root Module
service_account:
name: service_account
title: Service Account
Mengimpor dari repositori Anda
Anda dapat membuat komponen App Design Center dengan mengimpor modul Terraform yang didasarkan pada satu produk Google Cloud . Jika Anda membuat perubahan pada modul Terraform di repositori, ulangi langkah-langkah ini untuk mengimpor perubahan.
Untuk mengimpor modul Terraform, lakukan hal berikut:
Identifikasi katalog tempat Anda ingin membuat komponen.
gcloud design-center spaces catalogs list \ --project=PROJECT \ --location=LOCATION \ --space=SPACEGanti kode berikut:
PROJECT: ID project pengelolaan Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces catalogs list.
Buat template katalog di katalog pribadi ruang Anda.
gcloud design-center spaces catalogs templates create COMPONENT_TEMPLATE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template-category=component-templateGanti kode berikut:
COMPONENT_TEMPLATE: ID template untuk template komponen yang ingin Anda buat.PROJECT: ID project pengelolaan Anda.CATALOG: ID katalog Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces catalogs templates create.
Buat revisi template katalog berdasarkan modul Terraform di repositori Anda.
gcloud design-center spaces catalogs templates revisions create REVISION \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --template=COMPONENT_TEMPLATE \ --developer-connect-repo=DEVELOPER_CONNECT_REPO \ --developer-connect-repo-ref=DEVELOPER_CONNECT_REPO_REF \ --developer-connect-repo-dir=DEVELOPER_CONNECT_REPO_DIR \ --metadata=METADATAGanti kode berikut:
REVISION: ID revisi untuk revisi yang ingin Anda buat.PROJECT: ID project pengelolaan Anda.CATALOG: ID katalog Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.COMPONENT_TEMPLATE: ID template yang Anda buat di langkah sebelumnya.DEVELOPER_CONNECT_REPO: Repositori Developer Connect yang akan digunakan sebagai sumber. Contoh,projects/my-project/locations/us-central1/connections/my-connection/gitRepositoryLinks/my-repo.DEVELOPER_CONNECT_REPO_REF: Cabang atau tag Git di repositori. Misalnyarefs/tags/v1.0.0ataurefs/heads/main.DEVELOPER_CONNECT_REPO_DIR: Direktori di repositori. Contoh,modules/my-product.- Untuk menentukan metadata modul Terraform, lakukan salah satu hal berikut:
- Untuk menggunakan file metadata Anda sendiri,
ganti
METADATAdengan filemetadata.yamlAnda. - Untuk otomatis menggunakan file metadata yang ada di repositori Anda, jangan tentukan flag --metadata.
- Untuk menggunakan file metadata Anda sendiri,
ganti
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces catalogs templates revisions create.
Membagikan katalog Anda ke ruang lain.
gcloud design-center spaces catalogs shares create SHARE \ --project=PROJECT \ --catalog=CATALOG \ --location=LOCATION \ --space=SPACE \ --destination-space=DESTINATION_SPACEGanti kode berikut:
SHARE: ID berbagi untuk berbagi yang ingin Anda buat.PROJECT: ID project pengelolaan Anda.CATALOG: ID katalog Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.DESTINATION_SPACE: ID ruang tujuan.
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces catalogs shares create.
Membuat template aplikasi menggunakan komponen yang diimpor
Buat template aplikasi menggunakan komponen yang Anda impor dan komponen yang disediakan Google.
Buat template aplikasi baru.
gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \ --project=PROJECT \ --location=LOCATION \ --space=SPACEGanti kode berikut:
APPLICATION_TEMPLATE: ID template untuk template aplikasi yang ingin Anda buat.PROJECT: ID project pengelolaan Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces application-templates create.
Identifikasi URI revisi template untuk komponen yang ingin Anda tambahkan ke template.
gcloud design-center spaces shared-templates list \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --uriGanti kode berikut:
PROJECT: ID project pengelolaan Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces shared-templates list.
Tambahkan komponen ke template aplikasi Anda.
gcloud design-center spaces application-templates components create COMPONENT \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URIGanti kode berikut:
COMPONENT: ID komponen untuk komponen yang ingin Anda tambahkan ke template.PROJECT: ID project pengelolaan Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.APPLICATION_TEMPLATE: ID template untuk template aplikasi tempat Anda menambahkan komponen.SHARED_TEMPLATE_URI: URI template yang dibagikan komponen. Contoh,projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces application-templates components create.
Tambahkan komponen kedua ke template Anda.
gcloud design-center spaces application-templates components create COMPONENT_2 \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --shared-template-revision-uri=SHARED_TEMPLATE_URI_2Ganti kode berikut:
COMPONENT_2: ID komponen untuk komponen kedua yang ingin Anda tambahkan ke template.PROJECT: ID project pengelolaan Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.APPLICATION_TEMPLATE: ID template untuk template aplikasi tempat Anda menambahkan komponen.SHARED_TEMPLATE_URI_2: URI template bersama komponen kedua. Contoh,projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces application-templates components create.
Buat koneksi antara kedua komponen.
gcloud design-center spaces application-templates components connections create CONNECTION \ --project=PROJECT \ --location=LOCATION \ --space=SPACE \ --application-template=APPLICATION_TEMPLATE \ --component=COMPONENT \ --destination-component-uri=SHARED_TEMPLATE_URI_2Ganti kode berikut:
CONNECTION: ID koneksi untuk koneksi yang ingin Anda tambahkan ke template.PROJECT: ID project pengelolaan Anda.LOCATION: ID lokasi Anda.SPACE: ID ruang Anda.APPLICATION_TEMPLATE: ID template untuk template aplikasi tempat Anda menambahkan komponen.SHARED_TEMPLATE_URI_2: URI template bersama komponen kedua. Contoh,projects/my-project/locations/us-central1/spaces/my-space/sharedTemplates/my-shared-template/revisions/rev1.
Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces application-templates components connections create.
Langkah berikutnya
- Sebelum men-deploy, buat aplikasi.
- Men-deploy aplikasi.
- Ekspor kode Terraform Anda.