J'ai le cloud print config application.yml suivant:
spring:
application:
name: configserver
cloud:
config:
server:
git:
uri: https://[email protected]/xyz/microservices-configs.git
username: xyz
password: xyz
basedir: target/configs
server:
port: 8881
Voici mon bootstrap.yml
d'utilisateur microservice:
spring:
application:
name: userservice
cloud:
config:
uri: http://localhost:8881/
Scénario 1
Quand je frappe le serveur de configuration dans le navigateur comme ceci:http://localhost:8881/development/userservice-development.yml
Il sert le fichier correctement. et quand je regarde basedir
c'est-à-dire target/config, je vois:
- userservice.yml
- gateway.yml
Exactement ce que je voulais, Depuis que j'ai ajouté ces deux fichiers uniquement dans la branche de développement .
Scénario - 2
Lorsque j'exécute mon projet de service utilisateur avec la commande suivante:mvn clean spring-boot:run -Dspring.profiles.active=development
Il récupère le bon fichier de git, mais il extrait de la branche master! mais pas de la branche de développement comme je l’attendais. Est-ce que j'attends bien? (FYI j'ai le développement et la production yml dans la branche principale)
La question est donc de savoir comment utiliser le serveur de configuration. Existe-t-il une configuration que nous pouvons définir pour extraire yml de cette branche particulière uniquement? Je crois que nous devons définir une étiquette, car selon la documentation, l’étiquette par défaut est maître. Quelqu'un peut-il me dire comment procéder pour définir l'étiquette dans le scénario ci-dessus?
Selon la documentation , la configuration que vous souhaitez définir dans votre client de configuration est la suivante:
spring.cloud.config.label=mybranch
Où mybranch
est une branche existante de votre dépôt Git.
Vous pouvez spécifier la branche par défaut (plus généralement, le libellé Git) utilisée par un serveur de configuration si un client ne spécifie pas le libellé, via la propriété spring.cloud.config.server.git.default-label
. Certainement résout le problème pour moi!
Serveur de configuration conçu pour utiliser le profil dans un environnement distinct ..__ Exemple:
/{application}/{profile}[/{label}]
/{application}-{profile}.yml
/{label}/{application}-{profile}.yml
/{application}-{profile}.properties
/{label}/{application}-{profile}.properties
Le branchement rend la configuration incohérente.
Le concept de serveur de configuration est basé sur une configuration à 12 facteurs ( http://12factor.net/config ).
Vérifiez-le pour la raison de détail.
Juste en ajoutant quelques informations.
Si quelqu'un utilise bootstrap.yaml, assurez-vous de donner des guillemets doubles autour de plusieurs branches. Chose étrange, vous n'avez pas besoin de guillemets pour ceux de application.yaml :)
spring
cloud:
config:
label: "myfeature,develop"
Si seulement utilisez la branche dans un fichier yml, configurez simplement:
spring:
cloud:
config:
server:
git:
uri: https://gitlab.com/somerepo.git
username: someuser
password: somepass
default-label: branchname