Help us learn about your current experience with the documentation. Take the survey.

云种子

  • 层级:免费版、高级版、旗舰版
  • 提供:GitLab.com、GitLab自托管、GitLab专用

云种子是由GitLab领导的开源项目,与谷歌云(Google Cloud)合作开发。

云种子结合了类似Heroku的易用性与超云灵活性。我们通过使用OAuth 2在基于Terraform和基础设施即代码的超云上配置服务,以实现运维操作。

目标

我们相信,从GitLab部署Web应用(及其他工作负载)到主要云提供商应该是轻而易举的事。

为支持这一努力,云种子让在GitLab中使用合适的谷歌云服务变得简单直观。

为什么选择谷歌云?

或者为什么不选AWS或Azure?

云种子是一个开源项目,任何人都可以扩展它,我们很乐意与每家主要的云提供商合作。我们选择与谷歌云合作,是因为他们的团队在这个项目中易于接触、支持和协作。

作为一个开源项目,每个人都可以贡献并塑造我们的方向。

部署到谷歌云Run

当您的Web应用位于GitLab项目中后,请按照以下步骤使用云种子将其从GitLab部署到谷歌云:

  1. 设置部署凭证
  2. (可选)配置您偏好的GCP区域
  3. 配置Cloud Run部署管道

设置部署凭证

云种子提供了一个界面,可从您的GitLab项目中创建谷歌云平台(GCP)服务账号。在服务账号创建流程中必须选择关联的GCP项目。此过程会生成服务账号、密钥和部署权限。

要创建服务账号:

  1. 前往 项目 :: 基础设施 :: 谷歌云 页面。
  2. 选择 创建服务账号
  3. 遵循谷歌OAuth 2流程并授权GitLab。
  4. 选择您的GCP项目。
  5. 为所选GCP项目关联一个Git引用(如分支或标签)。
  6. 提交表单以创建服务账号。

生成的服务账号、服务账号密钥及关联的GCP项目ID存储在GitLab的项目CI变量中。您可以在 项目 :: 设置 :: CI 页面查看和管理这些信息。

生成的服务账号具有以下角色:

  • roles/iam.serviceAccountUser
  • roles/artifactregistry.admin
  • roles/cloudbuild.builds.builder
  • roles/run.admin
  • roles/storage.admin
  • roles/cloudsql.client
  • roles/browser

您可以通过将CI变量存储在秘密管理器中来提高安全性。更多信息,请参阅使用GitLab进行秘密管理

配置您偏好的GCP区域

当您为部署配置GCP区域时,提供的区域列表是所有可用GCP区域的子集。

要配置区域:

  1. 前往 项目 :: 基础设施 :: 谷歌云 页面。
  2. 选择 配置GCP区域
  3. 选择您偏好的GCP区域。
  4. 为所选GCP区域关联一个Git引用(如分支或标签)。
  5. 提交表单以配置GCP区域。

配置的GCP区域存储在GitLab的项目CI变量中。您可以在 项目 :: 设置 :: CI 页面查看和管理这些信息。

配置Cloud Run部署管道

您可以在管道中配置谷歌云Run部署作业。此类管道的典型用途是持续部署您的Web应用。

项目管道本身可能有更广泛的目的,涵盖多个阶段,如构建、测试和安全。因此,Cloud Run部署选项被打包为一个作业,融入更大的管道中。

要配置Cloud Run部署管道:

  1. 前往 项目 :: 基础设施 :: 谷歌云 页面。
  2. 进入 部署 标签页。
  3. 对于 Cloud Run,选择 通过合并请求配置
  4. 审查更改并提交以创建合并请求。

这将创建一个新分支,其中包含Cloud Run部署管道(或注入现有管道),并创建一个相关合并请求,用于审查更改和部署管道执行情况,然后合并到主分支。

配置谷歌云SQL数据库

关系型数据库实例可以从 项目 :: 基础设施 :: 谷歌云 页面配置。Cloud SQL是用于配置数据库实例的基础谷歌云服务。

支持的数据库和版本如下:

  • PostgreSQL:14、13、12、11、10 和 9.6
  • MySQL:8.0、5.7 和 5.6
  • SQL Server
    • 2019:Standard、Enterprise、Express 和 Web
    • 2017:Standard、Enterprise、Express 和 Web

谷歌云定价适用。请参考Cloud SQL定价页面

  1. 创建数据库实例
  2. 通过后台工作者设置数据库
  3. 连接到数据库
  4. 管理数据库实例

创建数据库实例

项目 :: 基础设施 :: 谷歌云 页面,选择 数据库 标签页。这里有三个按钮用于创建PostgreSQL、MySQL和SQL Server数据库实例。

数据库实例创建表单包含GCP项目、Git引用(分支或标签)、数据库版本和机器类型字段。提交后,数据库实例被创建,数据库设置被排队作为后台作业处理。

通过后台工作者设置数据库

数据库实例成功创建后,会触发后台工作者执行以下任务:

  • 创建数据库用户
  • 创建数据库模式
  • 将数据库详情存储在项目的CI/CD变量中

连接到数据库

数据库实例设置完成后,数据库连接详情可作为项目变量获取。这些可以在 项目 :: 设置 :: CI 页面管理,并在适当环境中执行的管道中可用。

管理数据库实例

项目 :: 基础设施 :: 谷歌云 :: 数据库 中的实例列表会链接回谷歌云控制台。选择一个实例以查看详情并管理该实例。

贡献给云种子

有几种方式您可以贡献给云种子:

  • 使用云种子并分享反馈
  • 如果您熟悉Ruby on Rails或Vue.js,可以考虑作为开发者贡献给GitLab。
    • 云种子的大部分是GitLab代码库中的一个内部模块。
  • 如果您熟悉GitLab管道,可以考虑贡献给云种子库项目。