Merge "[SNIRO] Uses new tpls for repos / images"
diff --git a/kubernetes/cds/charts/cds-blueprints-processor/values.yaml b/kubernetes/cds/charts/cds-blueprints-processor/values.yaml
index 1f61bc9..6c5dfbb 100755
--- a/kubernetes/cds/charts/cds-blueprints-processor/values.yaml
+++ b/kubernetes/cds/charts/cds-blueprints-processor/values.yaml
@@ -61,7 +61,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-blueprintsprocessor:1.0.1
+image: onap/ccsdk-blueprintsprocessor:1.0.3
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/cds/charts/cds-command-executor/values.yaml b/kubernetes/cds/charts/cds-command-executor/values.yaml
index 01fcad8..f7dc4cf 100755
--- a/kubernetes/cds/charts/cds-command-executor/values.yaml
+++ b/kubernetes/cds/charts/cds-command-executor/values.yaml
@@ -39,7 +39,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-commandexecutor:1.0.1
+image: onap/ccsdk-commandexecutor:1.0.3
 pullPolicy: Always
 
 # application configuration
diff --git a/kubernetes/cds/charts/cds-py-executor/values.yaml b/kubernetes/cds/charts/cds-py-executor/values.yaml
index decd161..5bff0be 100755
--- a/kubernetes/cds/charts/cds-py-executor/values.yaml
+++ b/kubernetes/cds/charts/cds-py-executor/values.yaml
@@ -37,7 +37,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-py-executor:1.0.1
+image: onap/ccsdk-py-executor:1.0.3
 pullPolicy: Always
 
 # default number of instances
diff --git a/kubernetes/cds/charts/cds-sdc-listener/values.yaml b/kubernetes/cds/charts/cds-sdc-listener/values.yaml
index a0417c4..c830d1d 100644
--- a/kubernetes/cds/charts/cds-sdc-listener/values.yaml
+++ b/kubernetes/cds/charts/cds-sdc-listener/values.yaml
@@ -36,7 +36,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-sdclistener:1.0.1
+image: onap/ccsdk-sdclistener:1.0.3
 name: sdc-listener
 pullPolicy: Always
 
diff --git a/kubernetes/cds/charts/cds-ui/values.yaml b/kubernetes/cds/charts/cds-ui/values.yaml
index f9049a6..496aa85 100644
--- a/kubernetes/cds/charts/cds-ui/values.yaml
+++ b/kubernetes/cds/charts/cds-ui/values.yaml
@@ -26,7 +26,7 @@
 
 # application image
 repository: nexus3.onap.org:10001
-image: onap/ccsdk-cds-ui-server:1.0.1
+image: onap/ccsdk-cds-ui-server:1.0.3
 pullPolicy: Always
 
 # application configuration
diff --git a/kubernetes/clamp/components/clamp-backend/requirements.yaml b/kubernetes/clamp/components/clamp-backend/requirements.yaml
index 08708fb..5b041a5 100644
--- a/kubernetes/clamp/components/clamp-backend/requirements.yaml
+++ b/kubernetes/clamp/components/clamp-backend/requirements.yaml
@@ -16,4 +16,7 @@
 dependencies:
   - name: certInitializer
     version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
     repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/clamp/components/clamp-backend/templates/deployment.yaml b/kubernetes/clamp/components/clamp-backend/templates/deployment.yaml
index 1591efb..9153f9d 100644
--- a/kubernetes/clamp/components/clamp-backend/templates/deployment.yaml
+++ b/kubernetes/clamp/components/clamp-backend/templates/deployment.yaml
@@ -48,7 +48,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
@@ -57,7 +57,7 @@
         {{ if .Values.global.centralizedLoggingEnabled }}{{ include "common.log.sidecar" . | nindent 8 }}{{ end }}
         # main container
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
           - sh
diff --git a/kubernetes/clamp/components/clamp-backend/values.yaml b/kubernetes/clamp/components/clamp-backend/values.yaml
index 5e3102e..efd08ba 100644
--- a/kubernetes/clamp/components/clamp-backend/values.yaml
+++ b/kubernetes/clamp/components/clamp-backend/values.yaml
@@ -18,8 +18,6 @@
 #################################################################
 global: # global defaults
   nodePortPrefix: 302
-  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
-  readinessImage: onap/oom/readiness:3.0.1
   persistence: {}
   centralizedLoggingEnabled: true
   #AAF service
@@ -65,7 +63,6 @@
 flavor: small
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/clamp-backend:5.1.5
 pullPolicy: Always
 
diff --git a/kubernetes/clamp/components/clamp-dash-es/requirements.yaml b/kubernetes/clamp/components/clamp-dash-es/requirements.yaml
index 317d5b5..c388db3 100644
--- a/kubernetes/clamp/components/clamp-dash-es/requirements.yaml
+++ b/kubernetes/clamp/components/clamp-dash-es/requirements.yaml
@@ -19,4 +19,7 @@
     repository: '@local'
   - name: certInitializer
     version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
     repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/clamp/components/clamp-dash-es/templates/deployment.yaml b/kubernetes/clamp/components/clamp-dash-es/templates/deployment.yaml
index dcf011d..d7aa77c 100644
--- a/kubernetes/clamp/components/clamp-dash-es/templates/deployment.yaml
+++ b/kubernetes/clamp/components/clamp-dash-es/templates/deployment.yaml
@@ -53,7 +53,7 @@
               fieldPath: metadata.namespace
         securityContext:
           privileged: true
-        image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.busyboxImage }}
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: init-sysctl
         volumeMounts:
@@ -64,7 +64,7 @@
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           {{- if .Values.global.aafEnabled }}
           command:
diff --git a/kubernetes/clamp/components/clamp-dash-es/values.yaml b/kubernetes/clamp/components/clamp-dash-es/values.yaml
index ed53c0c..1e2ae47 100644
--- a/kubernetes/clamp/components/clamp-dash-es/values.yaml
+++ b/kubernetes/clamp/components/clamp-dash-es/values.yaml
@@ -18,7 +18,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
   persistence: {}
   centralizedLoggingEnabled: true
   #AAF service
@@ -63,13 +62,7 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-
-# BusyBox image
-busyboxRepository: docker.io
-busyboxImage: library/busybox:latest
-
 # application image
-repository: nexus3.onap.org:10001
 image: onap/clamp-dashboard-elasticsearch:5.0.4
 pullPolicy: Always
 
diff --git a/kubernetes/clamp/components/clamp-dash-kibana/requirements.yaml b/kubernetes/clamp/components/clamp-dash-kibana/requirements.yaml
index 317d5b5..c388db3 100644
--- a/kubernetes/clamp/components/clamp-dash-kibana/requirements.yaml
+++ b/kubernetes/clamp/components/clamp-dash-kibana/requirements.yaml
@@ -19,4 +19,7 @@
     repository: '@local'
   - name: certInitializer
     version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
     repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/clamp/components/clamp-dash-kibana/templates/deployment.yaml b/kubernetes/clamp/components/clamp-dash-kibana/templates/deployment.yaml
index 99f0079..8cb95cd 100644
--- a/kubernetes/clamp/components/clamp-dash-kibana/templates/deployment.yaml
+++ b/kubernetes/clamp/components/clamp-dash-kibana/templates/deployment.yaml
@@ -48,13 +48,13 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/clamp/components/clamp-dash-kibana/values.yaml b/kubernetes/clamp/components/clamp-dash-kibana/values.yaml
index a5d11c7..9b5f1fc 100644
--- a/kubernetes/clamp/components/clamp-dash-kibana/values.yaml
+++ b/kubernetes/clamp/components/clamp-dash-kibana/values.yaml
@@ -18,8 +18,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
-  readinessImage: onap/oom/readiness:3.0.1
   persistence: {}
   centralizedLoggingEnabled: true
   #AAF service
@@ -64,13 +62,7 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-
-# BusyBox image
-busyboxRepository: docker.io
-busyboxImage: library/busybox:latest
-
 # application image
-repository: nexus3.onap.org:10001
 image: onap/clamp-dashboard-kibana:5.0.4
 pullPolicy: Always
 
diff --git a/kubernetes/clamp/components/clamp-dash-logstash/requirements.yaml b/kubernetes/clamp/components/clamp-dash-logstash/requirements.yaml
index 317d5b5..c388db3 100644
--- a/kubernetes/clamp/components/clamp-dash-logstash/requirements.yaml
+++ b/kubernetes/clamp/components/clamp-dash-logstash/requirements.yaml
@@ -19,4 +19,7 @@
     repository: '@local'
   - name: certInitializer
     version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
     repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/clamp/components/clamp-dash-logstash/templates/deployment.yaml b/kubernetes/clamp/components/clamp-dash-logstash/templates/deployment.yaml
index 9fd4c40..f098338 100644
--- a/kubernetes/clamp/components/clamp-dash-logstash/templates/deployment.yaml
+++ b/kubernetes/clamp/components/clamp-dash-logstash/templates/deployment.yaml
@@ -48,13 +48,13 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           env:
           - name: dmaap_consumer_group
diff --git a/kubernetes/clamp/components/clamp-dash-logstash/values.yaml b/kubernetes/clamp/components/clamp-dash-logstash/values.yaml
index 2b3c9f1..9aab3af 100644
--- a/kubernetes/clamp/components/clamp-dash-logstash/values.yaml
+++ b/kubernetes/clamp/components/clamp-dash-logstash/values.yaml
@@ -18,8 +18,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  repositorySecret: eyJuZXh1czMub25hcC5vcmc6MTAwMDEiOnsidXNlcm5hbWUiOiJkb2NrZXIiLCJwYXNzd29yZCI6ImRvY2tlciIsImVtYWlsIjoiQCIsImF1dGgiOiJaRzlqYTJWeU9tUnZZMnRsY2c9PSJ9fQ==
-  readinessImage: onap/oom/readiness:3.0.1
   persistence: {}
   centralizedLoggingEnabled: true
   #AAF service
@@ -66,7 +64,6 @@
 #################################################################
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/clamp-dashboard-logstash:5.0.4
 pullPolicy: Always
 
diff --git a/kubernetes/clamp/components/clamp-mariadb/requirements.yaml b/kubernetes/clamp/components/clamp-mariadb/requirements.yaml
index 9b96d0c..b5d66f3 100644
--- a/kubernetes/clamp/components/clamp-mariadb/requirements.yaml
+++ b/kubernetes/clamp/components/clamp-mariadb/requirements.yaml
@@ -15,4 +15,7 @@
 dependencies:
   - name: common
     version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
     repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/clamp/components/clamp-mariadb/templates/deployment.yaml b/kubernetes/clamp/components/clamp-mariadb/templates/deployment.yaml
index 6d30b36..8ddf584 100644
--- a/kubernetes/clamp/components/clamp-mariadb/templates/deployment.yaml
+++ b/kubernetes/clamp/components/clamp-mariadb/templates/deployment.yaml
@@ -38,7 +38,7 @@
     spec:
       containers:
         - name: {{ include "common.name" .  }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/clamp/components/clamp-mariadb/values.yaml b/kubernetes/clamp/components/clamp-mariadb/values.yaml
index f9a31b6..60b2cfe 100644
--- a/kubernetes/clamp/components/clamp-mariadb/values.yaml
+++ b/kubernetes/clamp/components/clamp-mariadb/values.yaml
@@ -21,7 +21,6 @@
 
   persistence: {}
 # application image
-repository: docker.io
 image: mariadb:10.5.4
 pullPolicy: Always
 flavor: small
diff --git a/kubernetes/clamp/requirements.yaml b/kubernetes/clamp/requirements.yaml
index dd93eac..fd71422 100644
--- a/kubernetes/clamp/requirements.yaml
+++ b/kubernetes/clamp/requirements.yaml
@@ -17,6 +17,9 @@
   - name: certInitializer
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: clamp-mariadb
     version: ~6.x-0
     repository: 'file://components/clamp-mariadb'
diff --git a/kubernetes/clamp/templates/deployment.yaml b/kubernetes/clamp/templates/deployment.yaml
index 4c9bdb5..51b864b 100644
--- a/kubernetes/clamp/templates/deployment.yaml
+++ b/kubernetes/clamp/templates/deployment.yaml
@@ -48,7 +48,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
 {{ include "common.certInitializer.initContainer" . | nindent 6 }}
@@ -57,7 +57,7 @@
         {{ if .Values.global.centralizedLoggingEnabled }}{{ include "common.log.sidecar" . | nindent 8 }}{{ end }}
         # main container
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/clamp/values.yaml b/kubernetes/clamp/values.yaml
index 34ab79f..b2b37d3 100644
--- a/kubernetes/clamp/values.yaml
+++ b/kubernetes/clamp/values.yaml
@@ -18,9 +18,6 @@
 #################################################################
 global: # global defaults
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
   centralizedLoggingEnabled: true
   #AAF service
   aafEnabled: true
@@ -92,7 +89,6 @@
 flavor: small
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/clamp-frontend:5.1.5
 pullPolicy: Always
 
diff --git a/kubernetes/common/elasticsearch/components/data/values.yaml b/kubernetes/common/elasticsearch/components/data/values.yaml
index a9e3d78..8b5e687 100644
--- a/kubernetes/common/elasticsearch/components/data/values.yaml
+++ b/kubernetes/common/elasticsearch/components/data/values.yaml
@@ -1,4 +1,5 @@
-# Copyright © 2020 Bitnami, AT&T, Amdocs, Bell Canada, highstreet technologies
+# Copyright (c) 2020 Bitnami, AT&T, Amdocs, Bell Canada, highstreet technologies
+# Modification Copyright (c) 2020 Nokia
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -46,7 +47,7 @@
   - name: http-transport
     port: 9300
 
-image: bitnami/elasticsearch:7.6.1
+image: bitnami/elasticsearch:7.9.3
 ## Specify a imagePullPolicy
 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
 ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
diff --git a/kubernetes/common/elasticsearch/components/master/values.yaml b/kubernetes/common/elasticsearch/components/master/values.yaml
index e59b483..4095bd3 100644
--- a/kubernetes/common/elasticsearch/components/master/values.yaml
+++ b/kubernetes/common/elasticsearch/components/master/values.yaml
@@ -1,4 +1,5 @@
-# Copyright © 2020 Bitnami, AT&T, Amdocs, Bell Canada, highstreet technologies
+# Copyright (c) 2020 Bitnami, AT&T, Amdocs, Bell Canada, highstreet technologies
+# Modification Copyright (c) 2020 Nokia
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -42,7 +43,7 @@
 ## master acts as master only node, choose 'no' if no further data nodes are deployed)
 dedicatednode: 'yes'
 ## dedicatednode: "no"
-image: bitnami/elasticsearch:7.6.1
+image: bitnami/elasticsearch:7.9.3
 ## Specify a imagePullPolicy
 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
 ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
diff --git a/kubernetes/common/elasticsearch/values.yaml b/kubernetes/common/elasticsearch/values.yaml
index 7fb097b..7722af9 100644
--- a/kubernetes/common/elasticsearch/values.yaml
+++ b/kubernetes/common/elasticsearch/values.yaml
@@ -1,4 +1,5 @@
-# Copyright © 2020 Bitnami, AT&T, Amdocs, Bell Canada, highstreet technologies
+# Copyright (c) 2020 Bitnami, AT&T, Amdocs, Bell Canada, highstreet technologies
+# Modification Copyright (c) 2020 Nokia
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -40,7 +41,7 @@
   enabled: true
 
 # application image
-image: bitnami/elasticsearch:7.6.1
+image: bitnami/elasticsearch:7.9.3
 ## Specify a imagePullPolicy
 ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent'
 ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images
diff --git a/kubernetes/common/etcd/requirements.yaml b/kubernetes/common/etcd/requirements.yaml
index e90e615..733bc44 100644
--- a/kubernetes/common/etcd/requirements.yaml
+++ b/kubernetes/common/etcd/requirements.yaml
@@ -16,3 +16,6 @@
   - name: common
     version: ~6.x-0
     repository: 'file://../common'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: 'file://../repositoryGenerator'
diff --git a/kubernetes/common/etcd/templates/statefulset.yaml b/kubernetes/common/etcd/templates/statefulset.yaml
index c45648f..f5592bd 100644
--- a/kubernetes/common/etcd/templates/statefulset.yaml
+++ b/kubernetes/common/etcd/templates/statefulset.yaml
@@ -50,7 +50,7 @@
 {{- end }}
       containers:
       - name: {{ include "common.fullname" .  }}
-        image: "{{ .Values.repository }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.googleK8sRepository" . }}/{{ .Values.image }}
         imagePullPolicy: "{{ .Values.pullPolicy }}"
         ports:
         - containerPort: {{ .Values.service.peerInternalPort }}
diff --git a/kubernetes/common/etcd/values.yaml b/kubernetes/common/etcd/values.yaml
index d994f87..3cfd453 100644
--- a/kubernetes/common/etcd/values.yaml
+++ b/kubernetes/common/etcd/values.yaml
@@ -24,8 +24,7 @@
 #################################################################
 
 #repository: etcd
-repository: "k8s.gcr.io"
-image: "etcd-amd64:3.2.24"
+image: etcd-amd64:3.2.24
 pullPolicy: Always
 
 # default number of instances in the StatefulSet
diff --git a/kubernetes/common/mariadb-galera/requirements.yaml b/kubernetes/common/mariadb-galera/requirements.yaml
index 4fbecbf..2509f7f 100644
--- a/kubernetes/common/mariadb-galera/requirements.yaml
+++ b/kubernetes/common/mariadb-galera/requirements.yaml
@@ -15,4 +15,7 @@
 dependencies:
   - name: common
     version: ~6.x-0
-    repository: 'file://../common'
\ No newline at end of file
+    repository: 'file://../common'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: 'file://../repositoryGenerator'
\ No newline at end of file
diff --git a/kubernetes/common/mariadb-galera/resources/create-deployment.yml b/kubernetes/common/mariadb-galera/resources/create-deployment.yml
index d81d640..0f6bb59 100644
--- a/kubernetes/common/mariadb-galera/resources/create-deployment.yml
+++ b/kubernetes/common/mariadb-galera/resources/create-deployment.yml
@@ -13,7 +13,7 @@
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
           name: {{ .Values.service.portName }}
diff --git a/kubernetes/common/mariadb-galera/templates/backup/cronjob.yaml b/kubernetes/common/mariadb-galera/templates/backup/cronjob.yaml
index bce0eb9..1c78017 100644
--- a/kubernetes/common/mariadb-galera/templates/backup/cronjob.yaml
+++ b/kubernetes/common/mariadb-galera/templates/backup/cronjob.yaml
@@ -45,11 +45,11 @@
                 fieldRef:
                   apiVersion: v1
                   fieldPath: metadata.namespace
-            image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+            image: {{ include "repositoryGenerator.image.readiness" . }}
             imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
             name: {{ include "common.name" . }}-readiness
           - name: mariadb-galera-backup-init
-            image: "{{ include "common.repository" . }}/{{ .Values.backupImage }}"
+            image: {{ include "repositoryGenerator.image.mariadb" . }}
             imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
             command:
             - /bin/bash
@@ -94,7 +94,7 @@
               mountPath: /var/lib/mysql
           containers:
           - name: mariadb-backup-validate
-            image: "{{ include "common.repository" . }}/{{ .Values.backupImage }}"
+            image: {{ include "repositoryGenerator.image.mariadb" . }}
             imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
             env:
             - name: MYSQL_ROOT_PASSWORD
diff --git a/kubernetes/common/mariadb-galera/templates/job.yaml b/kubernetes/common/mariadb-galera/templates/job.yaml
index 5dc822a..250279a 100644
--- a/kubernetes/common/mariadb-galera/templates/job.yaml
+++ b/kubernetes/common/mariadb-galera/templates/job.yaml
@@ -14,7 +14,7 @@
         runAsUser: 1001
       containers:
       - name: mariadb-job-pre-upgrade
-        image: {{ .Values.global.kubectlImage}}
+        image: {{ include "repositoryGenerator.image.kubectl" . }}
         imagePullPolicy: IfNotPresent
         env:
           - name: NAMESPACE_ENV
@@ -49,7 +49,7 @@
         fsGroup: 1001
         runAsUser: 0
       initContainers:
-      - image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+      - image: {{ include "repositoryGenerator.image.readiness" . }}
         name: mariadb-galera-upgrade-readiness
         env:
         - name: NAMESPACE
@@ -64,7 +64,7 @@
         - mariadb-galera
       containers:
       - name: mariadb-job-post-upgrade
-        image: {{ .Values.global.kubectlImage}}
+        image: {{ include "repositoryGenerator.image.kubectl" . }}
         imagePullPolicy: IfNotPresent
         env:
         - name: NAMESPACE_ENV
@@ -99,7 +99,7 @@
     spec:
       containers:
       - name: mariadb-job-post-delete
-        image: {{ .Values.global.kubectlImage}}
+        image: {{ include "repositoryGenerator.image.kubectl" . }}
         imagePullPolicy: IfNotPresent
         command: ["/bin/bash", "-c", "--"]
         args:
diff --git a/kubernetes/common/mariadb-galera/templates/statefulset.yaml b/kubernetes/common/mariadb-galera/templates/statefulset.yaml
index 47d1e0e..eb21fe3 100644
--- a/kubernetes/common/mariadb-galera/templates/statefulset.yaml
+++ b/kubernetes/common/mariadb-galera/templates/statefulset.yaml
@@ -61,7 +61,7 @@
       - name: {{ include "common.namespace" . }}-docker-registry-key
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}}
           env:
             - name: POD_NAMESPACE
@@ -119,7 +119,7 @@
             name: {{ include "common.fullname" . }}-data
       initContainers:
         - name: {{ include "common.name" . }}-prepare
-          image: "{{ include "common.repository" . }}/{{ .Values.imageInit }}"
+          image: {{ include "repositoryGenerator.image.busybox" . }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy | quote}}
           command: ["sh", "-c", "chown -R 27:27 /var/lib/mysql"]
           volumeMounts:
diff --git a/kubernetes/common/mariadb-galera/values.yaml b/kubernetes/common/mariadb-galera/values.yaml
index 55606ea..6b1676f 100644
--- a/kubernetes/common/mariadb-galera/values.yaml
+++ b/kubernetes/common/mariadb-galera/values.yaml
@@ -38,23 +38,12 @@
     backup:
       mountPath: /dockerdata-nfs/backup
 
-  repository: nexus3.onap.org:10001
-
-  readinessImage: onap/oom/readiness:3.0.1
-  busyboxImage: busybox:1.30
-  busyboxRepository: docker.io
-  # kubeclt image
-  kubectlImage: "bitnami/kubectl:1.15"
-
 #################################################################
 # Application configuration defaults.
 #################################################################
 
 #repository: mysql
-repository: nexus3.onap.org:10001
 image: adfinissygroup/k8s-mariadb-galera-centos:v002
-backupImage: library/mariadb:10.1.38
-imageInit: busybox
 pullPolicy: IfNotPresent
 
 # application configuration
diff --git a/kubernetes/common/mariadb-init/requirements.yaml b/kubernetes/common/mariadb-init/requirements.yaml
index 4fbecbf..2509f7f 100644
--- a/kubernetes/common/mariadb-init/requirements.yaml
+++ b/kubernetes/common/mariadb-init/requirements.yaml
@@ -15,4 +15,7 @@
 dependencies:
   - name: common
     version: ~6.x-0
-    repository: 'file://../common'
\ No newline at end of file
+    repository: 'file://../common'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: 'file://../repositoryGenerator'
\ No newline at end of file
diff --git a/kubernetes/common/mariadb-init/templates/job.yaml b/kubernetes/common/mariadb-init/templates/job.yaml
index fb06568..ad97cd4 100644
--- a/kubernetes/common/mariadb-init/templates/job.yaml
+++ b/kubernetes/common/mariadb-init/templates/job.yaml
@@ -49,11 +49,11 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.image.mariadb" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
           - /bin/sh
diff --git a/kubernetes/common/mariadb-init/values.yaml b/kubernetes/common/mariadb-init/values.yaml
index 42a1513..b2c0a05 100644
--- a/kubernetes/common/mariadb-init/values.yaml
+++ b/kubernetes/common/mariadb-init/values.yaml
@@ -16,8 +16,6 @@
 # Global configuration defaults.
 #################################################################
 global:
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
   mariadbGalera:
     nameOverride: mariadb-galera
     servicePort: 3306
@@ -45,7 +43,6 @@
 # Application configuration defaults.
 #################################################################
 
-image: mariadb:10.1.38
 pullPolicy: IfNotPresent
 
 # These two values are used to supply commands that are run after the DB is created.
diff --git a/kubernetes/common/mongo/requirements.yaml b/kubernetes/common/mongo/requirements.yaml
index 6ba617e..09c09d6 100644
--- a/kubernetes/common/mongo/requirements.yaml
+++ b/kubernetes/common/mongo/requirements.yaml
@@ -16,3 +16,6 @@
   - name: common
     version: ~6.x-0
     repository: 'file://../common'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: 'file://../repositoryGenerator'
diff --git a/kubernetes/common/mongo/templates/statefulset.yaml b/kubernetes/common/mongo/templates/statefulset.yaml
index df922ed..73186b3 100644
--- a/kubernetes/common/mongo/templates/statefulset.yaml
+++ b/kubernetes/common/mongo/templates/statefulset.yaml
@@ -39,7 +39,7 @@
 {{ include "common.podSecurityContext" . | indent 6 }}
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ .Values.dockerHubRepository }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
           - docker-entrypoint.sh
diff --git a/kubernetes/common/mongo/values.yaml b/kubernetes/common/mongo/values.yaml
index 223234f..ee1d8c7 100644
--- a/kubernetes/common/mongo/values.yaml
+++ b/kubernetes/common/mongo/values.yaml
@@ -18,14 +18,12 @@
 global:
   nodePortPrefix: 302
   persistence: {}
-  readinessImage: onap/oom/readiness:3.0.1
 
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 
-dockerHubRepository: docker.io
 image: library/mongo:4.0.8
 pullPolicy: Always
 
diff --git a/kubernetes/esr/Makefile b/kubernetes/esr/Makefile
new file mode 100644
index 0000000..4c79718
--- /dev/null
+++ b/kubernetes/esr/Makefile
@@ -0,0 +1,51 @@
+# Copyright © 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := dist resources templates charts docker
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+	@echo "\n[$@]"
+	@make package-$@
+
+make-%:
+	@if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+	@if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+	@mkdir -p $(PACKAGE_DIR)
+	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+	@$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+	@rm -f */requirements.lock
+	@rm -f *tgz */charts/*tgz
+	@rm -rf $(PACKAGE_DIR)
+%:
+	@:
diff --git a/kubernetes/esr/components/Makefile b/kubernetes/esr/components/Makefile
new file mode 100644
index 0000000..bf267b7
--- /dev/null
+++ b/kubernetes/esr/components/Makefile
@@ -0,0 +1,51 @@
+# Copyright © 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES :=
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+	@echo "\n[$@]"
+	@make package-$@
+
+make-%:
+	@if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+	@if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+	@mkdir -p $(PACKAGE_DIR)
+	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+	@$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+	@rm -f */requirements.lock
+	@rm -f *tgz */charts/*tgz
+	@rm -rf $(PACKAGE_DIR)
+%:
+	@:
diff --git a/kubernetes/esr/charts/esr-gui/.helmignore b/kubernetes/esr/components/esr-gui/.helmignore
similarity index 100%
rename from kubernetes/esr/charts/esr-gui/.helmignore
rename to kubernetes/esr/components/esr-gui/.helmignore
diff --git a/kubernetes/esr/charts/esr-gui/Chart.yaml b/kubernetes/esr/components/esr-gui/Chart.yaml
similarity index 100%
rename from kubernetes/esr/charts/esr-gui/Chart.yaml
rename to kubernetes/esr/components/esr-gui/Chart.yaml
diff --git a/kubernetes/esr/charts/esr-server/requirements.yaml b/kubernetes/esr/components/esr-gui/requirements.yaml
similarity index 83%
rename from kubernetes/esr/charts/esr-server/requirements.yaml
rename to kubernetes/esr/components/esr-gui/requirements.yaml
index a999e38..0b77abe 100644
--- a/kubernetes/esr/charts/esr-server/requirements.yaml
+++ b/kubernetes/esr/components/esr-gui/requirements.yaml
@@ -1,4 +1,5 @@
-# Copyright © 2018 Amdocs, Bell Canada
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2018 AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -18,4 +19,7 @@
     # local reference to common chart, as it is
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/esr/charts/esr-gui/templates/NOTES.txt b/kubernetes/esr/components/esr-gui/templates/NOTES.txt
similarity index 100%
rename from kubernetes/esr/charts/esr-gui/templates/NOTES.txt
rename to kubernetes/esr/components/esr-gui/templates/NOTES.txt
diff --git a/kubernetes/esr/charts/esr-gui/templates/deployment.yaml b/kubernetes/esr/components/esr-gui/templates/deployment.yaml
similarity index 94%
rename from kubernetes/esr/charts/esr-gui/templates/deployment.yaml
rename to kubernetes/esr/components/esr-gui/templates/deployment.yaml
index 985f4a1..74f9335 100644
--- a/kubernetes/esr/charts/esr-gui/templates/deployment.yaml
+++ b/kubernetes/esr/components/esr-gui/templates/deployment.yaml
@@ -50,7 +50,7 @@
         - /opt/tomcat
         securityContext:
           privileged: true
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: create-tomcat-dir
         volumeMounts:
@@ -59,7 +59,7 @@
 
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/esr/charts/esr-gui/templates/service.yaml b/kubernetes/esr/components/esr-gui/templates/service.yaml
similarity index 100%
rename from kubernetes/esr/charts/esr-gui/templates/service.yaml
rename to kubernetes/esr/components/esr-gui/templates/service.yaml
diff --git a/kubernetes/esr/charts/esr-gui/values.yaml b/kubernetes/esr/components/esr-gui/values.yaml
similarity index 98%
rename from kubernetes/esr/charts/esr-gui/values.yaml
rename to kubernetes/esr/components/esr-gui/values.yaml
index a191739..417ace5 100644
--- a/kubernetes/esr/charts/esr-gui/values.yaml
+++ b/kubernetes/esr/components/esr-gui/values.yaml
@@ -23,7 +23,6 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: onap/aai/esr-gui:1.4.0
 pullPolicy: Always
 msbaddr: msb-iag.{{ include "common.namespace" . }}:443
diff --git a/kubernetes/esr/charts/esr-server/Chart.yaml b/kubernetes/esr/components/esr-server/Chart.yaml
similarity index 100%
rename from kubernetes/esr/charts/esr-server/Chart.yaml
rename to kubernetes/esr/components/esr-server/Chart.yaml
diff --git a/kubernetes/esr/charts/esr-server/requirements.yaml b/kubernetes/esr/components/esr-server/requirements.yaml
similarity index 83%
copy from kubernetes/esr/charts/esr-server/requirements.yaml
copy to kubernetes/esr/components/esr-server/requirements.yaml
index a999e38..0b77abe 100644
--- a/kubernetes/esr/charts/esr-server/requirements.yaml
+++ b/kubernetes/esr/components/esr-server/requirements.yaml
@@ -1,4 +1,5 @@
-# Copyright © 2018 Amdocs, Bell Canada
+# Copyright © 2017 Amdocs, Bell Canada
+# Modifications Copyright © 2018 AT&T
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -18,4 +19,7 @@
     # local reference to common chart, as it is
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
-    repository: '@local'
\ No newline at end of file
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/esr/charts/esr-server/resources/config/log/filebeat/filebeat.yml b/kubernetes/esr/components/esr-server/resources/config/log/filebeat/filebeat.yml
similarity index 100%
rename from kubernetes/esr/charts/esr-server/resources/config/log/filebeat/filebeat.yml
rename to kubernetes/esr/components/esr-server/resources/config/log/filebeat/filebeat.yml
diff --git a/kubernetes/esr/charts/esr-server/resources/config/logback.xml b/kubernetes/esr/components/esr-server/resources/config/logback.xml
similarity index 100%
rename from kubernetes/esr/charts/esr-server/resources/config/logback.xml
rename to kubernetes/esr/components/esr-server/resources/config/logback.xml
diff --git a/kubernetes/esr/charts/esr-server/templates/NOTES.txt b/kubernetes/esr/components/esr-server/templates/NOTES.txt
similarity index 100%
rename from kubernetes/esr/charts/esr-server/templates/NOTES.txt
rename to kubernetes/esr/components/esr-server/templates/NOTES.txt
diff --git a/kubernetes/esr/charts/esr-server/templates/configmap.yaml b/kubernetes/esr/components/esr-server/templates/configmap.yaml
similarity index 100%
rename from kubernetes/esr/charts/esr-server/templates/configmap.yaml
rename to kubernetes/esr/components/esr-server/templates/configmap.yaml
diff --git a/kubernetes/esr/charts/esr-server/templates/deployment.yaml b/kubernetes/esr/components/esr-server/templates/deployment.yaml
similarity index 95%
rename from kubernetes/esr/charts/esr-server/templates/deployment.yaml
rename to kubernetes/esr/components/esr-server/templates/deployment.yaml
index e8dd5cd..03bcaa0 100644
--- a/kubernetes/esr/charts/esr-server/templates/deployment.yaml
+++ b/kubernetes/esr/components/esr-server/templates/deployment.yaml
@@ -50,7 +50,7 @@
         - /opt/conf
         securityContext:
           privileged: true
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: create-conf-dir
         volumeMounts:
@@ -59,7 +59,7 @@
 
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
@@ -103,7 +103,7 @@
           securityContext:
             runAsUser: 1000
             runAsGroup: 1000
-          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+          image: {{ include "repositoryGenerator.image.logging" . }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           volumeMounts:
           - name: {{ include "common.fullname" . }}-filebeat-conf
diff --git a/kubernetes/esr/charts/esr-server/templates/service.yaml b/kubernetes/esr/components/esr-server/templates/service.yaml
similarity index 100%
rename from kubernetes/esr/charts/esr-server/templates/service.yaml
rename to kubernetes/esr/components/esr-server/templates/service.yaml
diff --git a/kubernetes/esr/charts/esr-server/values.yaml b/kubernetes/esr/components/esr-server/values.yaml
similarity index 93%
rename from kubernetes/esr/charts/esr-server/values.yaml
rename to kubernetes/esr/components/esr-server/values.yaml
index 0177690..a3fb686 100644
--- a/kubernetes/esr/charts/esr-server/values.yaml
+++ b/kubernetes/esr/components/esr-server/values.yaml
@@ -17,15 +17,11 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
 
 subChartsOnly:
   enabled: true
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/aai/esr-server:1.5.2
 pullPolicy: Always
 msbaddr: msb-iag.{{ include "common.namespace" . }}:443
diff --git a/kubernetes/esr/requirements.yaml b/kubernetes/esr/requirements.yaml
index d3c442d..8c2a82d 100644
--- a/kubernetes/esr/requirements.yaml
+++ b/kubernetes/esr/requirements.yaml
@@ -14,9 +14,10 @@
 # limitations under the License.
 
 dependencies:
-  - name: common
+  - name: esr-gui
     version: ~6.x-0
-    # local reference to common chart, as it is
-    # a part of this chart's package and will not
-    # be published independently to a repo (at this point)
-    repository: '@local'
+    repository: 'file://components/esr-gui'
+    condition: esr-gui.enabled
+  - name: esr-server
+    version: ~6.x-0
+    repository: 'file://components/esr-server'
diff --git a/kubernetes/esr/resources/config/log/esrserver/logback.xml b/kubernetes/esr/resources/config/log/esrserver/logback.xml
deleted file mode 100644
index b9a51f1..0000000
--- a/kubernetes/esr/resources/config/log/esrserver/logback.xml
+++ /dev/null
@@ -1,44 +0,0 @@
-<?xml version = "1.0" encoding = "UTF-8" ?>
-<!--
-# Copyright © 2018  AT&T, Amdocs, Bell Canada Intellectual Property.  All rights reserved.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
--->
-
-<?xml version="1.0" encoding="UTF-8"?>
-<configuration debug="true" scan="true" scanPeriod="3 seconds">
-   <!--<jmxConfigurator /> -->
-   <!--  specify the base path of the log directory -->
-   <property name="logDir" value="/var/log/onap" />
-   <!--  specify the component name -->
-   <property name="componentName" value="esr" />
-   <!-- specify the sub component name -->
-   <property name="subComponentName" value="xacml-pap-rest" />
-   <!-- The directories where logs are written -->
-   <property name="logDirectory" value="${logDir}/${componentName}/${subComponentName}" />
-   <property name="pattern" value="%d{&amp;quot;yyyy-MM-dd'T'HH:mm:ss.SSSXXX&amp;quot;, UTC}\t[%thread]\t%-5level\t%logger{36}\t%replace(%replace(%replace(%mdc){'\t','\\\\t'}){', ','\t'}){'\n', '\\\\n'}\t%replace(%replace(%msg){'\n', '\\\\n'}){'\t','\\\\t'}%n" />
-   <!--  log file names -->
-   <property name="errorLogName" value="error" />
-   <property name="metricsLogName" value="metrics" />
-   <property name="auditLogName" value="audit" />
-   <property name="debugLogName" value="debug" />
-   <property name="queueSize" value="256" />
-   <property name="maxFileSize" value="50MB" />
-   <property name="maxHistory" value="30" />
-   <property name="totalSizeCap" value="10GB" />
-   <!-- Example evaluator filter applied against console appender -->
-   <appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
-      <encoder>
-         <pattern>${pattern}</pattern>
-      </encoder>
-   </appender>
diff --git a/kubernetes/esr/values.yaml b/kubernetes/esr/values.yaml
index bd12358..5b2f776 100644
--- a/kubernetes/esr/values.yaml
+++ b/kubernetes/esr/values.yaml
@@ -16,11 +16,11 @@
 #################################################################
 # Global configuration defaults.
 #################################################################
-global:
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
 
 # application configuration
 config:
   logstashServiceName: log-ls
-  logstashPort: 5044
\ No newline at end of file
+  logstashPort: 5044
+
+esr-gui:
+  enabled: true
\ No newline at end of file
diff --git a/kubernetes/helm/starters/onap-app/requirements.yaml b/kubernetes/helm/starters/onap-app/requirements.yaml
index 6a61926..b8e59b0 100644
--- a/kubernetes/helm/starters/onap-app/requirements.yaml
+++ b/kubernetes/helm/starters/onap-app/requirements.yaml
@@ -15,4 +15,7 @@
 dependencies:
   - name: common
     version: ~6.x-0
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
     repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/helm/starters/onap-app/templates/deployment.yaml b/kubernetes/helm/starters/onap-app/templates/deployment.yaml
index b409781..fc76c1f 100644
--- a/kubernetes/helm/starters/onap-app/templates/deployment.yaml
+++ b/kubernetes/helm/starters/onap-app/templates/deployment.yaml
@@ -43,12 +43,12 @@
 #            fieldRef:
 #              apiVersion: v1
 #              fieldPath: metadata.namespace
-#        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+#        image: {{ include "repositoryGenerator.image.readiness" . }}
 #        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 #        name: {{ include "common.name" . }}-readiness
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/helm/starters/onap-app/values.yaml b/kubernetes/helm/starters/onap-app/values.yaml
index 5bbe8f2..702bfb2 100644
--- a/kubernetes/helm/starters/onap-app/values.yaml
+++ b/kubernetes/helm/starters/onap-app/values.yaml
@@ -17,16 +17,11 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
 
 #################################################################
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: <onap-app>:<1.2-STAGING-latest>
 pullPolicy: Always
 
diff --git a/kubernetes/modeling/Makefile b/kubernetes/modeling/Makefile
index 94a9462..4c79718 100644
--- a/kubernetes/modeling/Makefile
+++ b/kubernetes/modeling/Makefile
@@ -1,4 +1,4 @@
-# Copyright © 2020 Samsung Electrinics
+# Copyright © 2020 Samsung Electronics
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
 # you may not use this file except in compliance with the License.
@@ -11,12 +11,41 @@
 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 # See the License for the specific language governing permissions and
 # limitations under the License.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES := dist resources templates charts docker
 HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
 
-make-modeling: make-modeling-etsicatalog
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
 
-make-modeling-etsicatalog:
-	cd charts && $(HELM_BIN) dep up modeling-etsicatalog && $(HELM_BIN) lint modeling-etsicatalog
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+	@echo "\n[$@]"
+	@make package-$@
+
+make-%:
+	@if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+	@if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+	@mkdir -p $(PACKAGE_DIR)
+	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+	@$(HELM_BIN) repo index $(PACKAGE_DIR)
+
 clean:
-	@find . -type f -name '*.tgz' -delete
-	@find . -type f -name '*.lock' -delete
+	@rm -f */requirements.lock
+	@rm -f *tgz */charts/*tgz
+	@rm -rf $(PACKAGE_DIR)
+%:
+	@:
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/templates/configmap.yaml b/kubernetes/modeling/charts/modeling-etsicatalog/templates/configmap.yaml
deleted file mode 100644
index c9ef0f0..0000000
--- a/kubernetes/modeling/charts/modeling-etsicatalog/templates/configmap.yaml
+++ /dev/null
@@ -1,23 +0,0 @@
-{{/*
-# Copyright © 2017 Amdocs, Bell Canada
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#       http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-*/}}
-
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: {{ include "common.fullname" . }}-logging-configmap
-  namespace: {{ include "common.namespace" . }}
-data:
-{{ tpl (.Files.Glob "resources/config/logging/*").AsConfig . | indent 2 }}
diff --git a/kubernetes/modeling/components/Makefile b/kubernetes/modeling/components/Makefile
new file mode 100644
index 0000000..bf267b7
--- /dev/null
+++ b/kubernetes/modeling/components/Makefile
@@ -0,0 +1,51 @@
+# Copyright © 2020 Samsung Electronics
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#       http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+ROOT_DIR := $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST))))
+OUTPUT_DIR := $(ROOT_DIR)/../../dist
+PACKAGE_DIR := $(OUTPUT_DIR)/packages
+SECRET_DIR := $(OUTPUT_DIR)/secrets
+
+EXCLUDES :=
+HELM_BIN := helm
+HELM_CHARTS := $(filter-out $(EXCLUDES), $(sort $(patsubst %/.,%,$(wildcard */.))))
+
+.PHONY: $(EXCLUDES) $(HELM_CHARTS)
+
+all: $(HELM_CHARTS)
+
+$(HELM_CHARTS):
+	@echo "\n[$@]"
+	@make package-$@
+
+make-%:
+	@if [ -f $*/Makefile ]; then make -C $*; fi
+
+dep-%: make-%
+	@if [ -f $*/requirements.yaml ]; then $(HELM_BIN) dep up $*; fi
+
+lint-%: dep-%
+	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) lint $*; fi
+
+package-%: lint-%
+	@mkdir -p $(PACKAGE_DIR)
+	@if [ -f $*/Chart.yaml ]; then $(HELM_BIN) package -d $(PACKAGE_DIR) $*; fi
+	@$(HELM_BIN) repo index $(PACKAGE_DIR)
+
+clean:
+	@rm -f */requirements.lock
+	@rm -f *tgz */charts/*tgz
+	@rm -rf $(PACKAGE_DIR)
+%:
+	@:
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/.helmignore b/kubernetes/modeling/components/modeling-etsicatalog/.helmignore
similarity index 100%
rename from kubernetes/modeling/charts/modeling-etsicatalog/.helmignore
rename to kubernetes/modeling/components/modeling-etsicatalog/.helmignore
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/Chart.yaml b/kubernetes/modeling/components/modeling-etsicatalog/Chart.yaml
similarity index 100%
rename from kubernetes/modeling/charts/modeling-etsicatalog/Chart.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/Chart.yaml
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/requirements.yaml b/kubernetes/modeling/components/modeling-etsicatalog/requirements.yaml
similarity index 92%
rename from kubernetes/modeling/charts/modeling-etsicatalog/requirements.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/requirements.yaml
index 7d89fef..cadf452 100644
--- a/kubernetes/modeling/charts/modeling-etsicatalog/requirements.yaml
+++ b/kubernetes/modeling/components/modeling-etsicatalog/requirements.yaml
@@ -27,3 +27,6 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/modeling/resources/config/logging/filebeat/filebeat.yml b/kubernetes/modeling/components/modeling-etsicatalog/resources/config/logging/filebeat/filebeat.yml
similarity index 100%
rename from kubernetes/modeling/resources/config/logging/filebeat/filebeat.yml
rename to kubernetes/modeling/components/modeling-etsicatalog/resources/config/logging/filebeat/filebeat.yml
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/resources/config/logging/log.yml b/kubernetes/modeling/components/modeling-etsicatalog/resources/config/logging/server/log.yml
similarity index 100%
rename from kubernetes/modeling/charts/modeling-etsicatalog/resources/config/logging/log.yml
rename to kubernetes/modeling/components/modeling-etsicatalog/resources/config/logging/server/log.yml
diff --git a/kubernetes/modeling/templates/configmap.yaml b/kubernetes/modeling/components/modeling-etsicatalog/templates/configmap.yaml
similarity index 71%
rename from kubernetes/modeling/templates/configmap.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/templates/configmap.yaml
index dee145a..1a2112b 100644
--- a/kubernetes/modeling/templates/configmap.yaml
+++ b/kubernetes/modeling/components/modeling-etsicatalog/templates/configmap.yaml
@@ -17,7 +17,15 @@
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ include "common.release" . }}-modeling-filebeat-configmap
+  name: {{ include "common.fullname" . }}-logging-configmap
   namespace: {{ include "common.namespace" . }}
 data:
-{{ tpl (.Files.Glob "resources/config/logging/filebeat/*").AsConfig . | indent 2 }}
+{{ tpl (.Files.Glob "resources/config/logging/server/*").AsConfig . | indent 2 }}
+---
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ include "common.fullname" . }}-modeling-filebeat-configmap
+  namespace: {{ include "common.namespace" . }}
+data:
+{{ tpl (.Files.Glob "resources/config/logging/filebeat/*").AsConfig . | indent 2 }}
\ No newline at end of file
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/templates/deployment.yaml b/kubernetes/modeling/components/modeling-etsicatalog/templates/deployment.yaml
similarity index 93%
rename from kubernetes/modeling/charts/modeling-etsicatalog/templates/deployment.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/templates/deployment.yaml
index 347d794..1a303ff 100644
--- a/kubernetes/modeling/charts/modeling-etsicatalog/templates/deployment.yaml
+++ b/kubernetes/modeling/components/modeling-etsicatalog/templates/deployment.yaml
@@ -49,7 +49,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-job-readiness
       {{ include "common.readinessCheck.waitFor" (dict "dot" . "wait_for" .Values.readinessCheck.wait_for.msb ) | indent 6 | trim }}
@@ -57,7 +57,7 @@
         - /bin/sh
         - -c
         - chown -R 1000:1000 /service/modeling/etsicatalog/static
-        image: "{{ include "common.repository" . }}/{{ .Values.initImage }}"
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-init
         volumeMounts:
@@ -65,7 +65,7 @@
           mountPath: /service/modeling/etsicatalog/static
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
@@ -128,7 +128,7 @@
 
         # side car containers
         - name: {{ include "common.name" . }}-filebeat-onap
-          image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+          image: {{ include "repositoryGenerator.image.logging" . }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           volumeMounts:
           - name: {{ include "common.fullname" . }}-filebeat-conf
@@ -158,7 +158,7 @@
 
         - name: {{ include "common.fullname" . }}-filebeat-conf
           configMap:
-            name: {{ include "common.release" . }}-modeling-filebeat-configmap
+            name: {{ include "common.fullname" . }}-modeling-filebeat-configmap
         - name: {{ include "common.fullname" . }}-data-filebeat
           emptyDir: {}
       imagePullSecrets:
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/templates/pv.yaml b/kubernetes/modeling/components/modeling-etsicatalog/templates/pv.yaml
similarity index 100%
rename from kubernetes/modeling/charts/modeling-etsicatalog/templates/pv.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/templates/pv.yaml
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/templates/pvc.yaml b/kubernetes/modeling/components/modeling-etsicatalog/templates/pvc.yaml
similarity index 100%
rename from kubernetes/modeling/charts/modeling-etsicatalog/templates/pvc.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/templates/pvc.yaml
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/templates/secrets.yaml b/kubernetes/modeling/components/modeling-etsicatalog/templates/secrets.yaml
similarity index 100%
rename from kubernetes/modeling/charts/modeling-etsicatalog/templates/secrets.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/templates/secrets.yaml
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/templates/service.yaml b/kubernetes/modeling/components/modeling-etsicatalog/templates/service.yaml
similarity index 100%
rename from kubernetes/modeling/charts/modeling-etsicatalog/templates/service.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/templates/service.yaml
diff --git a/kubernetes/modeling/charts/modeling-etsicatalog/values.yaml b/kubernetes/modeling/components/modeling-etsicatalog/values.yaml
similarity index 96%
rename from kubernetes/modeling/charts/modeling-etsicatalog/values.yaml
rename to kubernetes/modeling/components/modeling-etsicatalog/values.yaml
index 388c1ab..6c1cae2 100644
--- a/kubernetes/modeling/charts/modeling-etsicatalog/values.yaml
+++ b/kubernetes/modeling/components/modeling-etsicatalog/values.yaml
@@ -17,9 +17,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
 
   persistence:
     mountPath: /dockerdata-nfs
@@ -100,9 +97,7 @@
 # application image
 flavor: small
 
-repository: nexus3.onap.org:10001
 image: onap/modeling/etsicatalog:1.0.9
-initImage: busybox:latest
 pullPolicy: Always
 
 #Istio sidecar injection policy
diff --git a/kubernetes/modeling/requirements.yaml b/kubernetes/modeling/requirements.yaml
index f994771..ada1ded 100644
--- a/kubernetes/modeling/requirements.yaml
+++ b/kubernetes/modeling/requirements.yaml
@@ -13,6 +13,6 @@
 # limitations under the License.
 
 dependencies:
-  - name: common
+  - name: modeling-etsicatalog
     version: ~6.x-0
-    repository: '@local'
+    repository: 'file://components/modeling-etsicatalog'
diff --git a/kubernetes/nbi/requirements.yaml b/kubernetes/nbi/requirements.yaml
index 7ce3436..f76d598 100644
--- a/kubernetes/nbi/requirements.yaml
+++ b/kubernetes/nbi/requirements.yaml
@@ -34,3 +34,6 @@
     version: ~6.x-0
     repository: '@local'
     condition: not global.mariadbGalera.localCluster
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/nbi/templates/deployment.yaml b/kubernetes/nbi/templates/deployment.yaml
index 6d5b2d5..4be444a 100644
--- a/kubernetes/nbi/templates/deployment.yaml
+++ b/kubernetes/nbi/templates/deployment.yaml
@@ -43,7 +43,7 @@
 {{- end }}
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
             - containerPort: {{ .Values.service.internalPort }}
@@ -146,31 +146,9 @@
         affinity:
 {{ toYaml .Values.affinity | indent 10 }}
         {{- end }}
-      # side car containers
-        # - name: filebeat-onap
-        #   image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
-        #   imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
-        #   volumeMounts:
-        #   - mountPath: /usr/share/filebeat/filebeat.yml
-        #     name: filebeat-conf
-        #     subPath: filebeat.yml
-        #   - mountPath: /home/esr/works/logs
-        #     name: esr-server-logs
-        #   - mountPath: /usr/share/filebeat/data
-        #     name: esr-server-filebeat
       volumes: {{ include "common.certInitializer.volumes" . | nindent 8 }}
         - name: localtime
           hostPath:
             path: /etc/localtime
-        # - name: filebeat-conf
-        #   configMap:
-        #     name: {{ include "common.fullname" . }}-esr-filebeat
-        # - name: esr-server-logs
-        #   emptyDir: {}
-        # - name: esr-server-filebeat
-        #   emptyDir: {}
-        # - name: esrserver-log
-        #   configMap:
-        #     name: {{ include "common.fullname" . }}-esr-esrserver-log
       imagePullSecrets:
       - name: "{{ include "common.namespace" . }}-docker-registry-key"
diff --git a/kubernetes/nbi/values.yaml b/kubernetes/nbi/values.yaml
index 58fa336..61d7680 100644
--- a/kubernetes/nbi/values.yaml
+++ b/kubernetes/nbi/values.yaml
@@ -18,9 +18,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
   mariadbGalera: &mariadbGalera
     #This flag allows SO to instantiate its own mariadb-galera cluster
     localCluster: false
@@ -28,8 +25,6 @@
     internalPort: 3306
     nameOverride: mariadb-galera
   aafEnabled: true
-  busyBoxImage: busybox:1.30
-  busyBoxRepository: docker.io
 
 #################################################################
 # AAF part
diff --git a/kubernetes/onap/values.yaml b/kubernetes/onap/values.yaml
index 5e5e249..3c8b1e9 100755
--- a/kubernetes/onap/values.yaml
+++ b/kubernetes/onap/values.yaml
@@ -185,6 +185,11 @@
         truststorePath: "/etc/onap/oom/certservice/certs/truststore.jks"
         truststorePassword: "secret"
 
+  # Indicates offline deployment build
+  # Set to true if you are rendering helm charts for offline deployment
+  # Otherwise keep it disabled
+  offlineDeploymentBuild: false
+
   # TLS
   # Set to false if you want to disable TLS for NodePorts. Be aware that this
   # will loosen your security.
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/requirements.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/requirements.yaml
index 1d9792f..2b3543a 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/requirements.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/requirements.yaml
@@ -19,3 +19,6 @@
   - name: certInitializer
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/templates/deployment.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/templates/deployment.yaml
index fb798ef..c1d2602 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/templates/deployment.yaml
@@ -48,7 +48,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       - name: {{ include "common.name" . }}-db-config-readiness
@@ -63,17 +63,17 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       - name: {{ include "common.name" . }}-chown
         command: ["/bin/sh", "-c", "chown -Rf 1000:1000 /share/"]
-        image: "{{ .Values.global.busyBoxRepository }}/{{ .Values.global.busyBoxImage }}"
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /share/logs
       - name: db-init
-        image: "{{ include "common.repository" . }}/{{ .Values.dbinit.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.dbinit.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: DB_HOST
@@ -95,7 +95,7 @@
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: DB_HOST
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/values.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/values.yaml
index 6b04cdb..0c7eb8d 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/values.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-optimizer/values.yaml
@@ -24,7 +24,6 @@
   enabled: true
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/optf-cmso-optimizer:2.3.0
 pullPolicy: Always
 
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/requirements.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/requirements.yaml
index 1d9792f..6a95679 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/requirements.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/requirements.yaml
@@ -19,3 +19,6 @@
   - name: certInitializer
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/templates/deployment.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/templates/deployment.yaml
index 522645e..27d52a2 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/templates/deployment.yaml
@@ -48,7 +48,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       - name: {{ include "common.name" . }}-db-config-readiness
@@ -63,17 +63,17 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       - name: {{ include "common.name" . }}-chown
         command: ["/bin/sh", "-c", "chown -Rf 1000:1000 /share/"]
-        image: "{{ .Values.global.busyBoxRepository }}/{{ .Values.global.busyBoxImage }}"
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-logs
           mountPath: /share/logs
       - name: db-init
-        image: "{{ include "common.repository" . }}/{{ .Values.dbinit.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.dbinit.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: DB_HOST
@@ -96,7 +96,7 @@
       containers:
       # side car containers
       - name: filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: /usr/share/filebeat/filebeat.yml
@@ -109,7 +109,7 @@
         resources:
 {{ include "common.resources" . }}
       - name: mso-simulator
-        image: "{{ include "common.repository" . }}/{{ .Values.robotimage }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.robotimage }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-config
@@ -119,7 +119,7 @@
         resources:
 {{ include "common.resources" . }}
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: DB_HOST
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/values.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/values.yaml
index 4f4503b..9973f85 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/values.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-service/values.yaml
@@ -18,13 +18,11 @@
 #################################################################
 global: # global defaults
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
 
 subChartsOnly:
   enabled: true
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/optf-cmso-service:2.3.0
 robotimage: onap/optf-cmso-robot:2.3.0
 pullPolicy: Always
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/requirements.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/requirements.yaml
index 1d9792f..6a95679 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/requirements.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/requirements.yaml
@@ -19,3 +19,6 @@
   - name: certInitializer
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/templates/deployment.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/templates/deployment.yaml
index 929e0fb..9f9484f 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/templates/deployment.yaml
@@ -38,7 +38,7 @@
       initContainers:
       - name: {{ include "common.name" . }}-chown
         command: ["/bin/sh", "-c", "chown -Rf 1000:1000 /share/"]
-        image: "{{ .Values.global.busyBoxRepository }}/{{ .Values.global.busyBoxImage }}"
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
           - name: {{ include "common.fullname" . }}-logs
@@ -46,7 +46,7 @@
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: JAVA_TRUSTSTORE
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/values.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/values.yaml
index 1c1ae7a..3720c7d 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/values.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-ticketmgt/values.yaml
@@ -23,7 +23,6 @@
   enabled: true
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/optf-cmso-ticketmgt:2.3.0
 pullPolicy: Always
 
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/requirements.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/requirements.yaml
index 1d9792f..6a95679 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/requirements.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/requirements.yaml
@@ -19,3 +19,6 @@
   - name: certInitializer
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/templates/deployment.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/templates/deployment.yaml
index 8b03029..c08d9a3 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/templates/deployment.yaml
@@ -38,7 +38,7 @@
       initContainers:
       - name: {{ include "common.name" . }}-chown
         command: ["/bin/sh", "-c", "chown -Rf 1000:1000 /share/"]
-        image: "{{ .Values.global.busyBoxRepository }}/{{ .Values.global.busyBoxImage }}"
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-logs
@@ -46,7 +46,7 @@
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: JAVA_TRUSTSTORE
diff --git a/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/values.yaml b/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/values.yaml
index 9d5cec1..bdf1606 100644
--- a/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/values.yaml
+++ b/kubernetes/oof/components/oof-cmso/components/oof-cmso-topology/values.yaml
@@ -17,13 +17,11 @@
 #################################################################
 global: # global defaults
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
 
 subChartsOnly:
   enabled: true
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/optf-cmso-topology:2.3.0
 pullPolicy: Always
 
diff --git a/kubernetes/oof/components/oof-cmso/requirements.yaml b/kubernetes/oof/components/oof-cmso/requirements.yaml
index 57357a6..0e79ed0 100644
--- a/kubernetes/oof/components/oof-cmso/requirements.yaml
+++ b/kubernetes/oof/components/oof-cmso/requirements.yaml
@@ -42,3 +42,6 @@
     version: ~6.x-0
     repository: 'file://components/oof-cmso-topology'
     condition: oof-cmso-topology.enabled
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-cmso/values.yaml b/kubernetes/oof/components/oof-cmso/values.yaml
index e83e2de..7405c48 100644
--- a/kubernetes/oof/components/oof-cmso/values.yaml
+++ b/kubernetes/oof/components/oof-cmso/values.yaml
@@ -62,12 +62,8 @@
   commonConfigPrefix: "oof-cmso"
   truststoreFile: "truststoreONAPall.jks"
   keystoreFile: "org.onap.oof.jks"
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
   truststorePassword:
   authentication: aaf-auth
-  busyBoxImage: busybox:1.30
-  busyBoxRepository: docker.io
 
 mariadb-init:
   mariadbGalera:
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-api/requirements.yaml b/kubernetes/oof/components/oof-has/components/oof-has-api/requirements.yaml
index 90fe5dd..f9673d5 100644
--- a/kubernetes/oof/components/oof-has/components/oof-has-api/requirements.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-api/requirements.yaml
@@ -22,3 +22,6 @@
   - name: oof-templates
     version: ~6.x-0
     repository: 'file://../../../oof-templates'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-api/templates/deployment.yaml b/kubernetes/oof/components/oof-has/components/oof-has-api/templates/deployment.yaml
index 4db9f15..491250c 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-api/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-api/templates/deployment.yaml
@@ -52,7 +52,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-onboard-readiness
@@ -67,7 +67,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-has-sms-readiness
@@ -86,13 +86,13 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
+        image: {{ include "repositoryGenerator.image.curl" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
 
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command: ["/bin/bash","-c"]
           args: ["/usr/local/bin/uwsgi -s /run/conductor/uwsgi.sock --chmod-socket=777 --wsgi-file /etc/nginx/conductor.wsgi --callable application --set port={{ .Values.uwsgi.internalPort }} --die-on-term --exit-on-reload --pidfile /run/conductor/conductor-uwsgi.pid --enable-threads --workers 6 --master --vacuum --single-interpreter --socket-timeout 10 --max-worker-lifetime 300 --max-requests 100 --no-defer-accept --protocol=uwsgi --socket 0.0.0.0:{{ .Values.uwsgi.internalPort }}"]
@@ -129,7 +129,7 @@
           resources:
 {{ include "common.resources" . | indent 12 }}
         - name: {{ include "common.name" . }}-nginx
-          image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.nginx.image }}"
+          image: {{ include "repositoryGenerator.image.nginx" . }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
           - /bin/sh
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-api/values.yaml b/kubernetes/oof/components/oof-has/components/oof-has-api/values.yaml
index b17eed6..46d7172 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-api/values.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-api/values.yaml
@@ -35,9 +35,6 @@
   nodePort: 75
   portName: oof-has-api
 
-#sidecar container image
-nginx:
-  image: bitnami/nginx:1.18-debian-10
 #backend container info
 uwsgi:
   internalPort: 8080
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-controller/requirements.yaml b/kubernetes/oof/components/oof-has/components/oof-has-controller/requirements.yaml
index 1bb059b..8fde52a 100644
--- a/kubernetes/oof/components/oof-has/components/oof-has-controller/requirements.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-controller/requirements.yaml
@@ -19,3 +19,6 @@
   - name: oof-templates
     version: ~6.x-0
     repository: 'file://../../../oof-templates'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-controller/templates/deployment.yaml b/kubernetes/oof/components/oof-has/components/oof-has-controller/templates/deployment.yaml
index 9540cc3..8e0ff1a 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-controller/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-controller/templates/deployment.yaml
@@ -51,7 +51,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-onboard-readiness
@@ -66,7 +66,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-cont-sms-readiness
@@ -85,11 +85,11 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
+        image: {{ include "repositoryGenerator.image.curl" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
           - python
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-controller/values.yaml b/kubernetes/oof/components/oof-has/components/oof-has-controller/values.yaml
index 327a537..99dd66c 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-controller/values.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-controller/values.yaml
@@ -13,8 +13,6 @@
 # limitations under the License.
 
 global:
-  readinessImage: onap/oom/readiness:3.0.1
-  repository: nexus3.onap.org:10001
   image:
     optf_has: onap/optf-has:2.1.2
 
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-data/requirements.yaml b/kubernetes/oof/components/oof-has/components/oof-has-data/requirements.yaml
index 1bb059b..8fde52a 100644
--- a/kubernetes/oof/components/oof-has/components/oof-has-data/requirements.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-data/requirements.yaml
@@ -19,3 +19,6 @@
   - name: oof-templates
     version: ~6.x-0
     repository: 'file://../../../oof-templates'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-data/templates/deployment.yaml b/kubernetes/oof/components/oof-has/components/oof-has-data/templates/deployment.yaml
index 4292cb1..f4ccd57 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-data/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-data/templates/deployment.yaml
@@ -49,7 +49,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-onboard-readiness
@@ -64,7 +64,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-health-readiness
@@ -79,7 +79,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-data-sms-readiness
@@ -98,12 +98,12 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
+        image: {{ include "repositoryGenerator.image.curl" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
           - python
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-data/values.yaml b/kubernetes/oof/components/oof-has/components/oof-has-data/values.yaml
index 570c0df..e7a63c5 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-data/values.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-data/values.yaml
@@ -13,8 +13,6 @@
 # limitations under the License.
 
 global:
-  readinessImage: onap/oom/readiness:3.0.1
-  repository: nexus3.onap.org:10001
   image:
     optf_has: onap/optf-has:2.1.2
 
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-reservation/requirements.yaml b/kubernetes/oof/components/oof-has/components/oof-has-reservation/requirements.yaml
index 1bb059b..8fde52a 100644
--- a/kubernetes/oof/components/oof-has/components/oof-has-reservation/requirements.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-reservation/requirements.yaml
@@ -19,3 +19,6 @@
   - name: oof-templates
     version: ~6.x-0
     repository: 'file://../../../oof-templates'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-reservation/templates/deployment.yaml b/kubernetes/oof/components/oof-has/components/oof-has-reservation/templates/deployment.yaml
index 9acd944..4d04b6f 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-reservation/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-reservation/templates/deployment.yaml
@@ -49,7 +49,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-onboard-readiness
@@ -64,7 +64,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-health-readiness
@@ -79,7 +79,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-resrv-sms-readiness
@@ -98,12 +98,12 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
+        image: {{ include "repositoryGenerator.image.curl" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
           - python
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-reservation/values.yaml b/kubernetes/oof/components/oof-has/components/oof-has-reservation/values.yaml
index 570c0df..e7a63c5 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-reservation/values.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-reservation/values.yaml
@@ -13,8 +13,6 @@
 # limitations under the License.
 
 global:
-  readinessImage: onap/oom/readiness:3.0.1
-  repository: nexus3.onap.org:10001
   image:
     optf_has: onap/optf-has:2.1.2
 
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-solver/requirements.yaml b/kubernetes/oof/components/oof-has/components/oof-has-solver/requirements.yaml
index 1bb059b..8fde52a 100644
--- a/kubernetes/oof/components/oof-has/components/oof-has-solver/requirements.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-solver/requirements.yaml
@@ -19,3 +19,6 @@
   - name: oof-templates
     version: ~6.x-0
     repository: 'file://../../../oof-templates'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-solver/templates/deployment.yaml b/kubernetes/oof/components/oof-has/components/oof-has-solver/templates/deployment.yaml
index ec26684..6079dcf 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-solver/templates/deployment.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-solver/templates/deployment.yaml
@@ -49,7 +49,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-onboard-readiness
@@ -64,7 +64,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-health-readiness
@@ -79,7 +79,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       - name: {{ include "common.name" . }}-solvr-sms-readiness
@@ -98,12 +98,12 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
+        image: {{ include "repositoryGenerator.image.curl" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
 
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
           - python
diff --git a/kubernetes/oof/components/oof-has/components/oof-has-solver/values.yaml b/kubernetes/oof/components/oof-has/components/oof-has-solver/values.yaml
index 570c0df..e7a63c5 100755
--- a/kubernetes/oof/components/oof-has/components/oof-has-solver/values.yaml
+++ b/kubernetes/oof/components/oof-has/components/oof-has-solver/values.yaml
@@ -13,8 +13,6 @@
 # limitations under the License.
 
 global:
-  readinessImage: onap/oom/readiness:3.0.1
-  repository: nexus3.onap.org:10001
   image:
     optf_has: onap/optf-has:2.1.2
 
diff --git a/kubernetes/oof/components/oof-has/requirements.yaml b/kubernetes/oof/components/oof-has/requirements.yaml
index b1e0e1a..d21a124 100755
--- a/kubernetes/oof/components/oof-has/requirements.yaml
+++ b/kubernetes/oof/components/oof-has/requirements.yaml
@@ -40,3 +40,6 @@
     version: ~6.x-0
     repository: 'file://components/oof-has-solver'
     condition: oof-has-solver.enabled
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/components/oof-has/templates/job-healthcheck.yaml b/kubernetes/oof/components/oof-has/templates/job-healthcheck.yaml
index 393a6bb..49406ba 100755
--- a/kubernetes/oof/components/oof-has/templates/job-healthcheck.yaml
+++ b/kubernetes/oof/components/oof-has/templates/job-healthcheck.yaml
@@ -33,7 +33,7 @@
         release: {{ include "common.release" . }}
     spec:
       initContainers:
-      - image:  "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+      - image:  {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
         command:
@@ -48,7 +48,7 @@
               apiVersion: v1
               fieldPath: metadata.namespace
       containers:
-      - image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+      - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-healthcheck
         command:
diff --git a/kubernetes/oof/components/oof-has/templates/job-onboard.yaml b/kubernetes/oof/components/oof-has/templates/job-onboard.yaml
index a82435b..a60372f 100755
--- a/kubernetes/oof/components/oof-has/templates/job-onboard.yaml
+++ b/kubernetes/oof/components/oof-has/templates/job-onboard.yaml
@@ -33,7 +33,7 @@
         release: {{ include "common.release" . }}
     spec:
       initContainers:
-      - image:  "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+      - image:  {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
         command:
@@ -60,11 +60,11 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-music-db-readiness
       containers:
-      - image: "{{ include "common.repository" . }}/{{ .Values.global.image.optf_has }}"
+      - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.global.image.optf_has }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-onboard
         command:
diff --git a/kubernetes/oof/components/oof-has/values.yaml b/kubernetes/oof/components/oof-has/values.yaml
index ffd11db..1389044 100755
--- a/kubernetes/oof/components/oof-has/values.yaml
+++ b/kubernetes/oof/components/oof-has/values.yaml
@@ -17,14 +17,9 @@
 # Global configuration defaults.
 #################################################################
 global:
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  repository: nexus3.onap.org:10001
   commonConfigPrefix: onap-oof-has
   image:
     optf_has: onap/optf-has:2.1.2
-    filebeat: docker.elastic.co/beats/filebeat:5.5.0
   persistence:
     enabled: true
 
diff --git a/kubernetes/oof/requirements.yaml b/kubernetes/oof/requirements.yaml
index 2d1f9b3..a68ce41 100755
--- a/kubernetes/oof/requirements.yaml
+++ b/kubernetes/oof/requirements.yaml
@@ -31,3 +31,6 @@
   - name: oof-templates
     version: ~6.x-0
     repository: 'file://components/oof-templates'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/oof/templates/deployment.yaml b/kubernetes/oof/templates/deployment.yaml
index 2f46a6d..2b1eeba 100644
--- a/kubernetes/oof/templates/deployment.yaml
+++ b/kubernetes/oof/templates/deployment.yaml
@@ -49,7 +49,7 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       - command:
@@ -67,13 +67,13 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ .Values.global.dockerHubRepository }}/{{ .Values.global.curlImage }}"
+        image: {{ include "repositoryGenerator.image.curl" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-osdf-sms-readiness
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
           - /bin/sh
diff --git a/kubernetes/oof/values.yaml b/kubernetes/oof/values.yaml
index 0cdccfb..db7c9d2 100644
--- a/kubernetes/oof/values.yaml
+++ b/kubernetes/oof/values.yaml
@@ -17,9 +17,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
   persistence: {}
 
 #################################################################
@@ -38,7 +35,6 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: onap/optf-osdf:3.0.2
 pullPolicy: Always
 
diff --git a/kubernetes/platform/components/oom-cert-service/Makefile b/kubernetes/platform/components/oom-cert-service/Makefile
index c4723df..c15fdc7 100644
--- a/kubernetes/platform/components/oom-cert-service/Makefile
+++ b/kubernetes/platform/components/oom-cert-service/Makefile
@@ -27,7 +27,12 @@
 # Starts docker container for generating certificates - deletes first, if already running
 start_docker:
 	@make stop_docker
-	docker run -d --rm --name ${DOCKER_CONTAINER}  --mount type=bind,source=${CURRENT_DIR}/${CERTS_DIR},target=/certs -w /certs docker.io/openjdk:11-jre-slim tail -f /dev/null
+	$(eval REPOSITORY := $(shell cat ./values.yaml | grep -i "^[ \t]*repository" -m1 | xargs | cut -d ' ' -f2))
+	$(eval JAVA_IMAGE := $(shell cat ./values.yaml | grep -i "^[ \t]*certificateGenerationImage" -m1 | xargs | cut -d ' ' -f2))
+	$(eval FULL_JAVA_IMAGE := $(REPOSITORY)/$(JAVA_IMAGE))
+	$(eval USER :=$(shell id -u))
+	$(eval GROUP :=$(shell id -g))
+	docker run --rm --name ${DOCKER_CONTAINER} --user "$(USER):$(GROUP)" --mount type=bind,source=${CURRENT_DIR}/${CERTS_DIR},target=/app -w /app --entrypoint "sh" -td $(FULL_JAVA_IMAGE)
 
 # Stops docker container for generating  certificates. 'true' is used to return 0 status code, if container is already deleted
 stop_docker:
@@ -89,7 +94,7 @@
 #Import root certificate into client
 client_import_root_certificate:
 	@echo "Import root certificate into intermediate"
-	${DOCKER_EXEC} bash -c "cat root.crt >> certServiceClientByRoot.crt"
+	${DOCKER_EXEC} sh -c "cat root.crt >> certServiceClientByRoot.crt"
 	@echo "####done####"
 
 #Import signed certificate into certService's client
@@ -124,7 +129,7 @@
 #Import root certificate into server
 server_import_root_certificate:
 	@echo "Import root certificate into intermediate(server)"
-	${DOCKER_EXEC} bash -c "cat root.crt >> certServiceServerByRoot.crt"
+	${DOCKER_EXEC} sh -c "cat root.crt >> certServiceServerByRoot.crt"
 	@echo "####done####"
 
 #Import signed certificate into certService
diff --git a/kubernetes/platform/components/oom-cert-service/requirements.yaml b/kubernetes/platform/components/oom-cert-service/requirements.yaml
index 6afaa06..26bc7a6 100644
--- a/kubernetes/platform/components/oom-cert-service/requirements.yaml
+++ b/kubernetes/platform/components/oom-cert-service/requirements.yaml
@@ -12,7 +12,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
- dependencies:
+dependencies:
   - name: common
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/platform/components/oom-cert-service/templates/deployment.yaml b/kubernetes/platform/components/oom-cert-service/templates/deployment.yaml
index a6ce282..c4d7440 100644
--- a/kubernetes/platform/components/oom-cert-service/templates/deployment.yaml
+++ b/kubernetes/platform/components/oom-cert-service/templates/deployment.yaml
@@ -53,10 +53,10 @@
               fieldRef:
                 apiVersion: v1
                 fieldPath: metadata.namespace
-          image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+          image: {{ include "repositoryGenerator.image.readiness" . }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         - name: subsitute-envs
-          image: "{{ .Values.global.envsubstImage }}"
+          image: {{ include "repositoryGenerator.image.envsubst" . }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command: ['sh', '-c', "cd /config-input &&  envsubst < cmpServers.json > {{ .Values.cmpServers.volume.mountPath }}/cmpServers.json"]
           volumeMounts:
@@ -78,7 +78,7 @@
 {{- end }}
       containers:
         - name: {{ include "common.name" . }}
-          image: {{ include "common.repository" . }}/{{ .Values.image }}
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports: {{ include "common.containerPorts" . | nindent 10 }}
           env:
diff --git a/kubernetes/platform/components/oom-cert-service/templates/fake_deployment.yaml b/kubernetes/platform/components/oom-cert-service/templates/fake_deployment.yaml
new file mode 100644
index 0000000..1d1224a
--- /dev/null
+++ b/kubernetes/platform/components/oom-cert-service/templates/fake_deployment.yaml
@@ -0,0 +1,31 @@
+{{/*
+  # Copyright © 2020, Nokia
+  #
+  # Licensed under the Apache License, Version 2.0 (the "License");
+  # you may not use this file except in compliance with the License.
+  # You may obtain a copy of the License at
+  #
+  #       http://www.apache.org/licenses/LICENSE-2.0
+  #
+  # Unless required by applicable law or agreed to in writing, software
+  # distributed under the License is distributed on an "AS IS" BASIS,
+  # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+  # See the License for the specific language governing permissions and
+  # limitations under the License.
+*/}}
+
+{{- if .Values.global.offlineDeploymentBuild }}
+apiVersion: apps/v1
+kind: Deployment
+metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
+spec:
+  replicas: {{ .Values.replicaCount }}
+  selector: {{- include "common.selectors" . | nindent 4 }}
+  template:
+    metadata: {{- include "common.templateMetadata" . | nindent 6 }}
+    spec:
+      containers:
+        - name: {{ include "common.name" . }}
+          image: {{ include "common.repository" . }}/{{ .Values.certifcateGenerationImage }}
+          imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+{{ end -}}
diff --git a/kubernetes/platform/components/oom-cert-service/values.yaml b/kubernetes/platform/components/oom-cert-service/values.yaml
index 7d8041b..ee51ec7 100644
--- a/kubernetes/platform/components/oom-cert-service/values.yaml
+++ b/kubernetes/platform/components/oom-cert-service/values.yaml
@@ -16,24 +16,13 @@
 
 # Global
 global:
-  envsubstImage: dibi/envsubst
   nodePortPrefix: 302
-  # Readiness image
-  readinessImage: onap/oom/readiness:3.0.1
-  # Ubuntu Init image
-  ubuntuInitRepository: docker.io
-  ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
-  # Logging image
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  # BusyBox image
-  busyboxRepository: docker.io
-  busyboxImage: library/busybox:1.31
   persistence:
     enabled: true
   # Standard OOM
   pullPolicy: "Always"
   repository: "nexus3.onap.org:10001"
+  offlineDeploymentBuild: false
 
 
 # Service configuration
@@ -44,9 +33,11 @@
       port: 8443
       port_protocol: http
 
+# Certificates generation configuration
+certificateGenerationImage: onap/integration-java11:7.1.0
 
 # Deployment configuration
-repository: nexus3.onap.org:10001
+repository: "nexus3.onap.org:10001"
 image: onap/org.onap.oom.platform.cert-service.oom-certservice-api:2.1.0
 pullPolicy: Always
 replicaCount: 1
diff --git a/kubernetes/platform/values.yaml b/kubernetes/platform/values.yaml
index a6f4bc8..d21fb79 100644
--- a/kubernetes/platform/values.yaml
+++ b/kubernetes/platform/values.yaml
@@ -20,27 +20,10 @@
 
 global:
   nodePortPrefix: 302
-  # Readiness image
-  readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.2
-  # Ubuntu Init image
-  ubuntuInitRepository: docker.io
-  ubuntuInitImage: oomk8s/ubuntu-init:2.0.0
-  # Logging image
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  # BusyBox image
-  busyboxRepository: docker.io
-  busyboxImage: library/busybox:1.31
   persistence:
     enabled: true
   # Standard OOM
   pullPolicy: "Always"
-  repository: "nexus3.onap.org:10001"
-
-  # Use Local
-  #pullPolicy: IfNotPresent
-  #repository: "nexus3.onap.org:10003"
 
   cmpv2Enabled: true
   addTestingComponents: false
diff --git a/kubernetes/portal/components/portal-app/requirements.yaml b/kubernetes/portal/components/portal-app/requirements.yaml
index 00b9223..bfcaecb 100644
--- a/kubernetes/portal/components/portal-app/requirements.yaml
+++ b/kubernetes/portal/components/portal-app/requirements.yaml
@@ -19,3 +19,6 @@
   - name: certInitializer
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/portal/components/portal-app/templates/deployment.yaml b/kubernetes/portal/components/portal-app/templates/deployment.yaml
index 068a0af..71b2aa3 100644
--- a/kubernetes/portal/components/portal-app/templates/deployment.yaml
+++ b/kubernetes/portal/components/portal-app/templates/deployment.yaml
@@ -38,7 +38,7 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-job-completion
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: "{{ .Values.global.pullPolicy | default .Values.pullPolicy }}"
         command:
         - /app/ready.py
@@ -52,7 +52,7 @@
               apiVersion: v1
               fieldPath: metadata.namespace
       - name: {{ include "common.name" . }}-portal-config
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - sh
@@ -90,7 +90,7 @@
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command: ["bash","-c"]
         {{- if .Values.global.aafEnabled }}
@@ -170,7 +170,7 @@
 {{ toYaml .Values.affinity | indent 10 }}
       {{- end }}
       - name: filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: /usr/share/filebeat/filebeat.yml
diff --git a/kubernetes/portal/components/portal-app/values.yaml b/kubernetes/portal/components/portal-app/values.yaml
index 01d4261..0a81810 100644
--- a/kubernetes/portal/components/portal-app/values.yaml
+++ b/kubernetes/portal/components/portal-app/values.yaml
@@ -20,10 +20,6 @@
   env:
     tomcatDir: "/usr/local/tomcat"
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  envsubstImage: dibi/envsubst
   #AAF service
   aafEnabled: true
 
@@ -55,7 +51,6 @@
 #################################################################
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/portal-app:3.4.2
 pullPolicy: Always
 
diff --git a/kubernetes/portal/components/portal-cassandra/requirements.yaml b/kubernetes/portal/components/portal-cassandra/requirements.yaml
index c5d7864..7c92350 100644
--- a/kubernetes/portal/components/portal-cassandra/requirements.yaml
+++ b/kubernetes/portal/components/portal-cassandra/requirements.yaml
@@ -16,3 +16,6 @@
   - name: common
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml b/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml
index c1b49da..80197a6 100644
--- a/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml
+++ b/kubernetes/portal/components/portal-cassandra/templates/deployment.yaml
@@ -38,7 +38,7 @@
     spec:
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         ports:
         - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/portal/components/portal-cassandra/values.yaml b/kubernetes/portal/components/portal-cassandra/values.yaml
index eb6fc12..a0488e5 100644
--- a/kubernetes/portal/components/portal-cassandra/values.yaml
+++ b/kubernetes/portal/components/portal-cassandra/values.yaml
@@ -22,7 +22,6 @@
 
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/music/cassandra_music:3.0.0
 pullPolicy: Always
 
diff --git a/kubernetes/portal/components/portal-mariadb/requirements.yaml b/kubernetes/portal/components/portal-mariadb/requirements.yaml
index c5d7864..7c92350 100644
--- a/kubernetes/portal/components/portal-mariadb/requirements.yaml
+++ b/kubernetes/portal/components/portal-mariadb/requirements.yaml
@@ -16,3 +16,6 @@
   - name: common
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/portal/components/portal-mariadb/templates/deployment.yaml b/kubernetes/portal/components/portal-mariadb/templates/deployment.yaml
index 250335f..7e94c76 100644
--- a/kubernetes/portal/components/portal-mariadb/templates/deployment.yaml
+++ b/kubernetes/portal/components/portal-mariadb/templates/deployment.yaml
@@ -38,14 +38,14 @@
     spec:
       initContainers:
       - name: volume-permissions
-        image: "{{ .Values.global.busyboxRepository }}/{{ .Values.global.busyboxImage }}"
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         command: ['sh', '-c', 'chmod -R 777 /var/lib/mysql']
         volumeMounts:
         - mountPath: /var/lib/mysql
           name: mariadb-data
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/portal/components/portal-mariadb/templates/job.yaml b/kubernetes/portal/components/portal-mariadb/templates/job.yaml
index 920ee73..5a66bb9 100644
--- a/kubernetes/portal/components/portal-mariadb/templates/job.yaml
+++ b/kubernetes/portal/components/portal-mariadb/templates/job.yaml
@@ -35,7 +35,7 @@
       restartPolicy: Never
       initContainers:
       - name: {{ include "common.name" . }}-init-readiness
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -50,7 +50,7 @@
               fieldPath: metadata.namespace
       containers:
       - name: {{ include "common.name" . }}-job
-        image: "{{ include "common.repository" . }}/{{ .Values.mariadbInitImage }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.mariadbInitImage }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: DB_HOST
@@ -63,7 +63,7 @@
         - name: SQL_SRC_DIR
           value: {{ .Values.config.sqlSourceDirectory }}
       - name: {{ include "common.name" . }}-oom-update-job
-        image: "{{ include "common.repository" . }}/{{ .Values.mariadbInitImage }}"
+        image: {{ include "repositoryGenerator.dockerHubRepository" . }}/{{ .Values.mariadbInitImage }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: DB_HOST
diff --git a/kubernetes/portal/components/portal-mariadb/values.yaml b/kubernetes/portal/components/portal-mariadb/values.yaml
index 5061593..99dda39 100644
--- a/kubernetes/portal/components/portal-mariadb/values.yaml
+++ b/kubernetes/portal/components/portal-mariadb/values.yaml
@@ -19,17 +19,11 @@
 global: # global defaults
   nodePortPrefix: 302
   persistence: {}
-  readinessImage: onap/oom/readiness:3.0.1
-  busyBoxImage: busybox:1.30
-  busyBoxRepository: docker.io
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/portal-db:3.4.1
 pullPolicy: Always
-
-
-mariadbInitImage: "oomk8s/mariadb-client-init:3.0.0"
+mariadbInitImage: oomk8s/mariadb-client-init:3.0.0
 
 # application configuration
 config:
diff --git a/kubernetes/portal/components/portal-sdk/requirements.yaml b/kubernetes/portal/components/portal-sdk/requirements.yaml
index 00b9223..bfcaecb 100644
--- a/kubernetes/portal/components/portal-sdk/requirements.yaml
+++ b/kubernetes/portal/components/portal-sdk/requirements.yaml
@@ -19,3 +19,6 @@
   - name: certInitializer
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/portal/components/portal-sdk/templates/deployment.yaml b/kubernetes/portal/components/portal-sdk/templates/deployment.yaml
index 75427d1..95247b3 100644
--- a/kubernetes/portal/components/portal-sdk/templates/deployment.yaml
+++ b/kubernetes/portal/components/portal-sdk/templates/deployment.yaml
@@ -38,7 +38,7 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-readiness
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -52,7 +52,7 @@
               apiVersion: v1
               fieldPath: metadata.namespace
       - name: {{ include "common.name" . }}-portalsdk-config
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - sh
@@ -90,7 +90,7 @@
 {{ include "common.certInitializer.initContainer" . | indent 6 }}
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command: ["bash","-c"]
         {{- if .Values.global.aafEnabled }}
@@ -161,7 +161,7 @@
 {{ toYaml .Values.affinity | indent 10 }}
       {{- end }}
       - name: filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - mountPath: /usr/share/filebeat/filebeat.yml
diff --git a/kubernetes/portal/components/portal-sdk/values.yaml b/kubernetes/portal/components/portal-sdk/values.yaml
index dc27aae..11ce5a6 100644
--- a/kubernetes/portal/components/portal-sdk/values.yaml
+++ b/kubernetes/portal/components/portal-sdk/values.yaml
@@ -20,11 +20,7 @@
   env:
     tomcatDir: "/usr/local/tomcat"
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
   persistence: {}
-  envsubstImage: dibi/envsubst
   #AAF service
   aafEnabled: true
 
@@ -56,7 +52,6 @@
 #################################################################
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/portal-sdk:3.4.2
 pullPolicy: Always
 
diff --git a/kubernetes/portal/components/portal-widget/requirements.yaml b/kubernetes/portal/components/portal-widget/requirements.yaml
index c5d7864..7c92350 100644
--- a/kubernetes/portal/components/portal-widget/requirements.yaml
+++ b/kubernetes/portal/components/portal-widget/requirements.yaml
@@ -16,3 +16,6 @@
   - name: common
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/portal/components/portal-widget/templates/deployment.yaml b/kubernetes/portal/components/portal-widget/templates/deployment.yaml
index eb6fc9e..2462576 100644
--- a/kubernetes/portal/components/portal-widget/templates/deployment.yaml
+++ b/kubernetes/portal/components/portal-widget/templates/deployment.yaml
@@ -38,7 +38,7 @@
     spec:
       initContainers:
       - name: {{ include "common.name" . }}-readiness
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /app/ready.py
@@ -52,7 +52,7 @@
               apiVersion: v1
               fieldPath: metadata.namespace
       - name: {{ include "common.name" . }}-portal-widget-config
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - sh
@@ -87,7 +87,7 @@
           name: properties-onapwidgetms
       containers:
       - name: {{ include "common.name" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
           - /start-wms.sh
diff --git a/kubernetes/portal/components/portal-widget/values.yaml b/kubernetes/portal/components/portal-widget/values.yaml
index f1fddde..f86ff85 100644
--- a/kubernetes/portal/components/portal-widget/values.yaml
+++ b/kubernetes/portal/components/portal-widget/values.yaml
@@ -18,11 +18,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  ubuntuInit: ubuntu-init:1.0.0
-  envsubstImage: dibi/envsubst
 
 ################################################################
 # Secrets metaconfig
@@ -67,7 +62,6 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: onap/portal-wms:3.4.2
 pullPolicy: Always
 
diff --git a/kubernetes/robot b/kubernetes/robot
index 4e61a1c..37ac984 160000
--- a/kubernetes/robot
+++ b/kubernetes/robot
@@ -1 +1 @@
-Subproject commit 4e61a1c981b7e00846c0ca2857cd32be027294e1
+Subproject commit 37ac984e35503182f7fc1b771cefa16bf0c84203
diff --git a/kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml b/kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml
index 74757c7..9d14dfe 100644
--- a/kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml
+++ b/kubernetes/sdc/components/sdc-onboarding-be/templates/deployment.yaml
@@ -92,6 +92,27 @@
             cpu: 3m
             memory: 20Mi
       {{- end }}
+      - name: volume-permissions
+        image: {{ .Values.global.busyboxRepository | default .Values.busyboxRepository }}/{{ .Values.global.busyboxImage | default .Values.busyboxImage }}
+        imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
+        command:
+          - sh
+        args:
+          - "-c"
+          - |
+            chown -R {{ .Values.securityContext.runAsUser }}:{{ .Values.securityContext.fsGroup }} //onboard/cert
+        securityContext:
+          runAsUser: 0
+        volumeMounts:
+          - name: {{ include "common.fullname" . }}-cert-storage
+            mountPath: "/onboard/cert"
+        resources:
+          limits:
+            cpu: 100m
+            memory: 100Mi
+          requests:
+            cpu: 3m
+            memory: 20Mi
       containers:
         - name: {{ include "common.name" . }}
           image: "{{ include "common.repository" . }}/{{ .Values.image }}"
diff --git a/kubernetes/sdnc/components/dmaap-listener/values.yaml b/kubernetes/sdnc/components/dmaap-listener/values.yaml
index dfc1c53..0f3f18b 100644
--- a/kubernetes/sdnc/components/dmaap-listener/values.yaml
+++ b/kubernetes/sdnc/components/dmaap-listener/values.yaml
@@ -55,7 +55,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-dmaap-listener-image:2.0.3
+image: onap/sdnc-dmaap-listener-image:2.0.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/components/sdnc-ansible-server/values.yaml b/kubernetes/sdnc/components/sdnc-ansible-server/values.yaml
index a674f78..080ae9c 100644
--- a/kubernetes/sdnc/components/sdnc-ansible-server/values.yaml
+++ b/kubernetes/sdnc/components/sdnc-ansible-server/values.yaml
@@ -55,7 +55,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ansible-server-image:2.0.3
+image: onap/sdnc-ansible-server-image:2.0.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/components/sdnc-web/values.yaml b/kubernetes/sdnc/components/sdnc-web/values.yaml
index 7319e22..136379a 100644
--- a/kubernetes/sdnc/components/sdnc-web/values.yaml
+++ b/kubernetes/sdnc/components/sdnc-web/values.yaml
@@ -27,7 +27,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: "onap/sdnc-web-image:2.0.3"
+image: "onap/sdnc-web-image:2.0.4"
 pullPolicy: Always
 
 config:
diff --git a/kubernetes/sdnc/components/ueb-listener/values.yaml b/kubernetes/sdnc/components/ueb-listener/values.yaml
index 33dbb79..2b0da14 100644
--- a/kubernetes/sdnc/components/ueb-listener/values.yaml
+++ b/kubernetes/sdnc/components/ueb-listener/values.yaml
@@ -61,7 +61,7 @@
 #################################################################
 # application image
 repository: nexus3.onap.org:10001
-image: onap/sdnc-ueb-listener-image:2.0.3
+image: onap/sdnc-ueb-listener-image:2.0.4
 pullPolicy: Always
 
 # flag to enable debugging - application support required
diff --git a/kubernetes/sdnc/values.yaml b/kubernetes/sdnc/values.yaml
index 77b4a0e..7f6312f 100644
--- a/kubernetes/sdnc/values.yaml
+++ b/kubernetes/sdnc/values.yaml
@@ -136,7 +136,7 @@
 
 repository: nexus3.onap.org:10001
 pullPolicy: Always
-image: onap/sdnc-image:2.0.3
+image: onap/sdnc-image:2.0.4
 busyboxRepository: docker.io
 busyboxImage: busybox:1.30
 
diff --git a/kubernetes/so/components/so-appc-orchestrator/requirements.yaml b/kubernetes/so/components/so-appc-orchestrator/requirements.yaml
index 1feea23..d25c12c 100755
--- a/kubernetes/so/components/so-appc-orchestrator/requirements.yaml
+++ b/kubernetes/so/components/so-appc-orchestrator/requirements.yaml
@@ -18,6 +18,9 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-appc-orchestrator/templates/deployment.yaml b/kubernetes/so/components/so-appc-orchestrator/templates/deployment.yaml
index 24592ba..917c067 100644
--- a/kubernetes/so/components/so-appc-orchestrator/templates/deployment.yaml
+++ b/kubernetes/so/components/so-appc-orchestrator/templates/deployment.yaml
@@ -41,7 +41,7 @@
         env:
         - name: ACTUATOR_PASSWORD
           {{- include "common.secret.envFromSecretFast" (dict "global" . "uid" "server-actuator-creds" "key" "password") | indent 10 }}
-        image: {{ .Values.global.dockerHubRepository }}/{{ .Values.global.htpasswdImage }}
+        image: {{ include "repositoryGenerator.image.htpasswd" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: encoder
@@ -62,7 +62,7 @@
             {{- end }}
             {{- end }}
             /app/start-app.sh
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         env:
         - name: ACTUATOR_USERNAME
diff --git a/kubernetes/so/components/so-appc-orchestrator/values.yaml b/kubernetes/so/components/so-appc-orchestrator/values.yaml
index 7570116..310cb9f 100644
--- a/kubernetes/so/components/so-appc-orchestrator/values.yaml
+++ b/kubernetes/so/components/so-appc-orchestrator/values.yaml
@@ -19,14 +19,8 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  envsubstImage: dibi/envsubst
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
   persistence:
     mountPath: /dockerdata-nfs
-  htpasswdImage: xmartlabs/htpasswd
-  dockerHubRepository: docker.io
   security:
     aaf:
       enabled: false
@@ -63,7 +57,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/so-appc-orchestrator:1.6.4
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-bpmn-infra/requirements.yaml b/kubernetes/so/components/so-bpmn-infra/requirements.yaml
index b0bda36..82296be 100755
--- a/kubernetes/so/components/so-bpmn-infra/requirements.yaml
+++ b/kubernetes/so/components/so-bpmn-infra/requirements.yaml
@@ -21,6 +21,9 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml b/kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml
index ac335c8..3fee225 100755
--- a/kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml
+++ b/kubernetes/so/components/so-bpmn-infra/templates/deployment.yaml
@@ -44,7 +44,7 @@
       {{ include "common.readinessCheck.waitFor" . | indent 6 | trim }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
@@ -92,7 +92,7 @@
           protocol: TCP
       # Filebeat sidecar container
       - name: {{ include "common.name" . }}-filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-filebeat-conf
diff --git a/kubernetes/so/components/so-bpmn-infra/values.yaml b/kubernetes/so/components/so-bpmn-infra/values.yaml
index 2bb7d7b..6301147 100755
--- a/kubernetes/so/components/so-bpmn-infra/values.yaml
+++ b/kubernetes/so/components/so-bpmn-infra/values.yaml
@@ -17,10 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   #This configuration specifies Service and port for SDNC OAM interface
@@ -66,7 +62,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/bpmn-infra:1.7.10
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-catalog-db-adapter/requirements.yaml b/kubernetes/so/components/so-catalog-db-adapter/requirements.yaml
index b0bda36..82296be 100755
--- a/kubernetes/so/components/so-catalog-db-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-catalog-db-adapter/requirements.yaml
@@ -21,6 +21,9 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml b/kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml
index 0aac5f4..75e6b1e 100755
--- a/kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-catalog-db-adapter/templates/deployment.yaml
@@ -44,7 +44,7 @@
       {{ include "common.readinessCheck.waitFor" . | indent 6 | trim }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
diff --git a/kubernetes/so/components/so-catalog-db-adapter/values.yaml b/kubernetes/so/components/so-catalog-db-adapter/values.yaml
index b27566d..81a7c3f 100755
--- a/kubernetes/so/components/so-catalog-db-adapter/values.yaml
+++ b/kubernetes/so/components/so-catalog-db-adapter/values.yaml
@@ -17,10 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -65,7 +61,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/catalog-db-adapter:1.7.10
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-etsi-nfvo-ns-lcm/requirements.yaml b/kubernetes/so/components/so-etsi-nfvo-ns-lcm/requirements.yaml
index 1feea23..d25c12c 100755
--- a/kubernetes/so/components/so-etsi-nfvo-ns-lcm/requirements.yaml
+++ b/kubernetes/so/components/so-etsi-nfvo-ns-lcm/requirements.yaml
@@ -18,6 +18,9 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-etsi-nfvo-ns-lcm/templates/deployment.yaml b/kubernetes/so/components/so-etsi-nfvo-ns-lcm/templates/deployment.yaml
index fa5f42d..2cf23e2 100644
--- a/kubernetes/so/components/so-etsi-nfvo-ns-lcm/templates/deployment.yaml
+++ b/kubernetes/so/components/so-etsi-nfvo-ns-lcm/templates/deployment.yaml
@@ -46,7 +46,7 @@
               {{- end }}
               {{- end }}
               ./start-app.sh
-          image: {{ include "common.repository" . }}/{{ .Values.image }}
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           resources: {{ include "common.resources" . | nindent 12 }}
           env:
             - name: ETSI_NFVO_USERNAME
diff --git a/kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml b/kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml
index 0612f50..f5ad18f 100644
--- a/kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml
+++ b/kubernetes/so/components/so-etsi-nfvo-ns-lcm/values.yaml
@@ -17,10 +17,6 @@
 #################################################################
 global:
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -59,7 +55,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/so-etsi-nfvo-ns-lcm:1.7.7
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-mariadb/requirements.yaml b/kubernetes/so/components/so-mariadb/requirements.yaml
index 22d6333..0dfef90 100755
--- a/kubernetes/so/components/so-mariadb/requirements.yaml
+++ b/kubernetes/so/components/so-mariadb/requirements.yaml
@@ -18,6 +18,9 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
diff --git a/kubernetes/so/components/so-mariadb/templates/job.yaml b/kubernetes/so/components/so-mariadb/templates/job.yaml
index b3bacc1..0eeba7b 100644
--- a/kubernetes/so/components/so-mariadb/templates/job.yaml
+++ b/kubernetes/so/components/so-mariadb/templates/job.yaml
@@ -39,7 +39,7 @@
     spec:
       containers:
       - name: {{ include "common.fullname" . }}
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: DB_HOST
@@ -98,7 +98,7 @@
       initContainers: {{ include "common.readinessCheck.waitFor" . | nindent 6 }}
       containers:
       - name: {{ include "common.name" . }}-config
-        image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         command:
         - /bin/bash
diff --git a/kubernetes/so/components/so-monitoring/requirements.yaml b/kubernetes/so/components/so-monitoring/requirements.yaml
index 29f9a9f..b9be601 100755
--- a/kubernetes/so/components/so-monitoring/requirements.yaml
+++ b/kubernetes/so/components/so-monitoring/requirements.yaml
@@ -19,6 +19,9 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-monitoring/templates/deployment.yaml b/kubernetes/so/components/so-monitoring/templates/deployment.yaml
index 03eccc2..dc80d42 100644
--- a/kubernetes/so/components/so-monitoring/templates/deployment.yaml
+++ b/kubernetes/so/components/so-monitoring/templates/deployment.yaml
@@ -47,7 +47,7 @@
     spec:
       initContainers: {{ include "so.certificate.container_importer" . | nindent 6 }}
       - name: so-chown
-        image: alpine:3.6
+        image: {{ include "repositoryGenerator.image.busybox" . }}
         volumeMounts:
         - name: logs
           mountPath: /app/logs
@@ -56,7 +56,7 @@
       restartPolicy: Always
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         command:
         - /bin/sh
diff --git a/kubernetes/so/components/so-nssmf-adapter/requirements.yaml b/kubernetes/so/components/so-nssmf-adapter/requirements.yaml
index b0bda36..82296be 100755
--- a/kubernetes/so/components/so-nssmf-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-nssmf-adapter/requirements.yaml
@@ -21,6 +21,9 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-nssmf-adapter/templates/deployment.yaml b/kubernetes/so/components/so-nssmf-adapter/templates/deployment.yaml
index 3b28c5b..75d831e 100755
--- a/kubernetes/so/components/so-nssmf-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-nssmf-adapter/templates/deployment.yaml
@@ -49,7 +49,7 @@
               {{- end }}
               {{- end }}
               ./start-app.sh
-          image: {{ include "common.repository" . }}/{{ .Values.image }}
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           resources: {{ include "common.resources" . | nindent 12 }}
           ports: {{- include "common.containerPorts" . | nindent 12  }}
           env:
diff --git a/kubernetes/so/components/so-nssmf-adapter/values.yaml b/kubernetes/so/components/so-nssmf-adapter/values.yaml
index 40a55c6..b5cfe4e 100755
--- a/kubernetes/so/components/so-nssmf-adapter/values.yaml
+++ b/kubernetes/so/components/so-nssmf-adapter/values.yaml
@@ -17,10 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -78,7 +74,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/nssmf-adapter:1.7.10
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-oof-adapter/requirements.yaml b/kubernetes/so/components/so-oof-adapter/requirements.yaml
index 036860d..3398a2d 100644
--- a/kubernetes/so/components/so-oof-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-oof-adapter/requirements.yaml
@@ -19,6 +19,9 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-oof-adapter/templates/deployment.yaml b/kubernetes/so/components/so-oof-adapter/templates/deployment.yaml
index 72799d1..62ebfff 100755
--- a/kubernetes/so/components/so-oof-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-oof-adapter/templates/deployment.yaml
@@ -32,7 +32,7 @@
       initContainers: {{ include "so.certificate.container_importer" . | nindent 6 }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources:
 {{ include "common.resources" . | indent 10 }}
         env:
@@ -71,7 +71,7 @@
         ports: {{- include "common.containerPorts" . | nindent 12  }}
       # Filebeat sidecar container
       - name: {{ include "common.name" . }}-filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-filebeat-conf
diff --git a/kubernetes/so/components/so-oof-adapter/values.yaml b/kubernetes/so/components/so-oof-adapter/values.yaml
index 6bddf29..13a0f0f 100755
--- a/kubernetes/so/components/so-oof-adapter/values.yaml
+++ b/kubernetes/so/components/so-oof-adapter/values.yaml
@@ -18,11 +18,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessRepository: oomk8s
-  readinessImage: readiness-check:2.0.2
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -76,7 +71,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/so-oof-adapter:1.7.4
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-openstack-adapter/requirements.yaml b/kubernetes/so/components/so-openstack-adapter/requirements.yaml
index b0bda36..82296be 100755
--- a/kubernetes/so/components/so-openstack-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-openstack-adapter/requirements.yaml
@@ -21,6 +21,9 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-openstack-adapter/templates/deployment.yaml b/kubernetes/so/components/so-openstack-adapter/templates/deployment.yaml
index ac335c8..3fee225 100755
--- a/kubernetes/so/components/so-openstack-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-openstack-adapter/templates/deployment.yaml
@@ -44,7 +44,7 @@
       {{ include "common.readinessCheck.waitFor" . | indent 6 | trim }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
@@ -92,7 +92,7 @@
           protocol: TCP
       # Filebeat sidecar container
       - name: {{ include "common.name" . }}-filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-filebeat-conf
diff --git a/kubernetes/so/components/so-openstack-adapter/values.yaml b/kubernetes/so/components/so-openstack-adapter/values.yaml
index 129ad59..392f847 100755
--- a/kubernetes/so/components/so-openstack-adapter/values.yaml
+++ b/kubernetes/so/components/so-openstack-adapter/values.yaml
@@ -17,10 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -63,7 +59,6 @@
 #################################################################
 image: onap/so/openstack-adapter:1.7.10
 pullPolicy: Always
-repository: nexus3.onap.org:10001
 
 db:
   userName: so_user
diff --git a/kubernetes/so/components/so-request-db-adapter/requirements.yaml b/kubernetes/so/components/so-request-db-adapter/requirements.yaml
index b0bda36..82296be 100755
--- a/kubernetes/so/components/so-request-db-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-request-db-adapter/requirements.yaml
@@ -21,6 +21,9 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml b/kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml
index 0aac5f4..75e6b1e 100755
--- a/kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-request-db-adapter/templates/deployment.yaml
@@ -44,7 +44,7 @@
       {{ include "common.readinessCheck.waitFor" . | indent 6 | trim }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
diff --git a/kubernetes/so/components/so-request-db-adapter/values.yaml b/kubernetes/so/components/so-request-db-adapter/values.yaml
index e221870..208cf64 100755
--- a/kubernetes/so/components/so-request-db-adapter/values.yaml
+++ b/kubernetes/so/components/so-request-db-adapter/values.yaml
@@ -17,10 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -61,7 +57,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/request-db-adapter:1.7.10
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-sdc-controller/requirements.yaml b/kubernetes/so/components/so-sdc-controller/requirements.yaml
index b0bda36..82296be 100755
--- a/kubernetes/so/components/so-sdc-controller/requirements.yaml
+++ b/kubernetes/so/components/so-sdc-controller/requirements.yaml
@@ -21,6 +21,9 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-sdc-controller/templates/deployment.yaml b/kubernetes/so/components/so-sdc-controller/templates/deployment.yaml
index ac335c8..3fee225 100755
--- a/kubernetes/so/components/so-sdc-controller/templates/deployment.yaml
+++ b/kubernetes/so/components/so-sdc-controller/templates/deployment.yaml
@@ -44,7 +44,7 @@
       {{ include "common.readinessCheck.waitFor" . | indent 6 | trim }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
@@ -92,7 +92,7 @@
           protocol: TCP
       # Filebeat sidecar container
       - name: {{ include "common.name" . }}-filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-filebeat-conf
diff --git a/kubernetes/so/components/so-sdc-controller/values.yaml b/kubernetes/so/components/so-sdc-controller/values.yaml
index be3be26..6dd662e 100755
--- a/kubernetes/so/components/so-sdc-controller/values.yaml
+++ b/kubernetes/so/components/so-sdc-controller/values.yaml
@@ -17,10 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -61,7 +57,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/sdc-controller:1.7.10
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-sdnc-adapter/requirements.yaml b/kubernetes/so/components/so-sdnc-adapter/requirements.yaml
index 1feea23..d25c12c 100755
--- a/kubernetes/so/components/so-sdnc-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-sdnc-adapter/requirements.yaml
@@ -18,6 +18,9 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-sdnc-adapter/templates/deployment.yaml b/kubernetes/so/components/so-sdnc-adapter/templates/deployment.yaml
index 5186523..6f9d7f7 100755
--- a/kubernetes/so/components/so-sdnc-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-sdnc-adapter/templates/deployment.yaml
@@ -42,7 +42,7 @@
       initContainers: {{ include "so.certificate.container_importer" . | nindent 6 }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
@@ -90,7 +90,7 @@
           protocol: TCP
       # Filebeat sidecar container
       - name: {{ include "common.name" . }}-filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-filebeat-conf
diff --git a/kubernetes/so/components/so-sdnc-adapter/values.yaml b/kubernetes/so/components/so-sdnc-adapter/values.yaml
index cabd60e..be58ae6 100755
--- a/kubernetes/so/components/so-sdnc-adapter/values.yaml
+++ b/kubernetes/so/components/so-sdnc-adapter/values.yaml
@@ -17,10 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   #This configuration specifies Service and port for SDNC OAM interface
@@ -60,7 +56,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/sdnc-adapter:1.7.10
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-ve-vnfm-adapter/requirements.yaml b/kubernetes/so/components/so-ve-vnfm-adapter/requirements.yaml
index b0bda36..82296be 100755
--- a/kubernetes/so/components/so-ve-vnfm-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-ve-vnfm-adapter/requirements.yaml
@@ -21,6 +21,9 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-ve-vnfm-adapter/templates/deployment.yaml b/kubernetes/so/components/so-ve-vnfm-adapter/templates/deployment.yaml
index 7c528b0..ac4f574 100755
--- a/kubernetes/so/components/so-ve-vnfm-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-ve-vnfm-adapter/templates/deployment.yaml
@@ -19,7 +19,7 @@
 metadata: {{- include "common.resourceMetadata" . | nindent 2 }}
 spec:
   selector: {{- include "common.selectors" . | nindent 4 }}
-  replicas: {{ index .Values.replicaCount }}
+  replicas: {{ .Values.replicaCount }}
   template:
     metadata:
       labels: {{- include "common.labels" . | nindent 8 }}
@@ -31,7 +31,7 @@
           envFrom:
             - configMapRef:
                 name: {{ include "common.fullname" . }}-configmap
-          image: {{ include "common.repository" . }}/{{ .Values.image }}
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           resources: {{ include "common.resources" . | nindent 12 }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           volumeMounts: {{ include "so.certificate.volumeMount" . | nindent 12 }}
@@ -42,11 +42,11 @@
               readOnly: true
           livenessProbe:
             tcpSocket:
-              port: {{ index .Values.livenessProbe.port }}
-            initialDelaySeconds: {{ index .Values.livenessProbe.initialDelaySeconds}}
-            periodSeconds: {{ index .Values.livenessProbe.periodSeconds}}
-            successThreshold: {{ index .Values.livenessProbe.successThreshold}}
-            failureThreshold: {{ index .Values.livenessProbe.failureThreshold}}
+              port: {{ .Values.livenessProbe.port }}
+            initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds}}
+            periodSeconds: {{ .Values.livenessProbe.periodSeconds}}
+            successThreshold: {{ .Values.livenessProbe.successThreshold}}
+            failureThreshold: {{ .Values.livenessProbe.failureThreshold}}
           ports: {{- include "common.containerPorts" . | nindent 10 }}
       volumes: {{ include "so.certificate.volumes" . | nindent 8 }}
         - name: logs
diff --git a/kubernetes/so/components/so-ve-vnfm-adapter/values.yaml b/kubernetes/so/components/so-ve-vnfm-adapter/values.yaml
index 9237b99..83ec78d 100755
--- a/kubernetes/so/components/so-ve-vnfm-adapter/values.yaml
+++ b/kubernetes/so/components/so-ve-vnfm-adapter/values.yaml
@@ -15,10 +15,6 @@
 # Global configuration defaults.
 #################################################################
 global:
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
 
diff --git a/kubernetes/so/components/so-vfc-adapter/requirements.yaml b/kubernetes/so/components/so-vfc-adapter/requirements.yaml
index b0bda36..82296be 100755
--- a/kubernetes/so/components/so-vfc-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-vfc-adapter/requirements.yaml
@@ -21,6 +21,9 @@
   - name: readinessCheck
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-vfc-adapter/templates/deployment.yaml b/kubernetes/so/components/so-vfc-adapter/templates/deployment.yaml
index 94759ce..7c10e7f 100755
--- a/kubernetes/so/components/so-vfc-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-vfc-adapter/templates/deployment.yaml
@@ -26,13 +26,13 @@
   selector:
     matchLabels:
       app: {{ include "common.name" . }}
-  replicas: {{ index .Values.replicaCount }}
-  minReadySeconds: {{ index .Values.minReadySeconds }}
+  replicas: {{ .Values.replicaCount }}
+  minReadySeconds: {{ .Values.minReadySeconds }}
   strategy:
-    type: {{ index .Values.updateStrategy.type }}
+    type: {{ .Values.updateStrategy.type }}
     rollingUpdate:
-      maxUnavailable: {{ index .Values.updateStrategy.maxUnavailable }}
-      maxSurge: {{ index .Values.updateStrategy.maxSurge }}
+      maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
+      maxSurge: {{ .Values.updateStrategy.maxSurge }}
   template:
     metadata:
       labels:
@@ -44,7 +44,7 @@
       {{ include "common.readinessCheck.waitFor" . | indent 6 | trim }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
@@ -85,16 +85,16 @@
           readOnly: true
         livenessProbe:
           httpGet:
-            path: {{- index .Values.livenessProbe.path|indent 2}}
-            port: {{ index .Values.containerPort }}
-            scheme: {{- index .Values.livenessProbe.scheme| indent 2}}
-          initialDelaySeconds: {{ index .Values.livenessProbe.initialDelaySeconds}}
-          periodSeconds: {{ index .Values.livenessProbe.periodSeconds}}
-          timeoutSeconds: {{ index .Values.livenessProbe.timeoutSeconds}}
-          successThreshold: {{ index .Values.livenessProbe.successThreshold}}
-          failureThreshold: {{ index .Values.livenessProbe.failureThreshold}}
+            path: {{- .Values.livenessProbe.path|indent 2}}
+            port: {{ .Values.containerPort }}
+            scheme: {{- .Values.livenessProbe.scheme| indent 2}}
+          initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds}}
+          periodSeconds: {{ .Values.livenessProbe.periodSeconds}}
+          timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds}}
+          successThreshold: {{ .Values.livenessProbe.successThreshold}}
+          failureThreshold: {{ .Values.livenessProbe.failureThreshold}}
         ports:
-        - containerPort: {{ index .Values.containerPort }}
+        - containerPort: {{ .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
diff --git a/kubernetes/so/components/so-vfc-adapter/values.yaml b/kubernetes/so/components/so-vfc-adapter/values.yaml
index f88e117..698cbf4 100755
--- a/kubernetes/so/components/so-vfc-adapter/values.yaml
+++ b/kubernetes/so/components/so-vfc-adapter/values.yaml
@@ -17,9 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -60,7 +57,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/vfc-adapter:1.7.10
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/so-vnfm-adapter/requirements.yaml b/kubernetes/so/components/so-vnfm-adapter/requirements.yaml
index 1feea23..d25c12c 100755
--- a/kubernetes/so/components/so-vnfm-adapter/requirements.yaml
+++ b/kubernetes/so/components/so-vnfm-adapter/requirements.yaml
@@ -18,6 +18,9 @@
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://../soHelpers'
diff --git a/kubernetes/so/components/so-vnfm-adapter/templates/deployment.yaml b/kubernetes/so/components/so-vnfm-adapter/templates/deployment.yaml
index 24dd3d6..8abd9a9 100755
--- a/kubernetes/so/components/so-vnfm-adapter/templates/deployment.yaml
+++ b/kubernetes/so/components/so-vnfm-adapter/templates/deployment.yaml
@@ -26,13 +26,13 @@
   selector:
     matchLabels:
       app: {{ include "common.name" . }}
-  replicas: {{ index .Values.replicaCount }}
-  minReadySeconds: {{ index .Values.minReadySeconds }}
+  replicas: {{ .Values.replicaCount }}
+  minReadySeconds: {{ .Values.minReadySeconds }}
   strategy:
-    type: {{ index .Values.updateStrategy.type }}
+    type: {{ .Values.updateStrategy.type }}
     rollingUpdate:
-      maxUnavailable: {{ index .Values.updateStrategy.maxUnavailable }}
-      maxSurge: {{ index .Values.updateStrategy.maxSurge }}
+      maxUnavailable: {{ .Values.updateStrategy.maxUnavailable }}
+      maxSurge: {{ .Values.updateStrategy.maxSurge }}
   template:
     metadata:
       labels:
@@ -42,7 +42,7 @@
       initContainers: {{ include "so.certificate.container_importer" . | nindent 6 }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
@@ -70,13 +70,13 @@
           readOnly: true
         livenessProbe:
           tcpSocket:
-            port: {{ index .Values.livenessProbe.port }}
-          initialDelaySeconds: {{ index .Values.livenessProbe.initialDelaySeconds}}
-          periodSeconds: {{ index .Values.livenessProbe.periodSeconds}}
-          successThreshold: {{ index .Values.livenessProbe.successThreshold}}
-          failureThreshold: {{ index .Values.livenessProbe.failureThreshold}}
+            port: {{ .Values.livenessProbe.port }}
+          initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds}}
+          periodSeconds: {{ .Values.livenessProbe.periodSeconds}}
+          successThreshold: {{ .Values.livenessProbe.successThreshold}}
+          failureThreshold: {{ .Values.livenessProbe.failureThreshold}}
         ports:
-        - containerPort: {{ index .Values.containerPort }}
+        - containerPort: {{ .Values.containerPort }}
           name: {{ .Values.service.portName }}
           protocol: TCP
       volumes: {{ include "so.certificate.volumes" . | nindent 6 }}
diff --git a/kubernetes/so/components/so-vnfm-adapter/values.yaml b/kubernetes/so/components/so-vnfm-adapter/values.yaml
index f8fa7c9..6aebf31 100755
--- a/kubernetes/so/components/so-vnfm-adapter/values.yaml
+++ b/kubernetes/so/components/so-vnfm-adapter/values.yaml
@@ -16,10 +16,6 @@
 #################################################################
 global:
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  aafAgentImage: onap/aaf/aaf_agent:2.1.20
-  envsubstImage: dibi/envsubst
   persistence:
     mountPath: /dockerdata-nfs
   security:
@@ -32,7 +28,6 @@
 #################################################################
 # Application configuration defaults.
 #################################################################
-repository: nexus3.onap.org:10001
 image: onap/so/vnfm-adapter:1.7.10
 pullPolicy: Always
 
diff --git a/kubernetes/so/components/soHelpers/templates/_certificates.tpl b/kubernetes/so/components/soHelpers/templates/_certificates.tpl
index d148a1c..66497e1 100644
--- a/kubernetes/so/components/soHelpers/templates/_certificates.tpl
+++ b/kubernetes/so/components/soHelpers/templates/_certificates.tpl
@@ -5,7 +5,7 @@
 {{ include "common.certInitializer.initContainer" $subchartDot }}
 {{- if $dot.Values.global.aafEnabled }}
 - name: {{ include "common.name" $dot }}-msb-cert-importer
-  image: "{{ include "common.repository" $subchartDot }}/{{ $dot.Values.global.aafAgentImage }}"
+  image: {{ include "repositoryGenerator.repository" $subchartDot }}/{{ $dot.Values.global.aafAgentImage }}
   imagePullPolicy: {{ $dot.Values.global.pullPolicy | default $subchartDot.Values.pullPolicy }}
   command:
   - "/bin/sh"
diff --git a/kubernetes/so/components/soHelpers/values.yaml b/kubernetes/so/components/soHelpers/values.yaml
index 3919381..a367272 100755
--- a/kubernetes/so/components/soHelpers/values.yaml
+++ b/kubernetes/so/components/soHelpers/values.yaml
@@ -15,7 +15,6 @@
 # Global configuration defaults.
 #################################################################
 global:
-  soBaseImage: onap/so/base-image:1.0
   aafAgentImage: onap/aaf/aaf_agent:2.1.20
   msbEnabled: true
   security:
diff --git a/kubernetes/so/requirements.yaml b/kubernetes/so/requirements.yaml
index bbd84cf..2e0a406 100755
--- a/kubernetes/so/requirements.yaml
+++ b/kubernetes/so/requirements.yaml
@@ -25,6 +25,9 @@
     version: ~6.x-0
     repository: '@local'
     condition: global.mariadbGalera.localCluster
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
   - name: soHelpers
     version: ~6.x-0
     repository: 'file://components/soHelpers'
diff --git a/kubernetes/so/templates/deployment.yaml b/kubernetes/so/templates/deployment.yaml
index ac335c8..3fee225 100755
--- a/kubernetes/so/templates/deployment.yaml
+++ b/kubernetes/so/templates/deployment.yaml
@@ -44,7 +44,7 @@
       {{ include "common.readinessCheck.waitFor" . | indent 6 | trim }}
       containers:
       - name: {{ include "common.name" . }}
-        image: {{ include "common.repository" . }}/{{ .Values.image }}
+        image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         resources: {{ include "common.resources" . | nindent 12 }}
         {{- if .Values.global.aafEnabled }}
         command:
@@ -92,7 +92,7 @@
           protocol: TCP
       # Filebeat sidecar container
       - name: {{ include "common.name" . }}-filebeat-onap
-        image: "{{ .Values.global.loggingRepository }}/{{ .Values.global.loggingImage }}"
+        image: {{ include "repositoryGenerator.image.logging" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         volumeMounts:
         - name: {{ include "common.fullname" . }}-filebeat-conf
diff --git a/kubernetes/so/values.yaml b/kubernetes/so/values.yaml
index 05df60b..de1918b 100755
--- a/kubernetes/so/values.yaml
+++ b/kubernetes/so/values.yaml
@@ -17,11 +17,6 @@
 global:
   nodePortPrefix: 302
   nodePortPrefixExt: 304
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  soBaseImage: onap/so/base-image:1.0
   aafAgentImage: onap/aaf/aaf_agent:2.1.20
   mariadbGalera:
     nameOverride: mariadb-galera
@@ -146,7 +141,6 @@
   userName: so_user
   adminName: so_admin
 
-repository: nexus3.onap.org:10001
 image: onap/so/api-handler-infra:1.7.10
 pullPolicy: Always
 replicaCount: 1
diff --git a/kubernetes/uui/charts/uui-server/templates/deployment.yaml b/kubernetes/uui/charts/uui-server/templates/deployment.yaml
index 55b7b23..ea6f7b7 100644
--- a/kubernetes/uui/charts/uui-server/templates/deployment.yaml
+++ b/kubernetes/uui/charts/uui-server/templates/deployment.yaml
@@ -37,7 +37,7 @@
     spec:
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           ports:
           - containerPort: {{ .Values.service.internalPort }}
diff --git a/kubernetes/uui/requirements.yaml b/kubernetes/uui/requirements.yaml
index cf08520..8f74b74 100644
--- a/kubernetes/uui/requirements.yaml
+++ b/kubernetes/uui/requirements.yaml
@@ -18,4 +18,7 @@
     # local reference to common chart, as it is
     # a part of this chart's package and will not
     # be published independently to a repo (at this point)
+    repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
     repository: '@local'
\ No newline at end of file
diff --git a/kubernetes/uui/templates/deployment.yaml b/kubernetes/uui/templates/deployment.yaml
index ef73642..8c523b2 100644
--- a/kubernetes/uui/templates/deployment.yaml
+++ b/kubernetes/uui/templates/deployment.yaml
@@ -37,7 +37,7 @@
     spec:
       containers:
         - name: {{ include "common.name" . }}
-          image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+          image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
           imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
           command:
             - /bin/bash
diff --git a/kubernetes/uui/values.yaml b/kubernetes/uui/values.yaml
index 77351f9..1adb256 100644
--- a/kubernetes/uui/values.yaml
+++ b/kubernetes/uui/values.yaml
@@ -17,7 +17,6 @@
 # Declare variables to be passed into your templates.
 global:
   uuiPortPrefix: 303
-  readinessImage: onap/oom/readiness:3.0.1
 
 subChartsOnly:
   enabled: true
@@ -25,7 +24,6 @@
 flavor: small
 
 # application image
-repository: nexus3.onap.org:10001
 image: onap/usecase-ui:3.0.6
 pullPolicy: Always
 
diff --git a/kubernetes/vnfsdk/requirements.yaml b/kubernetes/vnfsdk/requirements.yaml
index a287d9c..1b01fdd 100644
--- a/kubernetes/vnfsdk/requirements.yaml
+++ b/kubernetes/vnfsdk/requirements.yaml
@@ -19,3 +19,6 @@
   - name: postgres
     version: ~6.x-0
     repository: '@local'
+  - name: repositoryGenerator
+    version: ~6.x-0
+    repository: '@local'
diff --git a/kubernetes/vnfsdk/templates/deployment.yaml b/kubernetes/vnfsdk/templates/deployment.yaml
index 9baec48..7e4ad5b 100644
--- a/kubernetes/vnfsdk/templates/deployment.yaml
+++ b/kubernetes/vnfsdk/templates/deployment.yaml
@@ -51,7 +51,7 @@
           name: init-data-input
         - mountPath: /config
           name: init-data
-        image: "{{ .Values.global.envsubstImage }}"
+        image: {{ include "repositoryGenerator.image.envsubst" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-update-config
 
@@ -66,11 +66,11 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}-readiness
       containers:
-      - image: "{{ include "common.repository" . }}/{{ .Values.image }}"
+      - image: {{ include "repositoryGenerator.repository" . }}/{{ .Values.image }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         name: {{ include "common.name" . }}
         resources:
diff --git a/kubernetes/vnfsdk/templates/job.yaml b/kubernetes/vnfsdk/templates/job.yaml
index ea7e22f..7c320fc 100644
--- a/kubernetes/vnfsdk/templates/job.yaml
+++ b/kubernetes/vnfsdk/templates/job.yaml
@@ -45,12 +45,12 @@
             fieldRef:
               apiVersion: v1
               fieldPath: metadata.namespace
-        image: "{{ include "common.repository" . }}/{{ .Values.global.readinessImage }}"
+        image: {{ include "repositoryGenerator.image.readiness" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy}}
         name: {{ include "common.name" . }}-readiness
       containers:
       - name: {{ include "common.name" . }}-job
-        image: "{{ .Values.postgresRepository }}/{{ .Values.postgresImage }}"
+        image: {{ include "repositoryGenerator.image.postgres" . }}
         imagePullPolicy: {{ .Values.global.pullPolicy | default .Values.pullPolicy }}
         env:
         - name: PGUSER
diff --git a/kubernetes/vnfsdk/values.yaml b/kubernetes/vnfsdk/values.yaml
index 2cdc1e9..55eea0f 100644
--- a/kubernetes/vnfsdk/values.yaml
+++ b/kubernetes/vnfsdk/values.yaml
@@ -17,11 +17,6 @@
 #################################################################
 global:
   nodePortPrefix: 302
-  repository: nexus3.onap.org:10001
-  readinessImage: onap/oom/readiness:3.0.1
-  loggingRepository: docker.elastic.co
-  loggingImage: beats/filebeat:5.5.0
-  envsubstImage: dibi/envsubst
 
 secrets:
   - uid: pg-root-pass
@@ -42,10 +37,7 @@
 # Application configuration defaults.
 #################################################################
 # application image
-repository: nexus3.onap.org:10001
 image: onap/vnfsdk/refrepo:1.6.2
-postgresRepository: crunchydata
-postgresImage: crunchy-postgres:centos7-10.3-1.8.2
 pullPolicy: Always
 
 # application configuration override for postgres