2015-12-10 17 views
7

Ho primavera successiva nuvola di configurazione application.yml:Come chiedere al server Spring Cloud Config di verificare la configurazione da un ramo specifico?

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 

segue è la mia bootstrap.yml di Microservice utente:

spring: 
    application: 
    name: userservice 
    cloud: 
    config: 
     uri: http://localhost:8881/ 

Scenario - 1
Quando mi ha colpito di configurazione del server nel browser come questo :
http://localhost:8881/development/userservice-development.yml
Serve file correttamente. e quando guardo basedir cioè target/config, vedo:

- userservice.yml 
- gateway.yml 

Esattamente quello che volevo, Da quando ho aggiunto questi due file solo nel ramo di sviluppo.

Scenario - 2
Quando eseguo il mio progetto Microservice userservice usando seguente comando:
mvn clean spring-boot:run -Dspring.profiles.active=development

Si recupera il file giusto da Git, ma è cassa dal ramo principale! ma non dal ramo di sviluppo come mi aspetto. sto aspettando giusto? (FYI Ho sia lo sviluppo che la produzione yml nel ramo principale)

Quindi la domanda è, come si fa a utilizzare il server di configurazione? C'è qualche configurazione che possiamo impostare per recuperare yml da quel particolare ramo solo? Credo che sia necessario impostare alcune etichette, perché come da documentazione, l'etichetta predefinita è master. Qualcuno può farmi sapere come andiamo a impostare l'etichetta nello scenario sopra?

risposta

10

Secondo il documentation, la configurazione che si desidera impostare nel tuo client di configurazione è:

spring.cloud.config.label=mybranch 

Dove mybranch è un ramo esistente nel repository git.

+1

Grazie. Stavo impostando l'etichetta tutto nel server di configurazione. quindi è tutto sul binding nell'applicazione client di configurazione? era poco confusionario decidere tra la proprietà 'spring.cloud.config' del server o del client. – agpt

+1

Il mio ramo ha una barra (/), quindi come posso configurarlo? Ho provato 'spring.cloud.config.label = release/1.0.0, release_1.0.0, release (_) 1.0.0' ma non funziona –

+0

Ho capito. Dovrebbe essere 'release (_) 1.0.0' –

5

Server di configurazione progettato per utilizzare il profilo per separare l'ambiente. Esempio:

/{application}/{profile}[/{label}] 
/{application}-{profile}.yml 
/{label}/{application}-{profile}.yml 
/{application}-{profile}.properties 
/{label}/{application}-{profile}.properties 

La configurazione incoerenza ramificazione make.

Il concetto di server di configurazione si basa sulla configurazione a 12 fattori (http://12factor.net/config).

Verificare per motivi di dettaglio.

5

È possibile specificare il ramo predefinito (più in generale, etichetta Git) che un server di configurazione utilizza se un client non specifica l'etichetta, tramite la proprietà spring.cloud.config.server.git.default-label, forse questo è ciò che si sta cercando? Sicuramente risolve il problema per me!

Problemi correlati