Merge "vid persistence folder parametrization"
diff --git a/.gitignore b/.gitignore
index b671448..028a8ee 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,2 @@
 kubernetes/config/onap-parameters.yaml
-.idea/vcs.xml
-.idea/modules.xml
-.idea/oom.iml
-.idea/workspace.xml
+.idea/*
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 35eb1dd..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<project version="4">
-  <component name="VcsDirectoryMappings">
-    <mapping directory="" vcs="Git" />
-  </component>
-</project>
\ No newline at end of file
diff --git a/kubernetes/README_HELM b/kubernetes/README_HELM
index c1d5fdf..0f65120 100644
--- a/kubernetes/README_HELM
+++ b/kubernetes/README_HELM
@@ -3,7 +3,7 @@
 - Helm
 
 In order to use Helm with Rancher, check the tiller version installed
-by runing "helm version" on the ranchr CLI
+by running "helm version" on the rancher CLI
 and install the appropriate Helm.
 Notice both tiller and helm are installed,
 but you will need to install on your VM.
diff --git a/kubernetes/aai/resources/model-loader/conf/logback.xml b/kubernetes/aai/resources/config/log/model-loader/logback.xml
similarity index 100%
rename from kubernetes/aai/resources/model-loader/conf/logback.xml
rename to kubernetes/aai/resources/config/log/model-loader/logback.xml
diff --git a/kubernetes/aai/resources/resources/conf/logback.xml b/kubernetes/aai/resources/config/log/resources/logback.xml
similarity index 100%
rename from kubernetes/aai/resources/resources/conf/logback.xml
rename to kubernetes/aai/resources/config/log/resources/logback.xml
diff --git a/kubernetes/aai/resources/search-data-service/conf/logback.xml b/kubernetes/aai/resources/config/log/search-data-service/logback.xml
similarity index 100%
rename from kubernetes/aai/resources/search-data-service/conf/logback.xml
rename to kubernetes/aai/resources/config/log/search-data-service/logback.xml
diff --git a/kubernetes/aai/resources/sparky-be/conf/logback.xml b/kubernetes/aai/resources/config/log/sparky-be/logback.xml
similarity index 100%
rename from kubernetes/aai/resources/sparky-be/conf/logback.xml
rename to kubernetes/aai/resources/config/log/sparky-be/logback.xml
diff --git a/kubernetes/aai/resources/traversal/conf/logback.xml b/kubernetes/aai/resources/config/log/traversal/logback.xml
similarity index 100%
rename from kubernetes/aai/resources/traversal/conf/logback.xml
rename to kubernetes/aai/resources/config/log/traversal/logback.xml
diff --git a/kubernetes/aai/templates/aai-resources-deployment.yaml b/kubernetes/aai/templates/aai-resources-deployment.yaml
index 5ca0c16..2e0b049 100644
--- a/kubernetes/aai/templates/aai-resources-deployment.yaml
+++ b/kubernetes/aai/templates/aai-resources-deployment.yaml
@@ -97,16 +97,8 @@
         emptyDir: {}
       - name: aai-resources-log-conf
         configMap:
-         name: aai-resources-configmap
+         name: aai-resources-log-configmap
       restartPolicy: Always
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: aai-resources-configmap
-  namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/resources/conf/logback.xml").AsConfig | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml b/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml
index 772c3a7..ebd6913 100644
--- a/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml
+++ b/kubernetes/aai/templates/aai-resources-traversal-configmap.yaml
@@ -14,4 +14,20 @@
   namespace: {{ .Values.nsPrefix }}-aai
 data:
 {{ tpl (.Files.Glob "resources/config/aai-data/environments/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-resources-log-configmap
+  namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/resources/logback.xml").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-traversal-log-configmap
+  namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/traversal/logback.xml").AsConfig . | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/aai/templates/aai-traversal-deployment.yaml b/kubernetes/aai/templates/aai-traversal-deployment.yaml
index fda0055..a61a83e 100644
--- a/kubernetes/aai/templates/aai-traversal-deployment.yaml
+++ b/kubernetes/aai/templates/aai-traversal-deployment.yaml
@@ -99,16 +99,8 @@
         emptyDir: {}
       - name: aai-traversal-log-conf
         configMap:
-         name: aai-traversal-configmap
+         name: aai-traversal-log-configmap
       restartPolicy: Always
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: aai-traversal-configmap
-  namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/traversal/conf/logback.xml").AsConfig | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/aai/templates/modelloader-deployment-configmap.yaml b/kubernetes/aai/templates/modelloader-deployment-configmap.yaml
index 7f37bd6..e5a59a1 100644
--- a/kubernetes/aai/templates/modelloader-deployment-configmap.yaml
+++ b/kubernetes/aai/templates/modelloader-deployment-configmap.yaml
@@ -15,4 +15,12 @@
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/model-loader/appconfig/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-model-loader-log-configmap
+  namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/model-loader/logback.xml").AsConfig . | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/aai/templates/modelloader-deployment.yaml b/kubernetes/aai/templates/modelloader-deployment.yaml
index c813058..2508446 100644
--- a/kubernetes/aai/templates/modelloader-deployment.yaml
+++ b/kubernetes/aai/templates/modelloader-deployment.yaml
@@ -68,16 +68,8 @@
         emptyDir: {}
       - name: aai-model-loader-log-conf
         configMap:
-         name: aai-model-loader-configmap
+         name: aai-model-loader-log-configmap
       restartPolicy: Always
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: aai-model-loader-configmap
-  namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/model-loader/conf/logback.xml").AsConfig | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/aai/templates/search-data-service-configmap.yaml b/kubernetes/aai/templates/search-data-service-configmap.yaml
index c392e41..8f707d4 100644
--- a/kubernetes/aai/templates/search-data-service-configmap.yaml
+++ b/kubernetes/aai/templates/search-data-service-configmap.yaml
@@ -23,4 +23,12 @@
   namespace: {{ .Values.nsPrefix }}-aai
 data:
 {{ tpl (.Files.Glob "resources/config/search-data-service/appconfig/auth/search_policy.json").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-search-data-service-log-configmap
+  namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/search-data-service/logback.xml").AsConfig . | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/aai/templates/search-data-service-deployment.yaml b/kubernetes/aai/templates/search-data-service-deployment.yaml
index 392a754..5f66710 100644
--- a/kubernetes/aai/templates/search-data-service-deployment.yaml
+++ b/kubernetes/aai/templates/search-data-service-deployment.yaml
@@ -89,16 +89,8 @@
         emptyDir: {}
       - name: aai-search-data-service-log-conf
         configMap:
-         name: aai-search-data-service-configmap
+         name: aai-search-data-service-log-configmap
       restartPolicy: Always
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: aai-search-data-service-configmap
-  namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/search-data-service/conf/logback.xml").AsConfig | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml b/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml
index 55dea65..590608b 100644
--- a/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml
+++ b/kubernetes/aai/templates/sparky-be-deployment-configmap.yaml
@@ -31,4 +31,12 @@
 type: Opaque
 data:
 {{ tpl (.Files.Glob "resources/config/sparky-be/appconfig/auth/*").AsSecrets . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: aai-sparky-be-log-configmap
+  namespace: {{ .Values.nsPrefix }}-aai
+data:
+{{ tpl (.Files.Glob "resources/config/log/sparky-be/logback.xml").AsConfig . | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/aai/templates/sparky-be-deployment.yaml b/kubernetes/aai/templates/sparky-be-deployment.yaml
index dfeab6a..9fe324a 100644
--- a/kubernetes/aai/templates/sparky-be-deployment.yaml
+++ b/kubernetes/aai/templates/sparky-be-deployment.yaml
@@ -101,16 +101,8 @@
         emptyDir: {}
       - name: aai-sparky-be-log-conf
         configMap:
-         name: aai-sparky-be-configmap
+         name: aai-sparky-be-log-configmap
       restartPolicy: Always
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: aai-sparky-be-configmap
-  namespace: {{ .Values.nsPrefix }}-aai
-data:
-{{ (.Files.Glob "resources/sparky-be/conf/logback.xml").AsConfig | indent 2 }}
 #{{ end }}
diff --git a/kubernetes/appc/templates/appc-deployment.yaml b/kubernetes/appc/templates/appc-deployment.yaml
index 8caf286..35e9470 100644
--- a/kubernetes/appc/templates/appc-deployment.yaml
+++ b/kubernetes/appc/templates/appc-deployment.yaml
@@ -5,6 +5,7 @@
   name: appc
   namespace: "{{ .Values.nsPrefix }}-appc"
 spec:
+  replicas: {{ .Values.appcReplicas }}
   selector:
     matchLabels:
       app: appc
diff --git a/kubernetes/appc/templates/db-deployment.yaml b/kubernetes/appc/templates/db-deployment.yaml
index 607a0df..0b29393 100644
--- a/kubernetes/appc/templates/db-deployment.yaml
+++ b/kubernetes/appc/templates/db-deployment.yaml
@@ -5,6 +5,7 @@
   name: appc-dbhost
   namespace: "{{ .Values.nsPrefix }}-appc"
 spec:
+  replicas: {{ .Values.dbReplicas }}
   selector:
     matchLabels:
       app: appc-dbhost
@@ -45,4 +46,4 @@
           claimName: appc-db
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/appc/templates/dgbuilder-deployment.yaml b/kubernetes/appc/templates/dgbuilder-deployment.yaml
index ed69c05..3bbc671 100644
--- a/kubernetes/appc/templates/dgbuilder-deployment.yaml
+++ b/kubernetes/appc/templates/dgbuilder-deployment.yaml
@@ -5,6 +5,7 @@
   name: appc-dgbuilder
   namespace: "{{ .Values.nsPrefix }}-appc"
 spec:
+  replicas: {{ .Values.dgbuilderReplicas }}
   selector:
     matchLabels:
       app: appc-dgbuilder
diff --git a/kubernetes/appc/values.yaml b/kubernetes/appc/values.yaml
index 882267c..0bf4da9 100644
--- a/kubernetes/appc/values.yaml
+++ b/kubernetes/appc/values.yaml
@@ -1,9 +1,12 @@
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
+appcReplicas: 1
+dbReplicas: 1
+dgbuilderReplicas: 1
 image:
   readiness: oomk8s/readiness-check:1.0.0
   appc: nexus3.onap.org:10001/openecomp/appc-image:v1.2.0
   mysqlServer: mysql/mysql-server:5.6
   dgbuilderSdnc: nexus3.onap.org:10001/onap/ccsdk-dgbuilder-image:v0.1.0
-  filebeat: docker.elastic.co/beats/filebeat:5.5.0
\ No newline at end of file
+  filebeat: docker.elastic.co/beats/filebeat:5.5.0
diff --git a/kubernetes/message-router/templates/message-router-dmaap.yaml b/kubernetes/message-router/templates/message-router-dmaap.yaml
index 1d9777e..cecf69b 100644
--- a/kubernetes/message-router/templates/message-router-dmaap.yaml
+++ b/kubernetes/message-router/templates/message-router-dmaap.yaml
@@ -5,6 +5,7 @@
   name: dmaap
   namespace: "{{ .Values.nsPrefix }}-message-router"
 spec:
+  replicas: {{ .Values.dmaapReplicas }}
   selector:
     matchLabels:
       app: dmaap
diff --git a/kubernetes/message-router/templates/message-router-kafka.yaml b/kubernetes/message-router/templates/message-router-kafka.yaml
index 509b15f..94e01b3 100644
--- a/kubernetes/message-router/templates/message-router-kafka.yaml
+++ b/kubernetes/message-router/templates/message-router-kafka.yaml
@@ -5,6 +5,7 @@
   name: global-kafka
   namespace: "{{ .Values.nsPrefix }}-message-router"
 spec:
+  replicas: {{ .Values.kafkaReplicas }}
   selector:
     matchLabels:
       app: global-kafka
diff --git a/kubernetes/message-router/templates/message-router-zookeeper.yaml b/kubernetes/message-router/templates/message-router-zookeeper.yaml
index 47cdb51..5a5bc9f 100644
--- a/kubernetes/message-router/templates/message-router-zookeeper.yaml
+++ b/kubernetes/message-router/templates/message-router-zookeeper.yaml
@@ -5,6 +5,7 @@
   name: zookeeper
   namespace: "{{ .Values.nsPrefix }}-message-router"
 spec:
+  replicas: {{ .Values.zookeeperReplicas }}
   selector:
     matchLabels:
       app: zookeeper
@@ -41,4 +42,4 @@
           claimName: message-router-zookeeper
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/message-router/values.yaml b/kubernetes/message-router/values.yaml
index 9206729..6782b71 100644
--- a/kubernetes/message-router/values.yaml
+++ b/kubernetes/message-router/values.yaml
@@ -1,6 +1,9 @@
 nsPrefix: onap
 pullPolicy: Always
 nodePortPrefix: 302
+dmaapReplicas: 1
+kafkaReplicas: 1
+zookeeperReplicas: 1
 image:
   readiness: oomk8s/readiness-check:1.0.0
   dmaap: attos/dmaap:latest
diff --git a/kubernetes/msb/templates/msb-discovery-deployment.yaml b/kubernetes/msb/templates/msb-discovery-deployment.yaml
index 5f8db61..5c01feb 100644
--- a/kubernetes/msb/templates/msb-discovery-deployment.yaml
+++ b/kubernetes/msb/templates/msb-discovery-deployment.yaml
@@ -16,6 +16,21 @@
       name: msb-discovery
     spec:
       hostname: msb-discovery
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - msb-consul
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: {{ .Values.image.readiness }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: msb-discovery-readiness
       containers:
       - args:
         image:  {{ .Values.image.discovery }}
@@ -34,4 +49,4 @@
         imagePullPolicy: {{ .Values.pullPolicy }}
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/templates/msb-eag-deployment.yaml b/kubernetes/msb/templates/msb-eag-deployment.yaml
index 714f19b..10cbbe1 100644
--- a/kubernetes/msb/templates/msb-eag-deployment.yaml
+++ b/kubernetes/msb/templates/msb-eag-deployment.yaml
@@ -16,6 +16,21 @@
       name: msb-eag
     spec:
       hostname: msb-eag
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - msb-discovery
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: {{ .Values.image.readiness }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: msb-eag-readiness
       containers:
       - args:
         image:  {{ .Values.image.apigateway }}
@@ -38,4 +53,4 @@
         imagePullPolicy: {{ .Values.pullPolicy}}
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/templates/msb-iag-deployment.yaml b/kubernetes/msb/templates/msb-iag-deployment.yaml
index ca4d5a0..18dbc67 100644
--- a/kubernetes/msb/templates/msb-iag-deployment.yaml
+++ b/kubernetes/msb/templates/msb-iag-deployment.yaml
@@ -16,6 +16,21 @@
       name: msb-iag
     spec:
       hostname: msb-iag
+      initContainers:
+      - command:
+        - /root/ready.py
+        args:
+        - --container-name
+        - msb-discovery
+        env:
+        - name: NAMESPACE
+          valueFrom:
+            fieldRef:
+              apiVersion: v1
+              fieldPath: metadata.namespace
+        image: {{ .Values.image.readiness }}
+        imagePullPolicy: {{ .Values.pullPolicy }}
+        name: msb-iag-readiness
       containers:
       - args:
         image:  {{ .Values.image.apigateway }}
@@ -38,4 +53,4 @@
         imagePullPolicy: "{{ .Values.pullPolicy}}"
       imagePullSecrets:
       - name: "{{ .Values.nsPrefix }}-docker-registry-key"
-#{{ end }}
\ No newline at end of file
+#{{ end }}
diff --git a/kubernetes/msb/values.yaml b/kubernetes/msb/values.yaml
index 7c1b16b..9bbdb92 100644
--- a/kubernetes/msb/values.yaml
+++ b/kubernetes/msb/values.yaml
@@ -1,6 +1,7 @@
 nsPrefix: onap
 pullPolicy: IfNotPresent
 image:
+  readiness: oomk8s/readiness-check:1.0.0
   consul: consul:0.9.3
   discovery: nexus3.onap.org:10001/onap/msb/msb_discovery:1.0.0
   apigateway: nexus3.onap.org:10001/onap/msb/msb_apigateway:1.0.0
diff --git a/kubernetes/mso/templates/db-deployment.yaml b/kubernetes/mso/templates/db-deployment.yaml
index e6f09c5..cc4c656 100644
--- a/kubernetes/mso/templates/db-deployment.yaml
+++ b/kubernetes/mso/templates/db-deployment.yaml
@@ -5,6 +5,7 @@
   name: mariadb
   namespace: "{{ .Values.nsPrefix }}-mso"
 spec:
+  replicas: {{ .Values.dbReplicas }}
   selector:
     matchLabels:
       app: mariadb
diff --git a/kubernetes/mso/templates/mso-deployment.yaml b/kubernetes/mso/templates/mso-deployment.yaml
index 580facd..b414640 100644
--- a/kubernetes/mso/templates/mso-deployment.yaml
+++ b/kubernetes/mso/templates/mso-deployment.yaml
@@ -5,7 +5,7 @@
   name: mso
   namespace: "{{ .Values.nsPrefix }}-mso"
 spec:
-  replicas: 1
+  replicas: {{ .Values.msoReplicas }}
   selector:
     matchLabels:
       app: mso
diff --git a/kubernetes/mso/values.yaml b/kubernetes/mso/values.yaml
index 73b9f31..77d3d60 100644
--- a/kubernetes/mso/values.yaml
+++ b/kubernetes/mso/values.yaml
@@ -7,6 +7,8 @@
 dmaapTopic: "AUTO"
 openStackServiceTenantName: "service"
 openStackEncryptedPasswordHere: "c124921a3a0efbe579782cde8227681e"
+msoReplicas: 1
+dbReplicas: 1
 image:
   readiness: oomk8s/readiness-check:1.0.0
   mso: nexus3.onap.org:10001/openecomp/mso:v1.1.1
diff --git a/kubernetes/readiness/docker/init/ready.py b/kubernetes/readiness/docker/init/ready.py
index c5b55ee..7cfb6cd 100644
--- a/kubernetes/readiness/docker/init/ready.py
+++ b/kubernetes/readiness/docker/init/ready.py
@@ -36,6 +36,9 @@
     try:
         response = v1.list_namespaced_pod(namespace=namespace, watch=False)
         for i in response.items:
+            # container_statuses can be None, which is non-iterable.
+            if i.status.container_statuses is None:
+               continue
             for s in i.status.container_statuses:
                 if s.name == container_name:
                     ready = s.ready
diff --git a/kubernetes/sdnc/templates/dgbuilder-deployment.yaml b/kubernetes/sdnc/templates/dgbuilder-deployment.yaml
index e0f8b29..b9ec155 100644
--- a/kubernetes/sdnc/templates/dgbuilder-deployment.yaml
+++ b/kubernetes/sdnc/templates/dgbuilder-deployment.yaml
@@ -5,6 +5,7 @@
   name: sdnc-dgbuilder
   namespace: "{{ .Values.nsPrefix }}-sdnc"
 spec:
+  replicas: {{ .Values.dgbuilderReplicas }}
   selector:
     matchLabels:
       app: sdnc-dgbuilder
diff --git a/kubernetes/sdnc/templates/dmaap-deployment.yaml b/kubernetes/sdnc/templates/dmaap-deployment.yaml
index b9ba346..eb6f354 100644
--- a/kubernetes/sdnc/templates/dmaap-deployment.yaml
+++ b/kubernetes/sdnc/templates/dmaap-deployment.yaml
@@ -5,6 +5,7 @@
   name: dmaap-listener
   namespace: "{{ .Values.nsPrefix }}-sdnc"
 spec:
+  replicas: {{ .Values.dmaapReplicas }}
   selector:
     matchLabels:
       app: dmaap-listener
diff --git a/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml b/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml
index 9d3feef..a283d0f 100644
--- a/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml
+++ b/kubernetes/sdnc/templates/nfs-provisoner-deployment.yaml
@@ -5,7 +5,7 @@
   name: nfs-provisioner
   namespace: "{{ .Values.nsPrefix }}-sdnc"
 spec:
-  replicas: 1
+  replicas: {{ .Values.nfsReplicas }}
   strategy:
     type: Recreate
   template:
diff --git a/kubernetes/sdnc/templates/ueb-deployment.yaml b/kubernetes/sdnc/templates/ueb-deployment.yaml
index a7e5e74..c109acd 100644
--- a/kubernetes/sdnc/templates/ueb-deployment.yaml
+++ b/kubernetes/sdnc/templates/ueb-deployment.yaml
@@ -5,6 +5,7 @@
   name: ueb-listener
   namespace: "{{ .Values.nsPrefix }}-sdnc"
 spec:
+  replicas: {{ .Values.uebReplicas }}
   selector:
     matchLabels:
       app: ueb-listener
diff --git a/kubernetes/sdnc/templates/web-deployment.yaml b/kubernetes/sdnc/templates/web-deployment.yaml
index 7e8b59c..73d8e0a 100644
--- a/kubernetes/sdnc/templates/web-deployment.yaml
+++ b/kubernetes/sdnc/templates/web-deployment.yaml
@@ -5,6 +5,7 @@
   name: sdnc-portal
   namespace: "{{ .Values.nsPrefix }}-sdnc"
 spec:
+  replicas: {{ .Values.portalReplicas }}
   selector:
     matchLabels:
       app: sdnc-portal
diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml
index 3959709..e91dc2a 100644
--- a/kubernetes/sdnc/values.yaml
+++ b/kubernetes/sdnc/values.yaml
@@ -14,5 +14,10 @@
 enableODLCluster: false
 numberOfODLReplicas: 1
 numberOfDbReplicas: 1
+dgbuilderReplicas: 1
+dmaapReplicas: 1
+nfsReplicas: 1
+uebReplicas: 1
+portalReplicas: 1
 disableSdncSdncDgbuilder: false
 disableSdncSdncPortal: false