在专用网络中从 GitLab Enterprise Edition 构建代码库

借助 Cloud Build,您可以创建触发器以从代码库进行构建 托管在 GitLab 企业版上, 让您可以执行构建来响应各种事件,例如提交推送或 合并与您的 GitLab Enterprise Edition 代码库关联的请求。

本页面介绍了如何在 GitLab 上启用触发器功能 企业版实例(如果您的实例托管在专用网络中)。

准备工作

  • 启用 Cloud Build, Secret Manager, Compute Engine, and Service Networking API。

    启用 API

在专用网络中从 GitLab Enterprise Edition 构建代码库

如果您的 GitLab Enterprise Edition 实例只能在 您需要设置一个 Service Directory 服务,并使用专用池进行构建。通过 包含您的 VPC 网络的项目可以存在于另一个 与包含 Service Directory 服务的项目进行比较。 请按照以下说明确保您的实例在 创建触发器:

  1. 启用 Service Directory API

  2. 确保您已将 Project IAM Admin 角色授予 Google Cloud 项目, Service Directory 服务。了解如何授予 有关 IAM 角色的信息,请参阅 配置对 Cloud Build 资源的访问权限

  3. 完成以下步骤,设置 Service Directory 服务:

    1. 配置命名空间 Google Cloud 项目的配额。

      您在命名空间中指定的区域必须与您设定的区域一致 指定 Cloud Build 主机连接。

    2. 配置服务 命名空间中

    3. 配置端点

      在配置端点时,您必须使用内部 IP 地址和 指定 HTTPS 端口号 服务。

    如需详细了解专用网络访问配置,请参阅 配置专用网络访问权限。 Service Directory 还可以与各种服务集成, 例如负载平衡器和 Google Kubernetes Engine (GKE)。 如需了解详情,请参阅 Service Directory 和负载均衡概览Service Directory for GKE 概览

  4. 向 Service Directory 授予对 Cloud Build 的访问权限 服务代理:

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

    其中:

    • PROJECT_ID 是您的 Google Cloud 项目 ID。
    • PROJECT_ID_CONTAINING_SERVICE_DIRECTORY_RESOURCE”现为 包含您的 Service Directory 资源的项目 ID。
  5. Service Directory Viewer 角色授予 Cloud Build 服务账号 service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com

  6. Private Service Connect Authorized Service 角色授予 Cloud Build 服务账号 VPC 网络资源 service-${PROJECT_NUMBER}@gcp-sa-cloudbuild.iam.gserviceaccount.com。您 必须在包含您的 VPC 的项目中授予该角色 。

  7. 使用专用池运行 您的 build。如果您尚未创建专用池,请参阅新建专用池 专用池

  8. 按照说明 创建 GitLab Enterprise Edition 触发器 构建托管在 GitLab Enterprise Edition 实例上的代码库。

    如果您在连接 GitLab 企业版主机连接到 Cloud Build,则必须设置 主机 URI 作为证书的主题备用名称 (SAN)。

您的 GitLab Enterprise Edition 触发器现在将自动调用 GitLab Enterprise Edition 实例。

数据共享

从 Cloud Build 发送到 GitLab Enterprise Edition 的数据可以帮助您 在 GitLab Enterprise 上按名称识别触发器并查看构建结果 Edition 代码库。

以下数据在 Cloud Build 和 GitLab 之间共享 企业版:

  • Google Cloud 项目 ID
  • 触发器名称

后续步骤