Menghubungkan ke host GitLab

Halaman ini menjelaskan cara menghubungkan host GitLab ke Cloud Build.

Sebelum memulai

  • Aktifkan Cloud Build dan Secret Manager API.

    Peran yang diperlukan untuk mengaktifkan API

    Untuk mengaktifkan API, Anda memerlukan izin serviceusage.services.enable. Jika Anda membuat project, kemungkinan Anda sudah memiliki izin ini melalui peran Pemilik (roles/owner). Jika tidak, Anda bisa mendapatkan izin ini melalui peran Admin Service Usage (roles/serviceusage.serviceUsageAdmin). Pelajari cara memberikan peran.

    Aktifkan API

Menghubungkan ke host GitLab

Sebelum membuat koneksi host untuk instance GitLab, Anda harus membuat token akses pribadi di GitLab dengan menyelesaikan langkah-langkah berikut:

  1. Login ke instance GitLab Anda.

  2. Di halaman GitLab untuk instance Anda, klik avatar Anda di pojok kanan atas.

  3. Klik Edit profil.

  4. Di sidebar kiri, pilih Access tokens.

    Anda akan melihat halaman Personal Access Tokens.

  5. Buat token akses dengan cakupan api untuk digunakan dalam menghubungkan dan memutuskan koneksi repositori.

  6. Buat token akses dengan cakupan read_api untuk memastikan repositori Cloud Build dapat mengakses kode sumber di repositori.

Konsol

Untuk menghubungkan host GitLab ke Cloud Build:

  1. Buka halaman Repositories di Google Cloud konsol.

    Buka halaman Repositori

    Anda akan melihat halaman Repositories.

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

  3. Di pemilih project di panel atas, pilih project Anda Google Cloud .

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

  5. Di panel kiri, pilih GitLab sebagai penyedia sumber Anda.

  6. Di bagian Configure Connection, masukkan informasi berikut:

    • Region: Pilih region untuk koneksi Anda.

    • Nama: Masukkan nama untuk koneksi Anda.

  7. Di bagian Host details, buka GitLab host dan pilih GitLab.com.

  8. Opsional: Jika Anda ingin mengelola kunci enkripsi yang digunakan untuk mengenkripsi token akses untuk repositori GitLab Anda, buka bagian Encryption dan pilih kunci Cloud Key Management Service. Untuk mengetahui informasi selengkapnya, lihat Mengaktifkan kunci enkripsi yang dikelola pelanggan untuk Secret Manager.

  9. Di bagian Personal access tokens, masukkan informasi berikut:

    • Token akses API: Masukkan token dengan akses cakupan api. Token ini digunakan untuk menghubungkan dan memutuskan koneksi repositori.

    • Read API access token: Masukkan token dengan akses cakupan read_api. Pemicu Cloud Build menggunakan token ini untuk mengakses kode sumber di repositori.

  10. Klik Connect.

    Setelah mengklik tombol Connect, token akses pribadi Anda akan disimpan dengan aman di Secret Manager. Setelah koneksi host, Cloud Build juga membuat secret webhook atas nama Anda. Anda dapat melihat dan mengelola secret di halaman Secret Manager.

Anda kini telah berhasil membuat koneksi GitLab.

gcloud

Sebelum menghubungkan host GitLab ke Cloud Build, selesaikan langkah-langkah berikut untuk menyimpan kredensial Anda:

  1. Simpan token Anda di Secret Manager.

  2. Buat secret webhook di Secret Manager dengan menjalankan perintah berikut:

     cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-
    
  3. Jika Anda menyimpan secret di project yang berbeda Google Cloud dengan project yang akan Anda gunakan untuk membuat koneksi host, masukkan perintah berikut untuk memberikan akses project Anda ke agen layanan Cloud Build:

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

    Dengan:

    • PROJECT_ID adalah ID Google Cloud project Anda.

Sekarang Anda dapat melanjutkan untuk menghubungkan host GitLab ke Cloud Build.

Selesaikan langkah-langkah berikut:

Untuk menghubungkan host GitLab ke Cloud Build:

  1. Masukkan perintah berikut untuk membuat koneksi GitLab:

    gcloud builds connections create gitlab CONNECTION_NAME \
      --host-uri=HOST_URI \
      --project=PROJECT_ID \
      --region=REGION \
      --authorizer-token-secret-version=projects/PROJECT_ID/secrets/API_TOKEN/versions/SECRET_VERSION \
      --read-authorizer-token-secret-version=projects/PROJECT_ID/secrets/READ_TOKEN/versions/SECRET_VERSION \
      --webhook-secret-secret-version=projects/PROJECT_ID/secrets/WEBHOOK_SECRET/versions/SECRET_VERSION
    

    Dengan:

    • CONNECTION_NAME adalah nama untuk koneksi host GitLab Anda di Cloud Build.
    • HOST_URI adalah URI instance GitLab Anda. Misalnya, https://my-gle-server.net.
    • PROJECT_ID adalah ID Google Cloud project Anda.
    • REGION adalah region untuk koneksi Anda.
    • API_TOKEN adalah nama token Anda dengan cakupan api.
    • READ_TOKEN adalah nama token Anda dengan cakupan read_api.
    • SECRET_VERSION adalah versi secret Anda.
    • WEBHOOK_SECRET adalah secret webhook Anda.

Anda kini telah berhasil membuat koneksi GitLab.

Mengganti token akses GitLab lama atau yang masa berlakunya habis

Ganti token akses Anda agar koneksi host Cloud Build dapat mempertahankan koneksinya ke repositori GitLab Anda. Jika masa berlaku token akses GitLab Anda habis, koneksi host Cloud Build Anda akan terputus dari repositori GitLab-nya. Jika hal ini terjadi, Anda tidak dapat menonaktifkan koneksi atau menautkan repositori hingga Anda mengganti token yang masa berlakunya habis. Selain itu, Anda akan melihat error dalam situasi berikut:

  • Halaman Connections detail untuk koneksi Anda menampilkan pesan error yang menyatakan Connection is disconnected due to an invalid or expired access token.

  • Jika Anda mencoba menautkan repositori ke koneksi yang memiliki token yang masa berlakunya habis, Anda akan melihat pesan Invalid access token. Mengklik View connection akan mengarahkan Anda ke halaman Connection details untuk koneksi dengan token yang masa berlakunya habis.

Cloud Build memungkinkan Anda mengganti token akses dengan memasukkan nilai token baru dan menyimpannya di Secret Manager dalam versi secret terbaru untuk token tersebut. Untuk mengganti token akses Anda, lakukan hal berikut:

  1. Ganti setiap token akses di GitLab:

    1. Buka repositori GitLab yang terhubung ke koneksi host Cloud Build Anda.

    2. Ikuti petunjuk dalam dokumentasi GitLab untuk mengganti token akses. Saat Anda mengganti token, GitLab akan membuat token baru dengan kredensial baru dan membatalkan validasi versi token sebelumnya. Token yang diganti memiliki izin dan cakupan yang sama dengan token asli.

    3. Salin ID token yang diganti.

  2. Perbarui token akses Anda di Cloud Build:

    1. Buka halaman Connection details untuk koneksi Anda.

    2. Pilih Update access tokens.

    3. Di menu Token rotation, masukkan token baru Anda di kolom API access token dan Read access token.

    4. (Opsional): Jika Anda ingin koneksi Anda selalu menggunakan versi secret terbaru untuk token Anda, pilih Update connection to always use latest version. Meninggalkan opsi ini tidak dipilih mungkin berguna jika koneksi Anda menggunakan nomor versi secret tertentu.

    5. Pilih Update untuk menyimpan perubahan.

      Cloud Build menyimpan token akses baru sebagai versi secret terbaru Anda di Secret Manager.

Untuk mengetahui informasi selengkapnya, lihat Masa berlaku token akses di dokumentasi GitLab.

Langkah berikutnya