FluxCD对接私有GitLab执行bootstrap命令报SSH key扫描错误如何解决
FluxCD对接私有GitLab报错解决方案
问题根因
你执行的flux bootstrap gitlab命令中--hostname参数填写错误,不应该携带https://协议前缀。错误的参数值导致Flux在SSH密钥扫描阶段将https://gitlab.host.com整体识别为主机名,解析时生成了非法的tcp///gitlab.host.com地址,最终触发DNS解析失败报错。
前期Flux能正常提交manifest文件是因为该阶段调用的是你本地环境的Git HTTPS凭证进行操作,不受该参数错误影响。
修复步骤
- 修正bootstrap命令,
--hostname参数仅填写私有GitLab的域名即可,不需要添加HTTP/HTTPS协议头:
flux bootstrap gitlab --hostname=gitlab.host.com --owner=devops --namespace=namespace --repository=my-repo --branch=master --interval=30s --path=clusters/Cluster1
如果你的私有GitLab SSH服务没有使用默认22端口,还需要额外添加--ssh-hostname参数指定SSH访问地址,示例:--ssh-hostname=gitlab.host.com:自定义端口号
2. 若此前执行的不完整bootstrap命令已经在集群中生成了残留资源,可先执行卸载命令清理残留后再重新运行修正后的bootstrap命令:
flux uninstall --namespace <你配置的flux命名空间>
验证
重新执行修正后的命令后,会自动完成SSH公钥指纹扫描、源密钥生成、部署密钥上传到GitLab的全流程,不会再出现当前报错。
内容的提问来源于stack exchange,提问作者Shemeem
相关产品推荐
相关产品推荐

