首页 > 解决方案 > Spring Cloud Config Server 无法连接到私有 git 存储库

问题描述

我正在使用以下掌舵图https://hub.helm.sh/charts/kiwigrid/spring-cloud-config-server在我的 Kubernetes 集群中部署 spring 云配置服务器。git-upload-pack not found: Not Found如果我提供公共存储库,它工作正常,但在提供私有存储库时失败并出现以下错误。我已经检查了我的凭据,并且我传递的凭据是正确的,当我执行kubectl get secrets <secret> -o yaml

用于安装的命令:

helm install spring-config kiwigrid/spring-cloud-config-server --version 0.1.0  --set config.gitUri=<git repo> --set secrets.gitUsername=<base64 encoded> --set secrets.gitPassword=<base64 encoded> --set service.type=NodePort

错误日志:

2020-09-21 12:42:28.688  WARN 1 --- [nio-8888-exec-1] .c.s.e.MultipleJGitEnvironmentRepository : Error occured cloning to base directory.
org.eclipse.jgit.api.errors.TransportException: http://xxxxxx/demo/java_demo: 
http://xxxxx/demo/java_demo/git-upload-pack not found: Not Found
        at org.eclipse.jgit.api.FetchCommand.call(FetchCommand.java:254) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar!/:5.1.3.201810200350-r]
        at org.eclipse.jgit.api.CloneCommand.fetch(CloneCommand.java:306) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar!/:5.1.3.201810200350-r]
        at org.eclipse.jgit.api.CloneCommand.call(CloneCommand.java:200) ~[org.eclipse.jgit-5.1.3.201810200350-r.jar!/:5.1.3.201810200350-r]
        at org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.cloneToBasedir(JGitEnvironmentRepository.java:589) [spring-cloud-config-server-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
        at org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.copyRepository(JGitEnvironmentRepository.java:564) [spring-cloud-config-server-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]
        at org.springframework.cloud.config.server.environment.JGitEnvironmentRepository.createGitClient(JGitEnvironmentRepository.java:547) [spring-cloud-config-server-2.1.3.RELEASE.jar!/:2.1.3.RELEASE]

我使用 gitlab 作为我的代码存储库,它是 HTTP。当我用谷歌搜索错误时,它说用户可能没有推送/拉取权限,但能够使用我在此处传递的相同凭据从 cli 执行相同操作。我还可以从 UI 访问 git 存储库。

标签: springkubernetes-helmspring-cloud-config

解决方案


我通过.git在我的回购名称末尾添加来实现这一点。对于 GitHub,当我只提供 repo 名称时它正在工作,但如果您使用 GitLab .git,请在您的 repo 名称末尾提供扩展名。


推荐阅读