Objective:
(The same as OBP API OpenBankProject/OBP-API#1208 )
Make container-like deployments easier by reading props from sys.env, we want to avoid rewriting the props file and repacking the war file like this: chrisjsimpson/obp-kubernetes#2 (comment) (<< this is to be avoided)
For docker-like environments, it is helpful instead to read runtime settings from the operating system environment vars, because we can inject these at container runtime.
pseudo Logic
pseudo code
def getPropsValue(nameOfProperty: String): Box[String] = {
# Replace "." with "_" (environment vars cannot include ".")
brandSpecificPropertyName = brandSpecificPropertyName.replace('.', '_')
# Convert to upper case
brandSpecificPropertyName = brandSpecificPropertyName.toUpperCase()
if (sys.env.get(brandSpecificPropertyName)) {
} else {
..... load from props file as normal
}
}
Gotcha
- Environment variables will be upper case (
s.toUpperCase())
- Environment variables cannot contain a dot ("
."), therefore:
oauth_1.hostname becomes OAUTH_1_HOSTNAME
api_hostname becomes API_HOSTNAME