Spinnaker使用GitLab动态清单触发Resolve Deploy Source Manifest异常求助
问题诊断与配置方案
核心问题分析
- 404错误根源:Orca服务调用
http://localhost:7002/artifacts/fetch/返回404,本质是Orca配置的Clouddriver地址与实际监听地址不匹配,或Clouddriver未启用Artifact模块。 - UI访问故障:修改Clouddriver配置后出现UI无法访问,是因为Gate/Deck与Clouddriver的地址配置不一致,导致服务间通信中断。
正确配置方案(主机IP:172.16.5.12,Gate/Deck BaseURL:https://spinnaker.my.intranet:8084/、https://spinnaker.my.intranet:9000/)
1. 统一服务间通信地址
所有Spinnaker服务需使用172.16.5.12作为内部通信地址,避免localhost导致跨服务访问失败。
修改Clouddriver配置(clouddriver.yml)
server: port: 7002 address: 172.16.5.12 baseUrl: http://172.16.5.12:7002 # 启用Artifact模块并配置GitLab账户 artifacts: enabled: true gitlab: enabled: true accounts: - name: gitlab-internal token: "YOUR_GITLAB_PRIVATE_TOKEN" # 替换为有权限访问项目1的GitLab令牌 address: https://gitlab.my.intranet/api/v4
修改Orca配置(orca.yml)
确保Orca指向正确的Clouddriver地址:
clouddriver: baseUrl: http://172.16.5.12:7002
修改Gate配置(gate.yml)
server: port: 8084 address: 172.16.5.12 baseUrl: https://spinnaker.my.intranet:8084 services: clouddriver: baseUrl: http://172.16.5.12:7002 orca: baseUrl: http://172.16.5.12:8083
修改Deck配置(settings.js)
window.spinnakerSettings = { gateUrl: 'https://spinnaker.my.intranet:8084', deckUrl: 'https://spinnaker.my.intranet:9000', // 保留其他原有配置 };
2. 修正GitLab动态清单配置
将流水线中的GitLab文件清单调整为使用已定义的artifact账户,避免硬编码URL:
type: gitlab/file name: src/namespace.yml version: main account: gitlab-internal # 与clouddriver.yml中配置的GitLab账户名一致 project: 1 # GitLab项目ID filePath: src/namespace.yml
3. 重启Spinnaker服务
sudo systemctl restart spinnaker-clouddriver spinnaker-orca spinnaker-gate spinnaker-deck
4. 验证配置
- 检查Clouddriver健康状态:
curl http://172.16.5.12:7002/health,确认返回UP状态。 - 测试Artifact拉取:在UI中创建仅包含"Fetch Artifact"阶段的流水线,配置拉取目标GitLab文件,验证是否成功。
- 重新运行原流水线,确认
Resolve Deploy Source Manifest任务不再报错。
内容的提问来源于stack exchange,提问作者coder21
相关产品推荐
相关产品推荐

