You are viewing the documentation for Blueriq 13. Documentation for other versions is available in our documentation directory.

For an explanation on Spring Cloud Config see http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html 

The Runtime uses Spring Cloud Config to be able to load properties from a remote configuration server.

By default the runtime is packaged with an embedded configuration server. This embedded server is configured serve a set of property files located on the file system. Because the server is embedded, the cloud config client does not need to be configured with a remote uri of the configuration server. Instead the client will automatically load its configuration from the embedded config server.

For the embedded config server the following properties are configured:

spring.profiles.active=native 
spring.cloud.config.server.native.searchLocations=${spring.config.location}
spring.cloud.config.server.bootstrap=true

By specifying the

spring.config.additional-location
 property, the location from where property files are read may be changed. At this location an application.properties may be placed with properties to configure the runtime.

Properties supplied to the runtime through the config server take precedence over all other property sources. This may be changed by setting one of the following properties:

  • spring.cloud.config.allowOverride=[true|false] (false for lowest priority)
  • spring.cloud.config.overrideNone=[true|false] (true for highest priority)
  • spring.cloud.config.overrideSystemProperties=[true|false] (true for higher priority than system properties, false for lower priority than system properties)

For any of these properties to have effect, they must be specified in a property file hosted by the config server. For example in application.properties in the directory specified by spring.cloud.config.server.native.searchLocations property or in the configured git repository if applicable.

See also http://cloud.spring.io/spring-cloud-static/spring-cloud.html#overriding-bootstrap-properties for more information

Client Config

Spring config client is integrated in the blueriq-runtime. In order to connect to a remote server instead of the embedded server, the following properties can be set in a file named bootstrap.properties at the 

spring.config.additional-location

bootstrap.properties
spring.cloud.config.uri=<cloud-server-uri>
spring.cloud.config.username=<cloud-server-username> (*)
spring.cloud.config.password=<cloud-server-password> (*)
spring.cloud.config.failFast=true
spring.cloud.config.retry.max-attempts=10
spring.cloud.config.retry.initial-interval=5000
spring.cloud.config.retry.max-interval=10000

* To make a connection to cloud config server, see #scsauth

Server Config

Spring config server can run separately and handle the property files. The client will communicate with the server to get the property files.

The property files will either come from the file-system or use GIT.


bootstrap.properties
encrypt.failOnError=false
encrypt.key=IGotTheKey
encrypt.key-store.secret=IGotTheSecret
spring.cloud.config.server.bootstrap=true (*)

* Indicates that the server should read it’s own application.properties from the configured property files (GIT or filesystem)

bootstrap.properties - extended for using the file-system
spring.profiles.active=native
spring.cloud.config.server.native.searchLocations


bootstrap.properties - extended for using GIT - basic authentication
spring.cloud.config.server.git.uri=https://git.blueriq.com/config-repo.git
spring.cloud.config.server.git.basedir=target/config
spring.cloud.config.server.git.username=<git_username>
spring.cloud.config.server.git.password=<git_password>

 

application.properties
server.port=8888
security.user.name=<username> (*)
security.user.password=<password> (*)
management.context-path=/admin

 * Username and password that will be used for the client to connect to this server.

Currently static resources are not managed by the spring cloud config server (for example frontend sources and exports). This may change in a future release.

Further reading

Reading properties from file system

Reading properties from GIT

 

  • No labels