[CPS] Remove duplicate configuration

1. Introduced spring profiles to override default properties value
2. Added config.additional to provide an ability to add properties
   without changing chart

Issue-ID: CPS-320
Signed-off-by: Renu Kumari <renu.kumari@bell.ca>
Change-Id: If621ad7c5f69f3398a8eae54d5fa6c563cfcba22
diff --git a/kubernetes/cps/resources/config/application.yml b/kubernetes/cps/resources/config/application-helm.yml
similarity index 88%
rename from kubernetes/cps/resources/config/application.yml
rename to kubernetes/cps/resources/config/application-helm.yml
index d85d341..5f19007 100755
--- a/kubernetes/cps/resources/config/application.yml
+++ b/kubernetes/cps/resources/config/application-helm.yml
@@ -50,7 +50,7 @@
 
   liquibase:
     change-log: classpath:changelog/changelog-master.yaml
-    labels: ${LIQUIBASE_LABELS}
+    labels: {{ .Values.config.liquibaseLabels }}
 
 security:
   # comma-separated uri patterns which do not require authorization
@@ -79,3 +79,9 @@
   level:
     org:
       springframework: {{ .Values.logging.level }}
+
+{{- if .Values.config.additional }}
+{{ toYaml .Values.config.additional | nindent 2 }}
+{{- end }}
+
+# Last empty line is required otherwise the last property will be missing from application.yml file in the pod.
diff --git a/kubernetes/cps/templates/deployment.yaml b/kubernetes/cps/templates/deployment.yaml
index 861782a..61877c3 100755
--- a/kubernetes/cps/templates/deployment.yaml
+++ b/kubernetes/cps/templates/deployment.yaml
@@ -74,6 +74,9 @@
             path: {{ .Values.readiness.path }}
           initialDelaySeconds: {{ .Values.readiness.initialDelaySeconds }}
           periodSeconds: {{ .Values.readiness.periodSeconds }}
+        env:
+          - name: SPRING_PROFILES_ACTIVE
+            value: {{ .Values.config.spring.profile }}
         resources: {{ include "common.resources" . | nindent 10 }}
         {{- if .Values.nodeSelector }}
         nodeSelector: {{ toYaml .Values.nodeSelector | nindent 12 }}
@@ -82,8 +85,8 @@
         affinity: {{ toYaml .Values.affinity | nindent 12 }}
         {{- end }}
         volumeMounts:
-          - mountPath: /app/resources/application.yml
-            subPath: application.yml
+          - mountPath: /app/resources/application-helm.yml
+            subPath: application-helm.yml
             name: init-data
           - mountPath: /app/resources/logback.xml
             subPath: logback.xml
diff --git a/kubernetes/cps/values.yaml b/kubernetes/cps/values.yaml
index ea4639f..2312a49 100755
--- a/kubernetes/cps/values.yaml
+++ b/kubernetes/cps/values.yaml
@@ -127,8 +127,16 @@
 
   # REST API basic authentication credentials (passsword is generated if not provided)
   appUserName: cpsuser
+  spring:
+    profile: helm
   #appUserPassword:
 
+# Any new property can be added in the env by setting in overrides in the format mentioned below
+# All the added properties must be in "key: value" format insead of yaml.
+#  additional:
+#    spring.config.max-size: 200
+#    spring.config.min-size: 10
+
 logging:
   level: INFO
   path: /tmp