正式なドキュメントは英語版であり、この日本語訳はAI支援翻訳により作成された参考用のものです。日本語訳の一部の内容は人間によるレビューがまだ行われていないため、翻訳のタイミングにより英語版との間に差異が生じることがあります。最新かつ正確な情報については、英語版をご参照ください。

チュートリアル: Google Cloudインテグレーションをセットアッする

このチュートリアルでは、Google CloudをGitLabと統合して、Google Cloudに直接デプロイする方法について説明します。

Google Cloudインテグレーションをセットアップするには、次の手順に従ってください:

  1. Google Cloudアイデンティティおよびアクセス管理(IAM)で利用を保護する
  2. Google Artifact Registryリポジトリに接続する
  3. Google CloudでCI/CDジョブを実行するようにGitLab Runnerをセットアップする
  4. CI/CDコンポーネントを使用してGoogle Cloudにデプロイする

はじめる前

インテグレーションを設定するには、次のことをする必要があります:

Google Cloudアイデンティティおよびアクセス管理(IAM)で利用を保護する

Google Cloudの利用を保護するには、Google Cloud IAMインテグレーションをセットアップする必要があります。この手順の後、GitLabグループまたはプロジェクトがGoogle Cloudに接続されます。ワークロードアイデンティティフェデレーションを使用して、サービスアカウントキーを必要とせずに、関連するリスクを使用して、Google Cloudリソースの権限を処理できます。

  1. 左側のサイドバーで、検索または移動先を選択して、グループまたはプロジェクトを見つけます。グループでこれを設定すると、設定はデフォルトで内部のすべてのプロジェクトに適用されます。
  2. 設定 > インテグレーションを選択します。
  3. Google Cloud IAMを選択します。
  4. Guided setup(ガイド付きセットアップ)を選択し、指示に従います。

Google Artifact Registryリポジトリに接続する

Google IAMインテグレーションがセットアップされたので、Google Artifact Registryリポジトリに接続できます。この手順の後、GitLabでGoogle Cloudアーティファクトを表示できます。

  1. GitLabプロジェクトで、左側のサイドバーで、設定 > インテグレーションを選択します。
  2. Googleアーティファクトのレジストリを選択します。
  3. インテグレーションを有効にするで、有効チェックボックスをオンにします。
  4. フィールドに入力します:
    • Google CloudプロジェクトID: Artifact Registryリポジトリが配置されているGoogle CloudプロジェクトのID。
    • リポジトリ名: Artifact Registryリポジトリの名前。
    • リポジトリの場所: Artifact Registryリポジトリの場所。
  5. Configure Google Cloud IAM policies(Google Cloud IAMポリシーを設定する)で、画面の指示に従ってGoogle CloudでIAMポリシーをセットアップします。これらのポリシーは、GitLabプロジェクトでArtifact Registryリポジトリを使用するために必要です。
  6. 変更を保存を選択します。
  7. Google Cloudアーティファクトを表示するには、左側のサイドバーでデプロイ > Googleアーティファクトのレジストリを選択します。

後の手順で、コンテナイメージをGoogle Artifact Registryにプッシュします。

Google CloudでCI/CDジョブを実行するようにGitLab Runnerをセットアップする

Google CloudでCI/CDジョブを実行するようにGitLab Runnerをセットアップできます。この手順の後、GitLabプロジェクトには、複数のジョブを同時に実行するために一時的なRunnerを作成するRunnerマネージャーを備えた、オートスケールRunnerフリートがあります。

  1. GitLabプロジェクトで、左側のサイドバーで、設定 > CI/CDを選択します。
  2. Runnersセクションを展開します。
  3. New project runner(新しいプロジェクトRunner)を選択します。
  4. フィールドに入力します。
    • プラットフォームセクションで、Google Cloudを選択します。
    • タグセクションのタグフィールドに、ジョブタグを入力してRunnerが実行できるジョブを指定します。このRunnerのジョブタグがない場合は、Run untagged(タグなしで実行)を選択します。
    • オプション。Runnerの説明フィールドに、GitLabに表示されるRunnerの説明を追加します。
    • オプション。設定セクションで、その他の設定を追加します。
  5. Runnerを作成を選択します。
  6. ステップ1のフィールドに入力します: 環境を指定セクションで、RunnerがCI/CDジョブを実行するGoogle Cloudの環境を指定します。
  7. ステップ2の下: GitLab Runnerをセットアップするで、セットアップ手順を選択します。
  8. モーダルウィンドウ内の指示に従ってください。ステップ1は、Runnerをプロビジョニングする準備ができるように、Google Cloudプロジェクトに対して1回だけ行う必要があります。

手順に従うと、Runnerがオンラインになり、ジョブを実行できるようになるまでに1分かかる場合があります。

CI/CDコンポーネントを使用してGoogle Cloudにデプロイする

開発のベストプラクティスは、パイプライン全体の整合性を維持するために、CI/CDコンポーネントなどの構文を再利用することです。

GitLabとGoogleのコンポーネントのライブラリを使用して、GitLabプロジェクトがGoogle Cloudリソースと対話できるようにすることができます。GoogleのCI/CDコンポーネントを参照してください。

Google Artifact Registryにコンテナイメージをコピーする

開始する前に、コンテナイメージをビルドしてGitLabコンテナレジストリにプッシュする、動作するCI/CD設定が必要です。

GitLabコンテナレジストリからGoogle Artifact Registryにコンテナイメージをコピーするには、パイプラインにGoogleのCI/CDコンポーネントを含めます。この手順の後、新しいコンテナイメージがGitLabコンテナレジストリにプッシュされるたびに、Google Artifact Registryにもプッシュされます。

  1. GitLabプロジェクトで、左側のサイドバーで、ビルド > パイプラインエディタを選択します。

  2. 既存の設定で、次のようにコンポーネントを追加します。

    • このジョブが実行されるステージで<your_stage>を置き換えます。イメージがビルドされ、GitLabコンテナレジストリにプッシュされた後である必要があります。
    include:
      - component: gitlab.com/google-gitlab-components/artifact-registry/upload-artifact-registry@main
        inputs:
          stage: <your_stage>
          source: $CI_REGISTRY_IMAGE:$CI_COMMIT_SHORT_SHA
          target: $GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_LOCATION-docker.pkg.dev/$GOOGLE_ARTIFACT_REGISTRY_PROJECT_ID/$GOOGLE_ARTIFACT_REGISTRY_REPOSITORY_NAME/$CI_PROJECT_NAME:$CI_COMMIT_SHORT_SHA
  3. 記述的なコミットメッセージを追加します。ターゲットブランチはデフォルトブランチである必要があります。

  4. 変更をコミットするを選択します。

  5. ビルド > パイプラインに移動し、新しいパイプラインが実行されていることを確認します。

  6. パイプラインが正常に完了した後、Google Artifact Registryにコピーされたコンテナイメージを表示するには、左側のサイドバーでデプロイ > Googleアーティファクトのレジストリを選択します。

Google Cloudリリースを作成する

Google Cloudデプロイと統合するには、パイプラインにGoogleのCI/CDコンポーネントを含めます。この手順の後、パイプラインはアプリケーションでGoogle Cloudデプロイリリースを作成します。

  1. GitLabプロジェクトで、左側のサイドバーで、ビルド > パイプラインエディタを選択します。
  2. 既存の設定で、Google Cloudデプロイコンポーネントを追加します。
  3. コンポーネントのinputsを編集します。
  4. 記述的なコミットメッセージを追加します。ターゲットブランチはデフォルトブランチである必要があります。
  5. 変更をコミットするを選択します。
  6. ビルド > パイプラインに移動し、新しいパイプラインが合格することを確認します。
  7. パイプラインが正常に完了した後、リリースを表示するには、Google Cloudドキュメントを参照してください。

以上です。Google CloudをGitLabと統合し、GitLabプロジェクトをGoogle Cloudにシームレスにデプロイしました。