Mengimpor komponen

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), atau
Pengguna 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.

  1. Membuat koneksi Developer Connect.

    Untuk mengetahui langkah-langkahnya, lihat Menghubungkan ke GitHub.

  2. 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:

  1. Identifikasi katalog tempat Anda ingin membuat komponen.

      gcloud design-center spaces catalogs list \
      --project=PROJECT \
      --location=LOCATION \
      --space=SPACE
    

    Ganti kode berikut:

    Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces catalogs list.

  2. 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-template
    

    Ganti 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.

  3. 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=METADATA
    
    

    Ganti 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. Misalnya refs/tags/v1.0.0 atau refs/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 METADATA dengan file metadata.yaml Anda.
      • Untuk otomatis menggunakan file metadata yang ada di repositori Anda, jangan tentukan flag --metadata.

    Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces catalogs templates revisions create.

  4. 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_SPACE
    

    Ganti 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.

  1. Buat template aplikasi baru.

      gcloud design-center spaces application-templates create APPLICATION_TEMPLATE \
      --project=PROJECT \
      --location=LOCATION \
      --space=SPACE
    

    Ganti 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.

  2. 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 \
      --uri
    

    Ganti kode berikut:

    Untuk mengetahui informasi selengkapnya, lihat gcloud design-center spaces shared-templates list.

  3. 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_URI
    

    Ganti 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.

  4. 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_2
    

    Ganti 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.

  5. 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_2
    

    Ganti 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