![](/img/trans.png)
[英]Spring Cloud Config Server: error: No such label: master
[英]No such label error with spring cloud config server with composite config of two git repos
我們有一個帶有如下復合配置的 spring cloud 配置服務器:
spring:
profiles:
active: composite
cloud:
config:
server:
composite:
-
type: git
uri: "https://github.comcast.com/config-org/{application}"
username: "mainUsername"
password: "mainPassword"
searchPaths: "*"
-
type: git
uri: "https://github.comcast.com/config-org/shared-repo"
username: "sharedUsername"
password: "sharedPassword"
searchPaths: "*"
health:
enabled: false
這是我們遇到的問題。 鑒於有一個名為xsp-reference-service
的存儲庫,當雲配置客戶端向配置服務器發出請求時,該請求帶有應用程序 ( xsp-reference-service
) 存儲庫中存在但不在共享中的分支的標簽( shared-repo
) 存儲庫,我們得到這個:
{
"timestamp": "2019-12-04T16:18:43.886+0000",
"status": 404,
"error": "Not Found",
"message": "No such label: schrodingers_branch",
"path": "/xsp-reference-service/dev/schrodingers_branch"
}
有沒有辦法讓 Spring Cloud Config Server 不用擔心共享存儲庫中缺少分支(優雅地失敗)? 如果沒有,如果提供的標簽不存在,我們是否可以強制雲配置服務器使用默認標簽(分支名稱)? 我什至會就可能更好地服務於我們的用例的不同設置提出建議。 歡迎提出任何意見。
我沒有評論所需的代表,也不知道如何告訴 Spring Cloud Config Server 優雅地失敗。 話雖如此,我可以在這里找到一些信息 [1]。
上述文檔中的兩個要點:
- 從環境存儲庫檢索值時的任何類型的失敗都會導致整個復合環境的失敗。
- 使用復合環境時,重要的是所有存儲庫都包含相同的標簽。 如果您的環境與前面示例中的環境類似,並且您請求帶有 master 標簽的配置數據,但 Subversion 存儲庫不包含名為 master 的分支,則整個請求將失敗。
通過共享存儲庫重新審視您的設計可能符合您的最大利益。 一種替代方法是使用Spring Vault [2]。 然后(取自上述相同鏈接)您可以定義不同類型的存儲庫並且不再有這種復合標簽問題。
spring:
profiles:
active: git, vault
cloud:
config:
server:
git:
uri: file:///path/to/git/repo
order: 2
vault:
host: 127.0.0.1
port: 8200
order: 1
1: https : //cloud.spring.io/spring-cloud-config/multi/multi__spring_cloud_config_server.html#composite-environment-repositories
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.