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

如何通过Git仓库与CI/CD工具管理Mongo Charts?

可以通过Git+CI/CD管理Mongo Charts的配置与部署

完全可以实现类似Liquibase的变更日志模式,把Mongo Charts的图表配置纳入版本控制,通过CI/CD流水线自动完成多环境的图表创建与更新,无需手动操作。

核心实现逻辑

将Mongo Charts的图表、仪表盘配置以JSON格式存储在Git仓库中,通过CI/CD流水线调用Mongo Charts的官方API或CLI,按照仓库中的配置同步到目标环境,全程可追溯、可回滚。

具体操作步骤

1. 导出并存储初始配置

先把现有图表/仪表盘的配置导出为JSON文件,存到Git仓库的指定目录(比如charts-config/):

# 用Mongo Charts CLI导出单个图表
mongocli charts charts export --projectId <你的项目ID> --chartId <图表ID> --output ./charts-config/user-retention.json

# 导出整个仪表盘
mongocli charts dashboards export --projectId <你的项目ID> --dashboardId <仪表盘ID> --output ./charts-config/sales-dashboard.json

建议按业务模块或环境分组存储配置文件,方便后续维护。

2. 维护变更日志(可选但推荐)

如果需要像Liquibase那样严格跟踪变更顺序,可在仓库中添加charts-changelog.yml文件,记录每一次变更的细节:

- changeId: "20240520-001"
  description: "创建用户留存率图表"
  configPath: "./charts-config/user-retention.json"
  operation: "create"
- changeId: "20240521-001"
  description: "更新销售仪表盘的时间范围过滤"
  configPath: "./charts-config/sales-dashboard.json"
  operation: "update"

流水线可按此日志的顺序执行变更,避免并发修改导致的冲突。

3. 配置CI/CD流水线

以GitHub Actions为例,核心步骤如下(其他CI/CD工具逻辑类似):

jobs:
  deploy-charts:
    runs-on: ubuntu-latest
    steps:
      - name: 拉取代码
        uses: actions/checkout@v4
      - name: 安装Mongo Charts CLI
        run: |
          curl -sSL https://mongodb-cli.s3.amazonaws.com/mongocli_1.36.0_linux_x86_64.tar.gz | tar xz
          sudo mv mongocli /usr/local/bin/
      - name: 配置CLI认证
        run: |
          mongocli config set projectId ${{ secrets.MONGO_PROJECT_ID }}
          mongocli config set publicApiKey ${{ secrets.MONGO_PUBLIC_KEY }}
          mongocli config set privateApiKey ${{ secrets.MONGO_PRIVATE_KEY }}
      - name: 部署所有图表
        run: |
          for file in ./charts-config/*.json; do
            # 先检查图表是否存在,存在则更新,不存在则创建
            chartName=$(jq -r '.name' $file)
            if mongocli charts charts list | grep -q "$chartName"; then
              mongocli charts charts update --name "$chartName" --file $file
            else
              mongocli charts charts create --file $file
            fi
          done

这里用环境变量存储敏感信息(API密钥、项目ID),避免硬编码。

关键注意事项

  • 环境隔离:每个环境(dev/staging/prod)使用独立的Mongo Charts项目或命名空间,流水线通过切换环境变量中的认证信息实现多环境部署
  • 禁止手动修改:生产环境的图表仅允许通过CI/CD流水线更新,禁止手动操作,确保配置与Git仓库一致
  • 增量更新优化:可以通过对比Git中的配置与目标环境当前配置的差异,只更新有变化的图表,减少不必要的API调用
  • 回滚机制:利用Git的版本回溯能力,当需要回滚时,只需检出历史版本的配置文件,重新运行流水线即可

内容的提问来源于stack exchange,提问作者regular

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 22:52:39