From aace1d43e8bed2e97d311d129bc0312e7dcb3ce0 Mon Sep 17 00:00:00 2001
From: kbeyro <121854496+kbeyro@users.noreply.github.com>
Date: Wed, 26 Jun 2024 14:59:33 +0200
Subject: [PATCH] update properties for docker flags

---
 docker/nmaas-platform.properties.template |  22 ++--
 src/main/resources/application.properties | 143 +++++++++++-----------
 2 files changed, 82 insertions(+), 83 deletions(-)

diff --git a/docker/nmaas-platform.properties.template b/docker/nmaas-platform.properties.template
index 93cec7bb2..70e00fe04 100644
--- a/docker/nmaas-platform.properties.template
+++ b/docker/nmaas-platform.properties.template
@@ -10,10 +10,10 @@ spring.profiles.active=env_kubernetes, dcn_manual, db_standalone
 # ---------------- #
 # General settings #
 # ---------------- #
-server.port=${PLATFORM_PORT}
-portal.address=${PORTAL_HOST}
-admin.password=${ADMIN_PASSWORD}
-admin.email=${ADMIN_EMAIL}
+server.port=${PLATFORM_PORT:9000}
+portal.address=${PORTAL_HOST:http://localhost:4200}
+admin.password=${ADMIN_PASSWORD:admin}
+admin.email=${ADMIN_EMAIL:admin@nmaas.eu}
 
 # REST API documentation
 springdoc.api-docs.enabled=${PLATFORM_API_DOCS_ENABLED:false}
@@ -22,10 +22,10 @@ springdoc.swagger-ui.enabled=${PLATFORM_API_DOCS_ENABLED:false}
 springdoc.swagger-ui.path=/api-docs/ui.html
 
 # Email
-spring.mail.username=${SMTP_LOGIN}
-spring.mail.password=${SMTP_PASSWORD}
-spring.mail.host=${SMTP_HOST}
-spring.mail.port=${SMTP_PORT}
+spring.mail.username=${SMTP_LOGIN:default}
+spring.mail.password=${SMTP_PASSWORD:default}
+spring.mail.host=${SMTP_HOST:smtp.nmaas.eu}
+spring.mail.port=${SMTP_PORT:587}
 spring.mail.properties.mail.smtp.auth=${USE_LOGIN_PASSWORD}
 spring.mail.properties.mail.smtp.starttls.enable=${USE_STARTTLS}
 spring.mail.properties.mail.smtp.starttls.required=${USE_STARTTLS}
@@ -51,9 +51,9 @@ notifications.from-address=${SMTP_FROM}
 # Database         #
 # ---------------- #
 # Standalone PostgreSQL
-db.standalone.jdbc-url=jdbc:postgresql://${POSTGRESQL_HOST}:${POSTGRESQL_PORT}/${POSTGRESQL_DBNAME}
-db.standalone.username=${POSTGRESQL_USERNAME}
-db.standalone.password=${POSTGRESQL_PASSWORD}
+db.standalone.jdbc-url=jdbc:postgresql://${POSTGRESQL_HOST:postgresql}:${POSTGRESQL_PORT:5432}/${POSTGRESQL_DBNAME:nmaas}
+db.standalone.username=${POSTGRESQL_USERNAME:nmaas}
+db.standalone.password=${POSTGRESQL_PASSWORD:nmaas}
 # FlywayDB settings
 spring.flyway.enabled=true
 spring.flyway.locations=classpath:/db/migration
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 0b9ab5204..e9ab18a79 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -9,25 +9,25 @@ spring.profiles.active=env_kubernetes, db_memory
 # ---------------- #
 # General settings #
 # ---------------- #
-server.port=9000
-portal.address=http://localhost:4200
-admin.password=admin
-admin.email=admin@nmaas.eu
+server.port=${PLATFORM_PORT:9000}
+portal.address=${PORTAL_HOST:http://localhost:4200}
+admin.password=${ADMIN_PASSWORD:admin}
+admin.email=${ADMIN_EMAIL:admin@nmaas.eu}
 
 # REST API documentation
-springdoc.api-docs.enabled=true
-springdoc.api-docs.path=/api-docs/spec
-springdoc.swagger-ui.enabled=true
-springdoc.swagger-ui.path=/api-docs/ui.html
+springdoc.api-docs.enabled=${PLATFORM_API_DOCS_ENABLED:true}
+springdoc.api-docs.path={$PLATFORM_API_DOCS_PATH:/api-docs/spec}
+springdoc.swagger-ui.enabled=${PLATFORM_API_DOCS_ENABLED:true}
+springdoc.swagger-ui.path={$PLATFORM_API_SWAGGER_PATH:/api-docs/ui.html}
 
 # Email
-spring.mail.username=default
-spring.mail.password=default
-spring.mail.host=smtp.nmaas.eu
-spring.mail.port=587
-spring.mail.properties.mail.smtp.auth=true
-spring.mail.properties.mail.smtp.starttls.enable=true
-spring.mail.properties.mail.smtp.starttls.required=true
+spring.mail.username=${SMTP_LOGIN:default}
+spring.mail.password=${SMTP_PASSWORD:default}
+spring.mail.host=${SMTP_HOST:smtp.nmaas.eu}
+spring.mail.port=${SMTP_PORT:587}
+spring.mail.properties.mail.smtp.auth=${USE_LOGIN_PASSWORD:true}
+spring.mail.properties.mail.smtp.starttls.enable=${USE_STARTTLS:true}
+spring.mail.properties.mail.smtp.starttls.required=${USE_STARTTLS:true}
 spring.mail.properties.mail.smtp.connectiontimeout=5000
 spring.mail.properties.mail.smtp.timeout=3000
 spring.mail.properties.mail.smtp.writetimeout=5000
@@ -38,14 +38,14 @@ spring.http.encoding.enabled=true
 spring.http.encoding.force=true
 
 # Actuator and Metrics
-nmaas.metrics.enabled=true
+nmaas.metrics.enabled=${METRICS_ENABLED:true}
 management.endpoints.web.exposure.include=health,prometheus
 management.info.git.mode=full
 # disabled strict check if email configuration is valid
 management.health.mail.enabled=false
 
 # Notifications
-notifications.from-address=
+notifications.from-address=${SMTP_FROM}
 
 # ---------------- #
 # Database         #
@@ -55,9 +55,9 @@ db.inmemory.jdbc-url=jdbc:h2:mem:nmaas
 db.inmemory.username=nmaas
 db.inmemory.password=nmaas
 # Standalone PostgreSQL
-db.standalone.jdbc-url=jdbc:postgresql://localhost:5432/nmaas
-db.standalone.username=nmaas
-db.standalone.password=nmaas
+db.standalone.jdbc-url=jdbc:postgresql://${POSTGRESQL_HOST:postgresql}:${POSTGRESQL_PORT:5432}/${POSTGRESQL_DBNAME:nmaas}
+db.standalone.username=${POSTGRESQL_USERNAME:nmaas}
+db.standalone.password=${POSTGRESQL_PASSWORD:nmaas}
 # Common
 spring.h2.console.enabled=true
 spring.jpa.properties.hibernate.show_sql=false
@@ -76,25 +76,24 @@ spring.flyway.enabled=false
 # -------------------------------------------------------- #
 # NMaaS application deployment and configuration processes #
 # -------------------------------------------------------- #
-nmaas.service.deployment.check.interval=10
-nmaas.service.deployment.max.duration=120
-nmaas.service.upgrade.cron=0 */5 * * * ?
-nmaas.service.upgrade-summary.cron=0 0 * * * ?
-# interval for which to collect information about last upgrades (in hours)
-nmaas.service.upgrade-summary.interval=24
+nmaas.service.deployment.check.interval=${DEPLOYMENT_CHECK_INTERVAL:10}
+nmaas.service.deployment.max.duration=${DEPLOYMENT_CHECK_TIMEOUT:120}
+nmaas.service.upgrade.cron=${APP_UPGRADE_CRON:0 */5 * * * ?}
+nmaas.service.upgrade-summary.cron=${APP_UPGRADE_SUMMARY_CRON:0 0 * * * ?}
+nmaas.service.upgrade-summary.interval=${APP_UPGRADE_SUMMARY_INTERVAL:24}
 
 nmaas.portal.domains.codename.pattern=[a-z0-9-]{2,12}
 nmaas.portal.domains.codename.length=12
 nmaas.portal.modals.appinstall.pattern=[a-zA-Z0-9-]{3,10}
 nmaas.portal.domains.namespace.pattern=[a-z0-9-]{0,64}
 
-nmaas.platform.webhooks.baseurl=http://localhost:9000/api/gitlab/webhooks
+nmaas.platform.webhooks.baseurl=${PLATFORM_BASEURL:http://localhost:9000}/api/gitlab/webhooks
 
 nmaas.kubernetes.incluster=false
-nmaas.kubernetes.apiserver.url=https://10.1.1.11:6443
+nmaas.kubernetes.apiserver.url=${KUBERNETES_APISERVER_URL:https://10.1.1.11:6443}
 
 # flag indicating if namespace should be created upon domain creation
-nmaas.domains.create.namespace=false
+nmaas.domains.create.namespace=${NAMESPACE_CREATION_ENABLED:false}
 
 # ------------------------------ #
 # Quartz scheduler configuration #
@@ -110,10 +109,10 @@ upload.dir=/tmp
 jwt.tokenValidFor=3600000
 jwt.refreshTokenValidFor=13600000
 jwt.issuer=NMaaS
-jwt.signingKey=testKey
+jwt.signingKey=${API_KEY:testKey}
 jwt.resetSigningKey=testResetKey
 jwt.resetTokenValidFor=1800000
-captcha.secret=6LeJgbQUAAAAAIGNksMVgPqiGbdPrYKjXAeeFa5e
+captcha.secret=${CAPTCHA_SECRET:6LeJgbQUAAAAAIGNksMVgPqiGbdPrYKjXAeeFa5e}
 # current pagination issue fix -> set default page size to 1000
 # this is still a temporary fix
 spring.data.web.pageable.default-page-size=1000
@@ -121,71 +120,71 @@ spring.data.web.pageable.default-page-size=1000
 # ------------------------ #
 # SAML proxy configuration #
 # ------------------------ #
-sso.loginUrl=https://shibbolethsp.pllab.internal/cgi-bin/nmaas.php
-sso.logoutUrl=https://shibbolethsp.pllab.internal/Shibboleth.sso/Logout
-sso.timeout=15
-sso.key=sso_shared_secret_key
+sso.loginUrl=${SSO_URL_LOGIN:https://shibbolethsp.pllab.internal/cgi-bin/nmaas.php}
+sso.logoutUrl=${SSO_URL_LOGOUT:https://shibbolethsp.pllab.internal/Shibboleth.sso/Logout}
+sso.timeout=${SSO_TIMEOUT:15}
+sso.key=${SSO_KEY:sso_shared_secret_key}
 
 # ------------------ #
 # Helm configuration #
 # ------------------ #
-helm.update.async.enabled=false
-helm.update.async.cron=0 * * * * ?
-helm.address=10.134.241.6
-helm.username=nmaas
-helm.useLocalCharts=true
-helm.repositoryName=nmaas-test
-helm.repositoryUrl=https://nmaas-test.helm.repository
-helm.chartsDirectory=/home/nmaas/charts
-helm.enableTls=false
+helm.update.async.enabled=${HELM_UPDATE_ASYNC_ENABLED:false}
+helm.update.async.cron=${HELM_UPDATE_ASYNC_CRON:0 * * * * ?}
+helm.address=${HELM_ADDRESS:10.134.241.6}
+helm.username=${HELM_USERNAME:nmaas}
+helm.useLocalCharts=t${HELM_USELOCALCHARTS:true}
+helm.repositoryName=${HELM_REPOSITORY:nmaas-test}
+helm.repositoryUrl=${HELM_REPOSITORY_URL:https://nmaas-test.helm.repository}
+helm.chartsDirectory=${HELM_LOCALCHARTSDIR:/home/nmaas/charts}
+helm.enableTls=${HELM_ENABLETLS:false}
 # possible values for Helm version are v2 and v3 (if none is provided v3 is used by default)
-helm.version=v2
+helm.version=${HELM_VERSION:v2}
 
 # --------------------- #
 # Janitor configuration #
 # --------------------- #
-janitor.address=nmaas-janitor
-janitor.port=5000
+janitor.address=${JANITOR_ADDRESS:nmaas-janitor}
+janitor.port=${JANITOR_PORT:5000}
 
 # -------------------- #
 # GitLab configuration #
 # -------------------- #
-gitlab.address=nmaas-gitlab-unicorn
-gitlab.port=8080
-gitlab.token=test_gitlab_token
+gitlab.address=${GITLAB_ADDRESS:nmaas-gitlab-unicorn}
+gitlab.port=${GITLAB_PORT:8080}
+gitlab.token=${GITLAB_TOKEN:test_gitlab_token}
 
 # ------------------------ #
 # Kubernetes configuration #
 # ------------------------ #
 kubernetes.ingress.controllerConfigOption=USE_EXISTING
-kubernetes.ingress.supportedIngressClass=nginx
-kubernetes.ingress.publicIngressClass=public
+kubernetes.ingress.supportedIngressClass=${K8S_INGRESS_CONTROLLER_INGRESS_CLASS:nginx}
+kubernetes.ingress.publicIngressClass=${K8S_INGRESS_CONTROLLER_PUBLIC_INGRESS_CLASS:public}
 kubernetes.ingress.controllerChartName=nginx
 kubernetes.ingress.controllerChartArchive=nginx-ingress.tgz
 kubernetes.ingress.resourceConfigOption=DEPLOY_FROM_CHART
-kubernetes.ingress.externalServiceDomain=nmaas.test.net
-kubernetes.ingress.publicServiceDomain=public.nmaas.test.net
-kubernetes.ingress.tlsSupported=true
-kubernetes.ingress.certificateConfigOption=USE_LETSENCRYPT
-kubernetes.ingress.issuerOrWildcardName=nmaas-issuer
-kubernetes.ingress.ingressPerDomain=true
-kubernetes.deployment.namespaceConfigOption=USE_DOMAIN_NAMESPACE
-kubernetes.deployment.defaultNamespace=default
+kubernetes.ingress.externalServiceDomain=${K8S_INGRESS_CONTROLLER_EXTERNAL_SERVICE_DOMAIN:nmaas.test.net}
+kubernetes.ingress.publicServiceDomain=${K8S_INGRESS_CONTROLLER_PUBLIC_SERVICE_DOMAIN:public.nmaas.test.net}
+kubernetes.ingress.tlsSupported=${K8S_INGRESS_CONTROLLER_TLS_SUPPORTED:true}
+kubernetes.ingress.certificateConfigOption={K8S_INGRESS_CERTIFICATE_CONFIG_OPTION:USE_LETSENCRYPT}
+kubernetes.ingress.issuerOrWildcardName=${K8S_INGRESS_CERTIFICATE_ISSUER_OR_WILDCARD_NAME:nmaas-issuer}
+kubernetes.ingress.ingressPerDomain=${K8S_INGRESS_CONTROLLER_PER_DOMAIN:true}
+kubernetes.deployment.namespaceConfigOption=${K8S_DEPLOYMENT_NAMESPACE_CONFIG_OPTION:USE_DOMAIN_NAMESPACE}
+kubernetes.deployment.defaultNamespace=${K8S_DEPLOYMENT_DEFAULT_NAMESPACE:default}
 kubernetes.deployment.forceDedicatedWorkers=false
-kubernetes.deployment.smtpServerHostname=nmaas-postfix
-kubernetes.deployment.smtpServerPort=587
-kubernetes.deployment.smtpServerUsername=
-kubernetes.deployment.smtpServerPassword=
-kubernetes.deployment.defaultStorageClass=storageClass
+kubernetes.deployment.smtpServerHostname=${SMTP_HOST:nmaas-postfix}
+kubernetes.deployment.smtpServerPort=${SMTP_PORT:587}
+kubernetes.deployment.smtpServerUsername=${SMTP_LOGIN}
+kubernetes.deployment.smtpServerPassword=${SMTP_PASSWORD}
+kubernetes.deployment.defaultStorageClass=${K8S_DEPLOYMENT_DEFAULT_STORAGE_CLASS:storageClass}
 
 # -------------------- #
 # Portal configuration #
 # -------------------- #
-portal.config.maintenance=false
-portal.config.ssoLoginAllowed=false
-portal.config.defaultLanguage=en
-portal.config.testInstance=false
-portal.config.sendAppInstanceFailureEmails=false
-portal.config.showDomainRegistrationSelector=true
+portal.config.maintenance=${PORTAL_MAINTENANCE_FLAG:false}
+portal.config.ssoLoginAllowed=${PORTAL_SSO_ALLOWED_FLAG:false}
+portal.config.defaultLanguage=${PORTAL_DEFAULT_LANG:en}
+portal.config.testInstance=${PORTAL_TEST_INSTANCE_FLAG:false}
+portal.config.sendAppInstanceFailureEmails=${PORTAL_SEND_FAILURE_NOTIF_FLAG:false}
+portal.config.showDomainRegistrationSelector=${PORTAL_DOMAIN_REGISTRATION_SELECTOR:true}
 # string - list of emails with ':' as a separator, e.g. admin1@nmaas.eu;admin2@nmaas.eu
-portal.config.appInstanceFailureEmailList=admin@nmaas.eu
+portal.config.appInstanceFailureEmailList=${ADMIN_EMAIL:admin@nmaas.eu}
\ No newline at end of file
-- 
GitLab