[POLICY] Remove hardcoded credentials from policy-xacml-pdp 23/105923/8
authorDominik Mizyn <d.mizyn@samsung.com>
Tue, 14 Apr 2020 16:20:20 +0000 (18:20 +0200)
committerDominik Mizyn <d.mizyn@samsung.com>
Wed, 22 Apr 2020 17:02:46 +0000 (19:02 +0200)
This patch remove hardcoded healthcheck credentials from policy-xacml-pdp

Issue-ID: OOM-2342
Signed-off-by: Dominik Mizyn <d.mizyn@samsung.com>
Change-Id: I49db16a852412bad79f092232bcd2ba97eac7170

kubernetes/policy/charts/policy-xacml-pdp/resources/config/config.json
kubernetes/policy/charts/policy-xacml-pdp/templates/deployment.yaml
kubernetes/policy/charts/policy-xacml-pdp/values.yaml

index a52cc0f..3b72d8e 100644 (file)
     "restServerParameters": {
         "host": "0.0.0.0",
         "port": 6969,
-        "userName": "healthcheck",
-        "password": "zb!XztG34",
+        "userName": "${RESTSERVER_USER}",
+        "password": "${RESTSERVER_PASSWORD}",
         "https": true,
         "aaf": false
     },
     "policyApiParameters": {
         "host": "policy-api",
         "port": 6969,
-        "userName": "healthcheck",
-        "password": "zb!XztG34",
+        "userName": "${API_USER}",
+        "password": "${API_PASSWORD}",
         "https": true,
         "aaf": false
     },
index 5b02c17..9ac5d68 100644 (file)
@@ -31,6 +31,28 @@ spec:
         image: "{{ .Values.global.readinessRepository }}/{{ .Values.global.readinessImage }}"
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
+      - command:
+        - sh
+        args:
+        - -c
+        - "cd /config-input && for PFILE in `ls -1 .`; do envsubst <${PFILE} >/config/${PFILE}; done"
+        env:
+        - name: RESTSERVER_USER
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restserver-creds" "key" "login") | indent 10 }}
+        - name: RESTSERVER_PASSWORD
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "restserver-creds" "key" "password") | indent 10 }}
+        - name: API_USER
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "api-creds" "key" "login") | indent 10 }}
+        - name: API_PASSWORD
+          {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "api-creds" "key" "password") | indent 10 }}
+        volumeMounts:
+        - mountPath: /config-input
+          name: pdpxconfig
+        - mountPath: /config
+          name: pdpxconfig-processed
+        image: "{{ .Values.global.envsubstImage }}"
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        name: {{ include "common.name" . }}-update-config
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
@@ -63,7 +85,9 @@ spec:
             name: localtime
             readOnly: true
           - mountPath: /opt/app/policy/pdpx/etc/mounted
-            name: pdpxconfig
+            name: pdpxconfig-processed
+            emptyDir:
+              medium: Memory
           resources:
 {{ include "common.resources" . | indent 12 }}
         {{- if .Values.nodeSelector }}
@@ -82,5 +106,8 @@ spec:
           configMap:
             name: {{ include "common.fullname" . }}-configmap
             defaultMode: 0755
+        - name: pdpxconfig-processed
+          emptyDir:
+            medium: Memory
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
index a2c0aa0..63f50fd 100644 (file)
@@ -21,6 +21,7 @@
 #################################################################
 global:
   persistence: {}
+  envsubstImage: dibi/envsubst
 
 #################################################################
 # Secrets metaconfig
@@ -32,6 +33,18 @@ secrets:
     login: '{{ .Values.db.user }}'
     password: '{{ .Values.db.password }}'
     passwordPolicy: required
+  - uid: restserver-creds
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.restServer.credsExternalSecret) . }}'
+    login: '{{ .Values.restServer.user }}'
+    password: '{{ .Values.restServer.password }}'
+    passwordPolicy: required
+  - uid: api-creds
+    type: basicAuth
+    externalSecret: '{{ tpl (default "" .Values.apiServer.credsExternalSecret) . }}'
+    login: '{{ .Values.apiServer.user }}'
+    password: '{{ .Values.apiServer.password }}'
+    passwordPolicy: required
 
 #################################################################
 # Application configuration defaults.
@@ -49,6 +62,12 @@ debugEnabled: false
 db:
   user: policy_user
   password: policy_user
+restServer:
+  user: healthcheck
+  password: zb!XztG34
+apiServer:
+  user: healthcheck
+  password: zb!XztG34
 
 # default number of instances
 replicaCount: 1