このページでは、GitLab ホストを Cloud Build に接続する方法について説明します。
始める前に
- 
  
  
    
      Enable the Cloud Build and Secret Manager APIs. Roles required to enable APIs To enable APIs, you need the Service Usage Admin IAM role ( roles/serviceusage.serviceUsageAdmin), which contains theserviceusage.services.enablepermission. Learn how to grant roles.
GitLab ホストに接続する
GitLab インスタンスのホスト接続を作成する前に、次の手順で GitLab に個人用アクセス トークンを作成する必要があります。
- GitLab インスタンスにログインします。 
- インスタンスの GitLab ページで、右上のアバターをクリックします。 
- [プロフィールを編集] をクリックします。 
- 左側のサイドバーで [アクセス トークン] を選択します。 - [個人用アクセス トークン] ページが表示されます。 
- スコープが - apiのアクセス スコープを作成して、リポジトリの接続と切断に使用します。
- スコープが - read_apiのアクセス トークンを作成して、Cloud Build リポジトリがリポジトリ内のソースコードにアクセスできるようにします。
コンソール
GitLab ホストを Cloud Build に接続するには:
- Google Cloud コンソールで [リポジトリ] ページを開きます。 - [リポジトリ] ページが表示されます。 
- ページ上部の [第 2 世代] タブを選択します。 
- 上部のバーにあるプロジェクト セレクタで、 Google Cloud プロジェクトを選択します。 
- [ホスト接続の作成] をクリックして、新しいホストを Cloud Build に接続します。 
- 左側のパネルで、ソース プロバイダとして Bitbucket を選択します。 
- [接続の構成] セクションで、次の情報を入力します。 - [リージョン]: 接続のリージョンを選択します。 
- [名前]: 接続の名前を入力します。 
 
- [ホストの詳細] セクションで、次の情報を選択または入力します。 - GitLab プロバイダ: プロバイダとして [GitLab.com] を選択します。
 
- [個人用アクセス トークン] セクションで、次の情報を入力します。 - API アクセス トークン: スコープ アクセスが - apiのトークンを入力します。このトークンは、リポジトリの接続と切断に使用されます。
- Read API アクセス トークン: スコープ アクセスが - read_apiのトークンを入力します。Cloud Build トリガーは、このトークンを使用してリポジトリ内のソースコードにアクセスします。
 
- [接続] をクリックします。 - [接続] ボタンをクリックすると、個人用アクセス トークンが Secret Manager に安全に保存されます。ホスト接続後、Cloud Build はユーザーに代わって Webhook シークレットも作成します。シークレットは、Secret Manager ページで確認および管理できます。 
これで、GitLab 接続が正常に作成されました。
gcloud
GitLab ホストを Cloud Build に接続する前に、次の手順で認証情報を保存します。
- 次のコマンドを実行して、Secret Manager で Webhook シークレットを作成します。 - cat /proc/sys/kernel/random/uuid | tr -d '\n' | gcloud secrets create my-gle-webhook-secret --data-file=-
- ホスト接続の作成に使用するように計画するプロジェクトとは異なる Google Cloud プロジェクトにシークレットを保存する場合は、次のコマンドを入力して、プロジェクトに 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"- 説明: - PROJECT_ID は Google Cloud プロジェクト ID です。
 
これで、GitLab ホストを Cloud Build に接続できるようになりました。
次の手順を行います。
GitLab ホストを Cloud Build に接続するには:
- 次のコマンドを入力して、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- ここで - CONNECTION_NAME は、Cloud Build の GitLab ホスト接続の名前です。
- HOST_URI は GitLab インスタンスの URI です。例: https://my-gle-server.net
- PROJECT_ID は Google Cloud プロジェクト ID です。
- REGION は、接続のリージョンです。
- API_TOKEN は、スコープが apiのトークンの名前です。
- READ_TOKEN は、スコープが read_apiのトークンの名前です。
- SECRET_VERSION はシークレットのバージョンです。
- WEBHOOK_SECRET は Webhook シークレットです。
 
これで、GitLab 接続が正常に作成されました。
次のステップ
- GitLab リポジトリに接続する方法を確認する。
- GitLab パイプラインで Google マネージド CI / CD コンポーネントを使用して、ワークロードをビルドして Google Cloud にデプロイする方法を確認する。 Google Cloudの GitLab をご覧ください。