Menghubungkan ke host Cloud Bitbucket

Halaman ini menjelaskan cara untuk terhubung ke host Bitbucket Cloud ke Cloud Build.

Sebelum memulai

  • Aktifkan API Cloud Build, Secret Manager, and Compute Engine.

    Mengaktifkan API

Izin IAM yang diperlukan

Untuk mendapatkan izin yang perlu Anda hubungkan, minta administrator untuk memberi Anda peran IAM Cloud Build Connection Admin (cloudbuild.connectionAdmin) di akun pengguna. Untuk mengetahui informasi selengkapnya tentang cara memberikan peran, lihat Mengelola akses.

Anda mungkin juga bisa mendapatkan izin yang diperlukan melalui peran khusus atau peran bawaan lainnya.

Membuat token akses Bitbucket Cloud

Buat dua token akses berikut di Bitbucket Cloud:

  • Token akses admin - untuk menghubungkan dan memutuskan sambungan repositori.
  • Token akses baca - untuk mengizinkan Cloud Build mengakses kode sumber Anda.

Untuk membuat token ini, ikuti langkah-langkah berikut:

  1. Login ke Bitbucket Cloud.

  2. Ikuti petunjuk Bitbucket Cloud untuk membuat token akses yang ditautkan ke repositori, project, atau ruang kerja Anda.

    Berikan izin berikut:

    • Token akses admin:

      • Repositori: Read dan Admin
      • Permintaan Pull: Baca
      • Webhook: Membaca dan Menulis
    • Token akses baca:

      • Repositori: Baca
  3. Salin token Anda untuk digunakan dalam prosedur berikut.

Menghubungkan ke host Cloud Bitbucket

Konsol

Hubungkan Cloud Build ke host Bitbucket Cloud Anda dengan menyelesaikan langkah-langkah berikut:

  1. Buka halaman Repositories di Konsol Google Cloud.

    Buka halaman Repositori

    Anda akan melihat halaman Repositories.

  2. Di pemilih project, pilih project Google Cloud Anda.

  3. Di bagian atas halaman, pilih tab generasi ke-2.

  4. Klik Create host connection untuk menghubungkan host baru ke Cloud Build.

  5. Pilih Bitbucket sebagai penyedia sumber Anda.

  6. Di bagian Configure Connection, masukkan informasi berikut:

    1. Region: Pilih region untuk koneksi Anda.

    2. Nama: Masukkan nama untuk koneksi Anda.

    3. Di bagian Host details, pilih Bitbucket Cloud sebagai jenis host Anda.

    4. Ruang kerja: Masukkan ID ruang kerja untuk repositori Bitbucket Cloud Anda.

    5. Token akses: Masukkan token akses admin Anda yang dibuat sebelumnya.

    6. Token akses baca: Masukkan token akses baca Anda yang dibuat sebelumnya.

  7. Klik Connect.

    Koneksi baru akan muncul di halaman Repositories.

gcloud

  1. Selesaikan langkah-langkah berikut untuk menyimpan kredensial Anda:

    1. Simpan token akses Anda di Secret Manager dalam project Google Cloud dengan menjalankan perintah berikut:

      echo -n ADMIN_TOKEN | gcloud secrets create ADMIN_SECRET_NAME --data-file=-
      
      echo -n READ_TOKEN | gcloud secrets create READ_SECRET_NAME --data-file=-
      

      Dengan keterangan:

      • ADMIN_TOKEN adalah token akses admin Anda.
      • ADMIN_SECRET_NAME adalah nama yang ingin Anda berikan ke rahasia token akses admin di Secret Manager.
      • READ_TOKEN adalah token akses baca Anda.
      • READ_SECRET_NAME adalah nama yang ingin Anda berikan ke rahasia token akses baca di Secret Manager.
    2. Buat rahasia webhook di Secret Manager dengan menjalankan perintah berikut, dengan WEBHOOK_SECRET_NAME adalah nama yang ingin Anda berikan ke rahasia webhook:

      echo -n ${ex.(random-uuid)} | gcloud secrets create WEBHOOK_SECRET_NAME --data-file=-
      
    3. Jika secret Anda tidak berada di dalam project yang sama, berikan akses ke Akun Layanan Cloud Build dengan menjalankan perintah berikut:

      PN=$(gcloud projects describe PROJECT_ID --format="value(projectNumber)")
      CLOUD_BUILD_SERVICE_ACCOUNT="service-${PN}@gcp-sa-cloudbuild.iam.gserviceaccount.com"
      gcloud secrets add-iam-policy-binding ADMIN_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      
      gcloud secrets add-iam-policy-binding READ_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      
      gcloud secrets add-iam-policy-binding WEBHOOK_SECRET_NAME \
          --member="serviceAccount:${CLOUD_BUILD_SERVICE_ACCOUNT}" \
          --role="roles/secretmanager.secretAccessor"
      

      Dengan keterangan:

      • PROJECT_ID adalah ID project Google Cloud Anda.
      • ADMIN_SECRET_NAME adalah nama rahasia token admin Anda.
      • READ_SECRET_NAME adalah nama rahasia token baca Anda.
      • WEBHOOK_SECRET_NAME adalah nama rahasia webhook Anda.
  2. Hubungkan Cloud Build ke host Bitbucket Cloud Anda menggunakan perintah berikut:

    gcloud builds connections create bitbucket-cloud CONNECTION_NAME \
        --workspace=WORKSPACE_ID \
        --project=PROJECT_ID \
        --region=REGION \
        --authorizer-token-secret-version=projects/PROJECT_ID/secrets/ADMIN_SECRET_NAME/versions/latest \
        --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_SECRET_NAME/versions/latest \
        --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET_NAME/versions/1
    

    Dengan keterangan:

    • CONNECTION_NAME adalah nama yang ingin Anda berikan pada koneksi ke host Bitbucket Cloud Anda.
    • WORKSPACE_ID adalah ID Workspace untuk repositori Bitbucket Cloud Anda.
    • PROJECT_ID adalah ID project Google Cloud Anda.
    • REGION adalah region untuk koneksi host Anda.
    • ADMIN_SECRET_NAME adalah nama rahasia token admin Anda.
    • READ_SECRET_NAME adalah nama rahasia token akses baca Anda.
    • WEBHOOK_SECRET_NAME adalah nama rahasia webhook Anda.

Langkah selanjutnya