You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Gitlab CI+To be Continuous如何在同一流水线部署至多Openshift实例?

在同一GitLab CI流水线部署到多个OpenShift实例(基于To be Continuous模板)

完全可以实现,核心是利用To be Continuous模板的变量覆盖能力,为每个OpenShift实例单独配置专属变量并创建独立的部署作业。以下是具体操作方案:

1. 配置多实例专属CI变量

在GitLab项目的CI/CD > 变量页面,为两个生产环境的OpenShift实例分别设置带标识前缀的变量:

  • 第一个生产实例:
    • PROD1_OS_TOKEN:对应第一个OpenShift集群的令牌
    • PROD1_OS_SERVER:第一个集群的API地址
    • PROD1_OS_PROJECT:目标项目名称
  • 第二个生产实例:
    • PROD2_OS_TOKEN:第二个OpenShift集群的令牌
    • PROD2_OS_SERVER:第二个集群的API地址
    • PROD2_OS_PROJECT:目标项目名称

建议将这些变量设为保护变量和掩码变量,避免敏感信息泄露。

2. 编写流水线部署作业

在.gitlab-ci.yml中,通过复用To be Continuous的OpenShift模板,为每个实例创建独立的部署作业,覆盖对应的变量:

# 部署到第一个OpenShift生产集群
deploy-prod1:
  extends:
    - .to-be-continuous.openshift
  variables:
    OS_TOKEN: $PROD1_OS_TOKEN
    OS_SERVER: $PROD1_OS_SERVER
    OS_PROJECT: $PROD1_OS_PROJECT
    CI_ENVIRONMENT_NAME: prod1
    CI_ENVIRONMENT_URL: https://your-app-prod1.example.com

# 部署到第二个OpenShift生产集群
deploy-prod2:
  extends:
    - .to-be-continuous.openshift
  variables:
    OS_TOKEN: $PROD2_OS_TOKEN
    OS_SERVER: $PROD2_OS_SERVER
    OS_PROJECT: $PROD2_OS_PROJECT
    CI_ENVIRONMENT_NAME: prod2
    CI_ENVIRONMENT_URL: https://your-app-prod2.example.com

3. 可选:控制部署流程

如果需要按顺序部署(比如先部署到第一个集群验证后再部署第二个),可以添加执行条件:

deploy-prod2:
  extends:
    - .to-be-continuous.openshift
  variables:
    # 变量同上
  needs: ["deploy-prod1"] # 等待第一个部署作业完成再执行
  when: manual # 手动触发,适合生产环境的二次确认

关键注意事项

  • 确保所有变量前缀和名称拼写准确,避免因变量引用错误导致部署失败
  • 不要依赖To be Continuous的自动环境检测,明确覆盖OS_*变量以指定目标集群
  • 生产环境的部署作业建议开启手动触发,降低误操作风险

内容的提问来源于stack exchange,提问作者Nicolas B.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 13:06:18