-
Notifications
You must be signed in to change notification settings - Fork 55
Open
Description
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
- Load props from system environment (
sys.env) https://www.scala-lang.org/api/2.9.3/scala/sys/package.html - Fallback to read from props file
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.hostnamebecomesOAUTH_1_HOSTNAMEapi_hostnamebecomesAPI_HOSTNAME
mingfang
Metadata
Metadata
Assignees
Labels
No labels