Managing common properties and Container Health Guidelines through core-lib-azure
Context
Today there are various configuration properties which are common across all OSDU services. Managing these configurations across all services is difficult because if there is an update or addition of new configuration, then that update/addition should be incorporated across all services.
Problem Statement
Whenever there is an update or addition of common configuration property, that change has to be made available in application.properties of all the OSDU services.
Proposed Solution
Idea is to have all the common configuration properties in core-lib-azure. As every OSDU service uses core-lib-azure, those properties will be available for consumption in every service. The following is a representation of how common properties will be available through core-lib-azure. All the common configuration properties can be placed in common.properties file within core-lib-azure and be packaged within core-lib-azure’s jar. Individual services can then use this common.properties file along with their own application.properties. This can be achieved by configuring the following environment variable in every service.
- name: SPRING_CONFIG_NAME value: "common,application"
Also, if there is need to override any configuration, services can do so by specifying another value for that property in their own application.properties file.
How does this solution solves the issue ?
Whenever there is an update or addition of common configuration property, only common.properties file in core-lib-azure needs to be updated. Individual OSDU services can pick up that change by using the appropriate version of core-lib-azure.