XOS/NEM charts, use a global registry var, split docker image name/tag/pullPolicy

Change-Id: I6dc4bd70fcaf230d019dda871c2d8c4cfb92c7e7
diff --git a/examples/image-tag-candidate.yaml b/examples/image-tag-candidate.yaml
index e1b9c27..6c023f0 100644
--- a/examples/image-tag-candidate.yaml
+++ b/examples/image-tag-candidate.yaml
@@ -14,74 +14,111 @@
 # limitations under the License.
 
 # Set all image tags to "candidate" to use locally built images
+image:
+  tag: 'candidate'
 
-# in xos-core chart
-xos_coreImage: 'xosproject/xos-core:candidate'
-xos_chameleonImage: 'xosproject/chameleon:candidate'
-xos_toscaImage: 'xosproject/xos-tosca:candidate'
-xos_api_testerImage: 'xosproject/xos-api-tester:candidate'
-tosca_loaderImage: 'xosproject/tosca-loader:candidate'
+# in xos-core chart and other charts with multiple images
+images:
+  xos_core:
+    tag: 'candidate'
+  xos_chameleon:
+    tag: 'candidate'
+  xos_tosca:
+    tag: 'candidate'
+  xos_api_tester:
+    tag: 'candidate'
+  tosca_loader:
+    tag: 'candidate'
 
 # in xos-gui sub-chart required by xos-core chart
 xos-gui:
-  xos_guiImage: 'xosproject/xos-gui:candidate'
-  xos_wsImage: 'xosproject/xos-ws:candidate'
+  images:
+    xos_gui:
+      tag: 'candidate'
+    xos_ws:
+      tag: 'candidate'
 
 # in RCORD service chart
 addressmanager:
-  addressmanager_synchronizerImage: 'xosproject/addressmanager-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 att-workflow-driver:
-  attWorkflowDriver_synchronizerImage: 'xosproject/att-workflow-driver-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 fabric:
-  fabric_synchronizerImage: 'xosproject/fabric-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 fabric-crossconnect:
-  fabric_crossconnect_synchronizerImage: 'xosproject/fabric-crossconnect-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 onos-service:
-  onos_synchronizerImage: 'xosproject/onos-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 volt:
-  volt_synchronizerImage: 'xosproject/volt-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 vsg-hw:
-  vsg_hw_synchronizerImage: 'xosproject/vsg-hw-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 vrouter:
-  vrouter_synchronizerImage: 'xosproject/vrouter-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 rcord:
-  rcord_synchronizerImage: 'xosproject/rcord-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 
 # in BASE-OPENSTACK chart
 openstack:
-  openstack_synchronizerImage: 'xosproject/openstack-synchronizer:candidate'
+  image:
+    tag: 'candidate'
+
 vtn-service:
-  vtn_synchronizerImage: 'xosproject/vtn-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 
 # in MCORD
 vmme:
-  synchronizerImage: "xosproject/vmme-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 vspgwc:
-  synchronizerImage: "xosproject/vspgwc-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 vspgwu:
-  synchronizerImage: "xosproject/vspgwu-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 vhss:
-  synchronizerImage: "xosproject/vhss-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 hssdb:
-  synchronizerImage: "xosproject/hssdb-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 internetemulator:
-  synchronizerImage: "xosproject/internetemulator-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 sdncontroller:
-  synchronizerImage: "xosproject/sdncontroller-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 epc-service:
-  synchronizerImage: "xosproject/vepc-synchronizer:candidate"
+  image:
+    tag: 'candidate'
+k8spcservice:
+  image:
+    tag: 'candidate'
 mcord-subscriber:
-  synchronizerImage: "xosproject/mcord-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 progran:
-  synchronizerImage: "xosproject/progran-synchronizer:candidate"
+  image:
+    tag: 'candidate'
 
-# others  
+# others
 kubernetes:
-  kubernetes_synchronizerImage: 'xosproject/kubernetes-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 exampleservice:
-  exampleservice_synchronizerImage: 'xosproject/exampleservice-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 simpleexampleservice:
-  simpleexampleservice_synchronizerImage: 'xosproject/simpleexampleservice-synchronizer:candidate'
-
-hippieOSS_synchronizerImage: 'xosproject/hippie-oss-synchronizer:candidate'
+  image:
+    tag: 'candidate'
 
diff --git a/examples/imagePullPolicy-IfNotPresent.yaml b/examples/imagePullPolicy-IfNotPresent.yaml
index 2cadc2d..31e6f32 100644
--- a/examples/imagePullPolicy-IfNotPresent.yaml
+++ b/examples/imagePullPolicy-IfNotPresent.yaml
@@ -16,62 +16,94 @@
 # Only pull docker images if not already present
 
 # in xos-core, rcord-lite, onos and voltha charts
-imagePullPolicy: 'IfNotPresent'
+image:
+  pullPolicy: 'IfNotPresent'
+
 xos-gui:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 
 # in RCORD service chart
 addressmanager:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 att-workflow-driver:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 fabric:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 fabric-crossconnect:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 onos-service:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 volt:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 vsg-hw:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 rcord:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 vrouter:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 
 # in BASE-OPENSTACK chart
 openstack:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
+
 vtn-service:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 
 # in MCORD
 vmme:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 vspgwc:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 vspgwu:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 vhss:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 hssdb:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 internetemulator:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 sdncontroller:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 epc-service:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
+k8sepcservice:
+  image:
+    pullPolicy: 'IfNotPresent'
 mcord-subscriber:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 progran:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 
 # others
 kubernetes:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 exampleservice:
-  imagePullPolicy: 'IfNotPresent'
+  image:
+    pullPolicy: 'IfNotPresent'
 simpleexampleservice:
-  imagePullPolicy: 'IfNotPresent'
\ No newline at end of file
+  image:
+    pullPolicy: 'IfNotPresent'
+
diff --git a/sadis-server/Chart.yaml b/sadis-server/Chart.yaml
index 985e029..ea3f0e1 100644
--- a/sadis-server/Chart.yaml
+++ b/sadis-server/Chart.yaml
@@ -13,4 +13,5 @@
 # limitations under the License.
 
 name: sadis-server
-version: 1.0.0-dev
+version: 1.0.1
+appVersion: latest
diff --git a/sadis-server/templates/sadis-deployment.yaml b/sadis-server/templates/sadis-deployment.yaml
index 9e2c882..36a14f9 100644
--- a/sadis-server/templates/sadis-deployment.yaml
+++ b/sadis-server/templates/sadis-deployment.yaml
@@ -29,8 +29,8 @@
     spec:
       containers:
         - name: sadis-server
-          image: {{ .Values.image }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           ports:
             - containerPort: 8000
               port: 8000
diff --git a/sadis-server/values.yaml b/sadis-server/values.yaml
index f65a8bc..7c3cea9 100644
--- a/sadis-server/values.yaml
+++ b/sadis-server/values.yaml
@@ -12,8 +12,14 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-image: "opencord/sadis-server:latest"
-imagePullPolicy: Always
+
+image:
+  repository: 'opencord/sadis-server'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
+
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
-xosAdminPassword: "letmein"
\ No newline at end of file
+xosAdminPassword: "letmein"
diff --git a/xos-core/Chart.yaml b/xos-core/Chart.yaml
index 350aa64..d47d9c1 100644
--- a/xos-core/Chart.yaml
+++ b/xos-core/Chart.yaml
@@ -14,4 +14,12 @@
 # limitations under the License.
 
 name: xos-core
-version: 2.1.0-dev
+description: XOS - An Extensible Cloud Operating System
+icon: https://guide.opencord.org/logos/xos.svg
+
+version: 2.1.15
+
+# appVersion is of the xos-core and xos-chameleon containers.
+# xos-tosca and xos-api-tester are versioned in values.yaml
+appVersion: 2.1.15
+
diff --git a/xos-core/requirements.yaml b/xos-core/requirements.yaml
index 2d165b1..de38084 100644
--- a/xos-core/requirements.yaml
+++ b/xos-core/requirements.yaml
@@ -15,10 +15,10 @@
 
 dependencies:
 - name: xos-db
-  version: 0.1.0-dev0
+  version: 1.0.0
   repository: file://../xos-db
 - name: xos-gui
-  version: 1.1.0-dev
+  version: 1.2.0
   repository: file://../xos-gui
   condition: xos-gui.enabled
 
diff --git a/xos-core/templates/chameleon-deployment.yaml b/xos-core/templates/chameleon-deployment.yaml
index d61cdd9..41f1f6e 100644
--- a/xos-core/templates/chameleon-deployment.yaml
+++ b/xos-core/templates/chameleon-deployment.yaml
@@ -28,8 +28,8 @@
     spec:
       containers:
         - name: xos-chameleon
-          image: {{ tpl .Values.xos_chameleonImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image:  {{ .Values.global.registry }}{{ .Values.images.xos_chameleon.repository }}:{{ tpl .Values.images.xos_chameleon.tag . }}
+          imagePullPolicy: {{ .Values.images.xos_chameleon.pullPolicy }}
           command: ["python", "chameleon/chameleon/main.py", "-R", "9101", "-G", "xos-core:50055", "--swagger-url", "/apidocs", "-r"]
           ports:
             - containerPort: 9101
diff --git a/xos-core/templates/core-deployment.yaml b/xos-core/templates/core-deployment.yaml
index 54b2a5a..a785392 100644
--- a/xos-core/templates/core-deployment.yaml
+++ b/xos-core/templates/core-deployment.yaml
@@ -28,8 +28,8 @@
     spec:
       containers:
         - name: xos-core
-          image: {{ tpl .Values.xos_coreImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.xos_core.repository }}:{{ tpl .Values.images.xos_core.tag . }}
+          imagePullPolicy: {{ .Values.images.xos_core.pullPolicy }}
           command: ["/bin/bash", "-c", "cd coreapi; ./start_coreapi.sh"]
           ports:
             - containerPort: 50051
diff --git a/xos-core/templates/tests/test-xos-core-api.yaml b/xos-core/templates/tests/test-xos-core-api.yaml
index 7899b00..1162de0 100644
--- a/xos-core/templates/tests/test-xos-core-api.yaml
+++ b/xos-core/templates/tests/test-xos-core-api.yaml
@@ -25,8 +25,8 @@
   restartPolicy: Never
   containers:
     - name: {{ .Release.Name }}-api-test
-      image: {{ .Values.xos_api_testerImage }}
-      imagePullPolicy: {{ .Values.imagePullPolicy }}
+      image: {{ .Values.global.registry }}{{ .Values.images.xos_api_tester.repository }}:{{ tpl .Values.images.xos_api_tester.tag . }}
+      imagePullPolicy: {{ .Values.images.xos_api_tester.pullPolicy }}
       volumeMounts:
         - name: log-volume
           mountPath: /src/cord-api/Tests/Log/
diff --git a/xos-core/templates/tosca-deployment.yaml b/xos-core/templates/tosca-deployment.yaml
index 48eecf2..c6f8376 100644
--- a/xos-core/templates/tosca-deployment.yaml
+++ b/xos-core/templates/tosca-deployment.yaml
@@ -28,8 +28,8 @@
     spec:
       containers:
         - name: xos-tosca
-          image: {{ .Values.xos_toscaImage | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.xos_tosca.repository }}:{{ tpl .Values.images.xos_tosca.tag . }}
+          imagePullPolicy: {{ .Values.images.xos_tosca.pullPolicy }}
           ports:
             - containerPort: 9102
               port: 9102
diff --git a/xos-core/values.yaml b/xos-core/values.yaml
index 7f315bc..688f379 100644
--- a/xos-core/values.yaml
+++ b/xos-core/values.yaml
@@ -16,14 +16,31 @@
 xos_gui:
   enabled: true
 
-imagePullPolicy: 'Always'
-
 # Docker images
 # YAML variable names can't contain `-`, so substituted with `_`
-xos_coreImage: 'xosproject/xos-core:master'
-xos_chameleonImage: 'xosproject/chameleon:master'
-xos_toscaImage: 'xosproject/xos-tosca:master'
-xos_api_testerImage: 'xosproject/xos-api-tester:master'
+images:
+  xos_core:
+    repository: 'xosproject/xos-core'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
+
+  xos_chameleon:
+    repository: 'xosproject/chameleon'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
+
+  xos_tosca:
+    repository: 'xosproject/xos-tosca'
+    tag: '1.1.1'
+    pullPolicy: 'Always'
+
+  xos_api_tester:
+    repository: 'xosproject/xos-api-tester'
+    tag: '2.0.3'
+    pullPolicy: 'Always'
+
+global:
+  registry: ""
 
 # NodePorts
 xos_chameleonNodePort: 30006
diff --git a/xos-db/Chart.yaml b/xos-db/Chart.yaml
index 677cbc9..e66aac5 100644
--- a/xos-db/Chart.yaml
+++ b/xos-db/Chart.yaml
@@ -14,4 +14,9 @@
 # limitations under the License.
 
 name: xos-db
-version: 0.1.0-dev0
+version: 1.0.0
+
+icon: https://www.postgresql.org/media/img/about/press/elephant.png
+
+# Postgres container from: https://hub.docker.com/_/postgres/
+appVersion: '10.3-alpine'
diff --git a/xos-db/templates/db-deployment.yaml b/xos-db/templates/db-deployment.yaml
index a3d3e91..d467b05 100644
--- a/xos-db/templates/db-deployment.yaml
+++ b/xos-db/templates/db-deployment.yaml
@@ -28,8 +28,8 @@
     spec:
       containers:
         - name: xos-db
-          image: {{ .Values.postgresImage | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image:  {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           ports:
             - containerPort: 5432
               protocol: TCP
diff --git a/xos-db/values.yaml b/xos-db/values.yaml
index 8bb026d..8428769 100644
--- a/xos-db/values.yaml
+++ b/xos-db/values.yaml
@@ -15,8 +15,13 @@
 
 # XOS Postgres database related values
 
-imagePullPolicy: 'Always'
-postgresImage: 'postgres:10.3-alpine'
+image:
+  repository: 'postgres'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
+
+global:
+  registry: ""
 
 # Database name/username/password
 xosDBName: 'xos'
diff --git a/xos-gui/Chart.yaml b/xos-gui/Chart.yaml
index a1efce3..9f379f8 100644
--- a/xos-gui/Chart.yaml
+++ b/xos-gui/Chart.yaml
@@ -15,5 +15,8 @@
 
 name: xos-gui
 description: Web GUI for XOS
-version: 1.1.0-dev
+icon: https://guide.opencord.org/logos/xos.svg
+version: 1.2.0
 
+# appVersion is of the xos-gui container, xos-ws tag is specified in values.yaml
+appVersion: 1.0.2
diff --git a/xos-gui/templates/gui-deployment.yaml b/xos-gui/templates/gui-deployment.yaml
index 153a6bf..d8d8b13 100644
--- a/xos-gui/templates/gui-deployment.yaml
+++ b/xos-gui/templates/gui-deployment.yaml
@@ -28,8 +28,8 @@
     spec:
       containers:
         - name: xos-gui
-          image: {{ tpl .Values.xos_guiImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.xos_gui.repository }}:{{ tpl .Values.images.xos_gui.tag . }}
+          imagePullPolicy: {{ .Values.images.xos_gui.pullPolicy }}
           ports:
             - containerPort: 4000
               port: 4000
diff --git a/xos-gui/templates/ws-deployment.yaml b/xos-gui/templates/ws-deployment.yaml
index 9d958bb..e10d0f8 100644
--- a/xos-gui/templates/ws-deployment.yaml
+++ b/xos-gui/templates/ws-deployment.yaml
@@ -28,8 +28,8 @@
     spec:
       containers:
         - name: xos-ws
-          image: {{ .Values.xos_wsImage | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.xos_ws.repository }}:{{ tpl .Values.images.xos_ws.tag . }}
+          imagePullPolicy: {{ .Values.images.xos_ws.pullPolicy }}
           command: ["npm", "start", "--", "--config", "gateway-config.yml"]
           ports:
             - containerPort: 3000
diff --git a/xos-gui/values.yaml b/xos-gui/values.yaml
index 4ea2e9d..7e54158 100644
--- a/xos-gui/values.yaml
+++ b/xos-gui/values.yaml
@@ -13,11 +13,20 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-imagePullPolicy: 'Always'
-
 # Docker Images
-xos_guiImage: 'xosproject/xos-gui:master'
-xos_wsImage: 'xosproject/xos-ws:master'
+images:
+  xos_gui:
+    repository: 'xosproject/xos-gui'
+    tag: "{{ .Chart.AppVersion }}"
+    pullPolicy: 'Always'
+
+  xos_ws:
+    repository: 'xosproject/xos-ws'
+    tag: '2.0.0'
+    pullPolicy: 'Always'
+
+global:
+  registry: ""
 
 # NodePorts
 xos_guiNodePort: 30001
diff --git a/xos-profiles/att-workflow/Chart.yaml b/xos-profiles/att-workflow/Chart.yaml
index 242f5e6..e42858f 100644
--- a/xos-profiles/att-workflow/Chart.yaml
+++ b/xos-profiles/att-workflow/Chart.yaml
@@ -15,7 +15,11 @@
 # limitations under the License.
 
 apiVersion: v1
-appVersion: "1.0"
-description: A Helm chart for XOS's "att-workflow" profile
 name: att-workflow
-version: 0.1.0
+description: A Helm chart for XOS's "att-workflow" profile
+icon: https://guide.opencord.org/logos/cord.svg
+version: 1.0.0
+
+# xosproject/tosca-loader version
+appVersion: 1.1.0
+
diff --git a/xos-profiles/att-workflow/requirements.yaml b/xos-profiles/att-workflow/requirements.yaml
index 8357af0..8824396 100644
--- a/xos-profiles/att-workflow/requirements.yaml
+++ b/xos-profiles/att-workflow/requirements.yaml
@@ -15,23 +15,23 @@
 
 dependencies:
 - name: rcord
-  version: 1.1.0-dev
+  version: 1.0.4
   repository: file://../../xos-services/rcord
 - name: onos-service
-  version: 2.0.2-dev
+  version: 2.0.5
   repository: file://../../xos-services/onos-service
 - name: fabric
-  version: 2.0.1-dev
+  version: 2.1.3
   repository: file://../../xos-services/fabric
 - name: volt
-  version: 2.0.2-dev
+  version: 2.1.1
   repository: file://../../xos-services/volt
 - name: fabric-crossconnect
-  version: 1.0.0-dev
+  version: 1.1.1
   repository: file://../../xos-services/fabric-crossconnect
 - name: att-workflow-driver
-  version: 1.0.0-dev
+  version: 1.0.2
   repository: file://../../xos-services/att-workflow-driver
 - name: sadis-server
-  version: 1.0.0-dev
+  version: 1.0.1
   repository: file://../../sadis-server
diff --git a/xos-profiles/att-workflow/templates/tests/test-att-workflow.yaml b/xos-profiles/att-workflow/templates/tests/test-att-workflow.yaml
index 6e93795..f029cf3 100644
--- a/xos-profiles/att-workflow/templates/tests/test-att-workflow.yaml
+++ b/xos-profiles/att-workflow/templates/tests/test-att-workflow.yaml
@@ -23,8 +23,8 @@
   restartPolicy: Never
   containers:
     - name: {{ .Release.Name }}-api-test
-      image: {{ .Values.xos_api_testerImage }}
-      imagePullPolicy: {{ .Values.imagePullPolicy }}
+      image: {{ .Values.global.registry }}{{ .Values.images.xos_api_tester.repository }}:{{ tpl .Values.images.xos_api_tester.tag . }}
+      imagePullPolicy: {{ .Values.images.xos_api_tester.pullPolicy }}
       volumeMounts:
         - name: log-volume
           mountPath: /src/cord-api/Tests/Log/
diff --git a/xos-profiles/att-workflow/templates/tosca-job.yaml b/xos-profiles/att-workflow/templates/tosca-job.yaml
index 792a56c..a51aaf7 100644
--- a/xos-profiles/att-workflow/templates/tosca-job.yaml
+++ b/xos-profiles/att-workflow/templates/tosca-job.yaml
@@ -36,8 +36,8 @@
       restartPolicy: OnFailure
       containers:
         - name: {{ .Chart.Name }}-tosca-loader
-          image: {{ tpl .Values.tosca_loaderImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.tosca_loader.repository }}:{{ tpl .Values.images.tosca_loader.tag . }}
+          imagePullPolicy: {{ .Values.images.tosca_loader.pullPolicy }}
           env:
             - name: XOS_USER
               value: {{ .Values.xosAdminUser }}
diff --git a/xos-profiles/att-workflow/values.yaml b/xos-profiles/att-workflow/values.yaml
index 10dc007..8ab7539 100644
--- a/xos-profiles/att-workflow/values.yaml
+++ b/xos-profiles/att-workflow/values.yaml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for the rcord-fc profile.
+# Default values for the att-workflow profile.
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
@@ -22,11 +22,19 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'IfNotPresent'
+images:
+  tosca_loader:
+    repository: 'xosproject/tosca-loader'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
 
-tosca_loaderImage: "xosproject/tosca-loader:1.0.1"
+  xos_api_tester:
+    repository: 'xosproject/xos-api-tester'
+    tag: '2.0.3'
+    pullPolicy: 'Always'
 
-xos_api_testerImage: 'xosproject/xos-api-tester:master'
+global:
+  registry: ""
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-profiles/base-kubernetes/Chart.yaml b/xos-profiles/base-kubernetes/Chart.yaml
index 71e6297..e404344 100644
--- a/xos-profiles/base-kubernetes/Chart.yaml
+++ b/xos-profiles/base-kubernetes/Chart.yaml
@@ -14,8 +14,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-appVersion: "1.0"
-description: A Helm chart for XOS's "base-kubernetes" profile
 name: base-kubernetes
-version: 0.1.0
+description: A Helm chart for XOS's "base-kubernetes" profile
+icon: https://guide.opencord.org/logos/cord.svg
+version: 1.0.0
+
+# xosproject/tosca-loader version
+appVersion: 1.1.0
+
diff --git a/xos-profiles/base-kubernetes/requirements.yaml b/xos-profiles/base-kubernetes/requirements.yaml
index 6d0ea7e..ff2de09 100644
--- a/xos-profiles/base-kubernetes/requirements.yaml
+++ b/xos-profiles/base-kubernetes/requirements.yaml
@@ -15,7 +15,7 @@
 
 dependencies:
 - name: kubernetes
-  version: 1.0.1-dev
+  version: 1.0.4
   repository: file://../../xos-services/kubernetes
 
 
diff --git a/xos-profiles/base-kubernetes/templates/tosca-job.yaml b/xos-profiles/base-kubernetes/templates/tosca-job.yaml
index 9502ecc..4578761 100644
--- a/xos-profiles/base-kubernetes/templates/tosca-job.yaml
+++ b/xos-profiles/base-kubernetes/templates/tosca-job.yaml
@@ -36,8 +36,8 @@
       restartPolicy: OnFailure
       containers:
         - name: {{ .Chart.Name }}-tosca-loader
-          image: {{ tpl .Values.tosca_loaderImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: XOS_USER
               value: {{ .Values.xosAdminUser }}
diff --git a/xos-profiles/base-kubernetes/values.yaml b/xos-profiles/base-kubernetes/values.yaml
index 8521140..ac6cb1c 100644
--- a/xos-profiles/base-kubernetes/values.yaml
+++ b/xos-profiles/base-kubernetes/values.yaml
@@ -22,9 +22,14 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'IfNotPresent'
+# tosca loader container
+image:
+  repository: 'xosproject/tosca-loader'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-tosca_loaderImage: "xosproject/tosca-loader:1.0.1"
+global:
+  registry: ""
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-profiles/base-openstack/Chart.yaml b/xos-profiles/base-openstack/Chart.yaml
index e6003da..d95aa4b 100644
--- a/xos-profiles/base-openstack/Chart.yaml
+++ b/xos-profiles/base-openstack/Chart.yaml
@@ -15,7 +15,9 @@
 # limitations under the License.
 
 apiVersion: v1
-appVersion: "1.0"
 description: A Helm chart for the "base-openstack" profile
 name: base-openstack
 version: 0.1.0
+
+# xosproject/tosca-loader version
+appVersion: 1.1.0
diff --git a/xos-profiles/base-openstack/requirements.yaml b/xos-profiles/base-openstack/requirements.yaml
index 7f2578a..7c93104 100644
--- a/xos-profiles/base-openstack/requirements.yaml
+++ b/xos-profiles/base-openstack/requirements.yaml
@@ -16,11 +16,11 @@
 
 dependencies:
 - name: onos-service
-  version: 2.0.2-dev
+  version: 2.0.5
   repository: file://../../xos-services/onos-service
 - name: openstack
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/openstack
 - name: vtn-service
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/vtn-service
diff --git a/xos-profiles/base-openstack/templates/tosca-job.yaml b/xos-profiles/base-openstack/templates/tosca-job.yaml
index 0b009e3..48d0b9e 100644
--- a/xos-profiles/base-openstack/templates/tosca-job.yaml
+++ b/xos-profiles/base-openstack/templates/tosca-job.yaml
@@ -35,8 +35,8 @@
       restartPolicy: OnFailure
       containers:
         - name: {{ .Chart.Name }}-tosca-loader
-          image: {{ tpl .Values.tosca_loaderImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: XOS_USER
               value: {{ .Values.xosAdminUser }}
diff --git a/xos-profiles/base-openstack/values.yaml b/xos-profiles/base-openstack/values.yaml
index 11cb5a8..8a9d1c8 100644
--- a/xos-profiles/base-openstack/values.yaml
+++ b/xos-profiles/base-openstack/values.yaml
@@ -22,9 +22,14 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+# tosca loader container
+image:
+  repository: 'xosproject/tosca-loader'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-tosca_loaderImage: "xosproject/tosca-loader:1.0.1"
+global:
+  registry: ""
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-profiles/demo-exampleservice/Chart.yaml b/xos-profiles/demo-exampleservice/Chart.yaml
index 926af58..201b1d5 100644
--- a/xos-profiles/demo-exampleservice/Chart.yaml
+++ b/xos-profiles/demo-exampleservice/Chart.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,8 +13,12 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-appVersion: "1.0"
-description: A Helm chart that launches and configures ExampleService. It's assumed that base-kubernetes profile is installed.
 name: demo-exampleservice
-version: 0.1.0
+description: A Helm chart that launches and configures ExampleService. It's assumed that base-kubernetes profile is installed.
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.0
+
+# xosproject/tosca-loader version
+appVersion: 1.1.0
+
diff --git a/xos-profiles/demo-exampleservice/requirements.yaml b/xos-profiles/demo-exampleservice/requirements.yaml
index 4da802b..207d073 100644
--- a/xos-profiles/demo-exampleservice/requirements.yaml
+++ b/xos-profiles/demo-exampleservice/requirements.yaml
@@ -15,8 +15,8 @@
 
 dependencies:
 - name: exampleservice
-  version: 2.1.0
+  version: 2.1.1
   repository: file://../../xos-services/exampleservice
 - name: addressmanager
-  version: 2.0.0
+  version: 2.0.1
   repository: file://../../xos-services/addressmanager
diff --git a/xos-profiles/demo-exampleservice/templates/tosca-job.yaml b/xos-profiles/demo-exampleservice/templates/tosca-job.yaml
index 0bba3f6..53cce60 100644
--- a/xos-profiles/demo-exampleservice/templates/tosca-job.yaml
+++ b/xos-profiles/demo-exampleservice/templates/tosca-job.yaml
@@ -35,8 +35,8 @@
       restartPolicy: OnFailure
       containers:
         - name: {{ .Chart.Name }}-tosca-loader
-          image: {{ tpl .Values.tosca_loaderImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: XOS_USER
               value: {{ .Values.xosAdminUser }}
diff --git a/xos-profiles/demo-exampleservice/values.yaml b/xos-profiles/demo-exampleservice/values.yaml
index e621e99..496a20f 100644
--- a/xos-profiles/demo-exampleservice/values.yaml
+++ b/xos-profiles/demo-exampleservice/values.yaml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for the base-openstack profile.
+# Default values for the demo-exampleservice profile.
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'IfNotPresent'
-
-tosca_loaderImage: "xosproject/tosca-loader:1.0.1"
+image:
+  repository: 'xosproject/tosca-loader'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -39,3 +40,4 @@
 global:
   proxySshEnabled: true
   proxySshUser: root
+  registry: ''
diff --git a/xos-profiles/demo-simpleexampleservice/Chart.yaml b/xos-profiles/demo-simpleexampleservice/Chart.yaml
index 10e3b26..18da6cd 100644
--- a/xos-profiles/demo-simpleexampleservice/Chart.yaml
+++ b/xos-profiles/demo-simpleexampleservice/Chart.yaml
@@ -14,8 +14,11 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-appVersion: "1.0"
-description: A Helm chart that launches and configures SimpleExampleService. It's assumed that base-kubernetes profile is installed.
 name: demo-simpleexampleservice
-version: 0.1.0
+description: A Helm chart that launches and configures SimpleExampleService. It's assumed that base-kubernetes profile is installed.
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.0
+
+# xosproject/tosca-loader version
+appVersion: 1.1.0
diff --git a/xos-profiles/demo-simpleexampleservice/requirements.yaml b/xos-profiles/demo-simpleexampleservice/requirements.yaml
index eccfaa9..91ca512 100644
--- a/xos-profiles/demo-simpleexampleservice/requirements.yaml
+++ b/xos-profiles/demo-simpleexampleservice/requirements.yaml
@@ -16,5 +16,5 @@
 
 dependencies:
 - name: simpleexampleservice
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/simpleexampleservice
diff --git a/xos-profiles/demo-simpleexampleservice/templates/tosca-job.yaml b/xos-profiles/demo-simpleexampleservice/templates/tosca-job.yaml
index 0a05d11..7e9c65c 100644
--- a/xos-profiles/demo-simpleexampleservice/templates/tosca-job.yaml
+++ b/xos-profiles/demo-simpleexampleservice/templates/tosca-job.yaml
@@ -35,8 +35,8 @@
       restartPolicy: OnFailure
       containers:
         - name: {{ .Chart.Name }}-tosca-loader
-          image: {{ tpl .Values.tosca_loaderImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: XOS_USER
               value: {{ .Values.xosAdminUser }}
diff --git a/xos-profiles/demo-simpleexampleservice/values.yaml b/xos-profiles/demo-simpleexampleservice/values.yaml
index bc25efa..2fbe1f6 100644
--- a/xos-profiles/demo-simpleexampleservice/values.yaml
+++ b/xos-profiles/demo-simpleexampleservice/values.yaml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for the base-openstack profile.
+# Default values for the demo-simpleexampleservice profile.
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'IfNotPresent'
+image:
+  repository: 'xosproject/tosca-loader'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-tosca_loaderImage: "xosproject/tosca-loader:1.0.1"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-profiles/mcord/Chart.yaml b/xos-profiles/mcord/Chart.yaml
index 5fa482b..2c49deb 100644
--- a/xos-profiles/mcord/Chart.yaml
+++ b/xos-profiles/mcord/Chart.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,8 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-appVersion: "1.0"
-description: A Helm chart for the "mcord" profile
 name: mcord
-version: 0.1.0
+description: A Helm chart for the "mcord" profile
+version: 1.0.0
+
+# xosproject/tosca-loader version
+appVersion: 1.1.0
diff --git a/xos-profiles/mcord/requirements.yaml b/xos-profiles/mcord/requirements.yaml
index 568264f..12b4c93 100644
--- a/xos-profiles/mcord/requirements.yaml
+++ b/xos-profiles/mcord/requirements.yaml
@@ -15,32 +15,32 @@
 
 dependencies:
 - name: vmme
-  version: 1.0.1
+  version: 1.0.2
   repository: file://../../xos-services/vmme
 - name: vspgwc
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/vspgwc
 - name: vspgwu
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/vspgwu
 - name: vhss
-  version: 1.0.1
+  version: 1.0.2
   repository: file://../../xos-services/vhss
 - name: hssdb
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/hssdb
 - name: internetemulator
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/internetemulator
 - name: sdncontroller
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/sdncontroller
 - name: epc-service
-  version: 1.0.0
+  version: 1.1.1
   repository: file://../../xos-services/epc-service
 - name: mcord-subscriber
-  version: 2.0.0
+  version: 2.0.1
   repository: file://../../xos-services/mcord-subscriber
 - name: progran
-  version: 2.0.0
+  version: 2.0.2
   repository: file://../../xos-services/progran
diff --git a/xos-profiles/mcord/templates/tosca-job.yaml b/xos-profiles/mcord/templates/tosca-job.yaml
index f407543..ed6ae54 100644
--- a/xos-profiles/mcord/templates/tosca-job.yaml
+++ b/xos-profiles/mcord/templates/tosca-job.yaml
@@ -35,8 +35,8 @@
       restartPolicy: OnFailure
       containers:
         - name: {{ .Chart.Name }}-tosca-loader
-          image: {{ tpl .Values.tosca_loaderImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: XOS_USER
               value: {{ .Values.xosAdminUser }}
diff --git a/xos-profiles/mcord/values.yaml b/xos-profiles/mcord/values.yaml
index 380fff8..b6d3a18 100644
--- a/xos-profiles/mcord/values.yaml
+++ b/xos-profiles/mcord/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'IfNotPresent'
-
-tosca_loaderImage: "xosproject/tosca-loader:1.0.1"
+image:
+  repository: 'xosproject/tosca-loader'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: &adminuser "admin@opencord.org"
 xosAdminPassword: &adminpass "letmein"
@@ -40,3 +41,4 @@
 global:
   proxySshEnabled: true
   proxySshUser: root
+  registry: ''
diff --git a/xos-profiles/ponsim-pod/Chart.yaml b/xos-profiles/ponsim-pod/Chart.yaml
index 157e299..2b58e77 100644
--- a/xos-profiles/ponsim-pod/Chart.yaml
+++ b/xos-profiles/ponsim-pod/Chart.yaml
@@ -13,8 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-appVersion: "1.0"
-description: A Helm chart for loading the Ponsim pod's TOSCA files into XOS
 name: ponsim-pod
-version: 0.1.0
+description: A Helm chart for loading the Ponsim pod's TOSCA files into XOS
+version: 1.0.0
+
+# xosproject/tosca-loader version
+appVersion: 1.1.0
diff --git a/xos-profiles/ponsim-pod/templates/tosca-job.yaml b/xos-profiles/ponsim-pod/templates/tosca-job.yaml
index 6099ad3..92d4cd1 100644
--- a/xos-profiles/ponsim-pod/templates/tosca-job.yaml
+++ b/xos-profiles/ponsim-pod/templates/tosca-job.yaml
@@ -37,8 +37,8 @@
       restartPolicy: OnFailure
       containers:
         - name: {{ .Chart.Name }}-ponsim-pod
-          image: {{ tpl .Values.tosca_loaderImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           env:
             - name: XOS_USER
               value: {{ .Values.xosAdminUser }}
diff --git a/xos-profiles/ponsim-pod/values.yaml b/xos-profiles/ponsim-pod/values.yaml
index 981c10f..e6ac302 100644
--- a/xos-profiles/ponsim-pod/values.yaml
+++ b/xos-profiles/ponsim-pod/values.yaml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for the rcord-fc profile.
+# Default values for the ponsim-pod profile.
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'IfNotPresent'
+image:
+  repository: 'xosproject/tosca-loader'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-tosca_loaderImage: "xosproject/tosca-loader:1.0.1"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-profiles/rcord-lite/Chart.yaml b/xos-profiles/rcord-lite/Chart.yaml
index 5c4972c..88b7ab4 100644
--- a/xos-profiles/rcord-lite/Chart.yaml
+++ b/xos-profiles/rcord-lite/Chart.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,8 +13,10 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-apiVersion: v1
-appVersion: "1.0"
-description: A Helm chart for XOS's "rcord-lite" profile
 name: rcord-lite
-version: 0.1.0
+description: A Helm chart for XOS's "rcord-lite" profile
+icon: https://guide.opencord.org/logos/cord.svg
+version: 1.0.0
+
+# xosproject/tosca-loader version
+appVersion: 1.1.0
diff --git a/xos-profiles/rcord-lite/requirements.yaml b/xos-profiles/rcord-lite/requirements.yaml
index 33417bb..f1398ee 100644
--- a/xos-profiles/rcord-lite/requirements.yaml
+++ b/xos-profiles/rcord-lite/requirements.yaml
@@ -15,23 +15,23 @@
 
 dependencies:
 - name: rcord
-  version: 1.1.0-dev
+  version: 1.0.4
   repository: file://../../xos-services/rcord
 - name: onos-service
-  version: 2.0.2-dev
+  version: 2.0.5
   repository: file://../../xos-services/onos-service
 - name: fabric
-  version: 2.0.1-dev
+  version: 2.1.3
   repository: file://../../xos-services/fabric
 - name: volt
-  version: 2.0.2-dev
+  version: 2.1.1
   repository: file://../../xos-services/volt
 - name: vsg-hw
-  version: 1.0.0
+  version: 1.0.1
   repository: file://../../xos-services/vsg-hw
 - name: vrouter
-  version: 2.0.1-dev
+  version: 2.0.3
   repository: file://../../xos-services/vrouter
 - name: sadis-server
-  version: 1.0.0-dev
+  version: 1.0.1
   repository: file://../../sadis-server
diff --git a/xos-profiles/rcord-lite/templates/tests/test-rcord-lite-api.yaml b/xos-profiles/rcord-lite/templates/tests/test-rcord-lite-api.yaml
index 7781c53..a17884f 100644
--- a/xos-profiles/rcord-lite/templates/tests/test-rcord-lite-api.yaml
+++ b/xos-profiles/rcord-lite/templates/tests/test-rcord-lite-api.yaml
@@ -23,8 +23,8 @@
   restartPolicy: Never
   containers:
     - name: {{ .Release.Name }}-api-test
-      image: {{ .Values.xos_api_testerImage }}
-      imagePullPolicy: {{ .Values.imagePullPolicy }}
+      image: {{ .Values.global.registry }}{{ .Values.images.xos_api_tester.repository }}:{{ tpl .Values.images.xos_api_tester.tag . }}
+      imagePullPolicy: {{ .Values.images.xos_api_tester.pullPolicy }}
       volumeMounts:
         - name: log-volume
           mountPath: /src/cord-api/Tests/Log/
diff --git a/xos-profiles/rcord-lite/templates/tosca-job.yaml b/xos-profiles/rcord-lite/templates/tosca-job.yaml
index 1405e45..d1a83a2 100644
--- a/xos-profiles/rcord-lite/templates/tosca-job.yaml
+++ b/xos-profiles/rcord-lite/templates/tosca-job.yaml
@@ -36,8 +36,8 @@
       restartPolicy: OnFailure
       containers:
         - name: {{ .Chart.Name }}-tosca-loader
-          image: {{ tpl .Values.tosca_loaderImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.tosca_loader.repository }}:{{ tpl .Values.images.tosca_loader.tag . }}
+          imagePullPolicy: {{ .Values.images.tosca_loader.pullPolicy }}
           env:
             - name: XOS_USER
               value: {{ .Values.xosAdminUser }}
diff --git a/xos-profiles/rcord-lite/values.yaml b/xos-profiles/rcord-lite/values.yaml
index 1cb4941..65e3396 100644
--- a/xos-profiles/rcord-lite/values.yaml
+++ b/xos-profiles/rcord-lite/values.yaml
@@ -22,11 +22,19 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+images:
+  tosca_loader:
+    repository: 'xosproject/tosca-loader'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
 
-tosca_loaderImage: "xosproject/tosca-loader:1.0.1"
+  xos_api_tester:
+    repository: 'xosproject/xos-api-tester'
+    tag: '2.0.3'
+    pullPolicy: 'Always'
 
-xos_api_testerImage: 'xosproject/xos-api-tester:2.0.1'
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/addressmanager/Chart.yaml b/xos-services/addressmanager/Chart.yaml
index 8598325..2d43e4e 100644
--- a/xos-services/addressmanager/Chart.yaml
+++ b/xos-services/addressmanager/Chart.yaml
@@ -15,4 +15,8 @@
 
 name: addressmanager
 description: A Helm chart for XOS's "addressmanager" service
-version: 2.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 2.0.1
+appVersion: 2.0.1
+
diff --git a/xos-services/addressmanager/templates/_helpers.tpl b/xos-services/addressmanager/templates/_helpers.tpl
index dbf02ef..b85862a 100644
--- a/xos-services/addressmanager/templates/_helpers.tpl
+++ b/xos-services/addressmanager/templates/_helpers.tpl
@@ -67,10 +67,16 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.addressmanager
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 {{- end -}}
diff --git a/xos-services/addressmanager/templates/deployment.yaml b/xos-services/addressmanager/templates/deployment.yaml
index 7610ca4..61f1900 100644
--- a/xos-services/addressmanager/templates/deployment.yaml
+++ b/xos-services/addressmanager/templates/deployment.yaml
@@ -39,8 +39,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.addressmanager_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/addressmanager/values.yaml b/xos-services/addressmanager/values.yaml
index eb570da..cc9b4e6 100644
--- a/xos-services/addressmanager/values.yaml
+++ b/xos-services/addressmanager/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/addressmanager-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-addressmanager_synchronizerImage: "xosproject/addressmanager-synchronizer:{{ .Chart.Version }}"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/att-workflow-driver/Chart.yaml b/xos-services/att-workflow-driver/Chart.yaml
index 5918548..a9cec7c 100644
--- a/xos-services/att-workflow-driver/Chart.yaml
+++ b/xos-services/att-workflow-driver/Chart.yaml
@@ -16,4 +16,7 @@
 
 name: att-workflow-driver
 description: A Helm chart for XOS's "att-workflow-driver" service
-version: 1.0.0-dev
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.2
+appVersion: 1.0.2
diff --git a/xos-services/att-workflow-driver/templates/deployment.yaml b/xos-services/att-workflow-driver/templates/deployment.yaml
index 2f1f479..2b7b439 100644
--- a/xos-services/att-workflow-driver/templates/deployment.yaml
+++ b/xos-services/att-workflow-driver/templates/deployment.yaml
@@ -39,8 +39,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.attWorkflowDriver_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/att-workflow-driver/values.yaml b/xos-services/att-workflow-driver/values.yaml
index d6335d3..d1c0289 100644
--- a/xos-services/att-workflow-driver/values.yaml
+++ b/xos-services/att-workflow-driver/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/att-workflow-driver-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-attWorkflowDriver_synchronizerImage: "xosproject/att-workflow-driver-synchronizer:master"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/epc-service/Chart.yaml b/xos-services/epc-service/Chart.yaml
index 47e6af6..fc914fe 100644
--- a/xos-services/epc-service/Chart.yaml
+++ b/xos-services/epc-service/Chart.yaml
@@ -16,4 +16,7 @@
 
 name: epc-service
 description: A Helm chart for XOS's "epc-service" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.1.1
+appVersion: 1.1.1
diff --git a/xos-services/epc-service/templates/_helpers.tpl b/xos-services/epc-service/templates/_helpers.tpl
index d87ebba..531bb40 100644
--- a/xos-services/epc-service/templates/_helpers.tpl
+++ b/xos-services/epc-service/templates/_helpers.tpl
@@ -62,10 +62,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.epc-service
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
+
 {{- end -}}
diff --git a/xos-services/epc-service/templates/deployment.yaml b/xos-services/epc-service/templates/deployment.yaml
index f6e7203..6b487ba 100644
--- a/xos-services/epc-service/templates/deployment.yaml
+++ b/xos-services/epc-service/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/epc-service/values.yaml b/xos-services/epc-service/values.yaml
index 1bbf5be..5788f24 100644
--- a/xos-services/epc-service/values.yaml
+++ b/xos-services/epc-service/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/vepc-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-synchronizerImage: "xosproject/vepc-synchronizer:{{ .Chart.Version }}"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/exampleservice/Chart.yaml b/xos-services/exampleservice/Chart.yaml
index cf29f5d..89057e8 100644
--- a/xos-services/exampleservice/Chart.yaml
+++ b/xos-services/exampleservice/Chart.yaml
@@ -15,4 +15,8 @@
 
 name: exampleservice
 description: A Helm chart for XOS's "exampleservice" service
-version: 2.1.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 2.1.1
+appVersion: 2.1.1
+
diff --git a/xos-services/exampleservice/templates/_helpers.tpl b/xos-services/exampleservice/templates/_helpers.tpl
index 7caad77..c33f782 100644
--- a/xos-services/exampleservice/templates/_helpers.tpl
+++ b/xos-services/exampleservice/templates/_helpers.tpl
@@ -58,11 +58,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.exampleservice
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 proxy_ssh:
   enabled: {{ .Values.global.proxySshEnabled }}
diff --git a/xos-services/exampleservice/templates/deployment.yaml b/xos-services/exampleservice/templates/deployment.yaml
index 4fdce2f..8a42d38 100644
--- a/xos-services/exampleservice/templates/deployment.yaml
+++ b/xos-services/exampleservice/templates/deployment.yaml
@@ -36,8 +36,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.exampleservice_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/exampleservice/values.yaml b/xos-services/exampleservice/values.yaml
index 3ae9782..6fea766 100644
--- a/xos-services/exampleservice/values.yaml
+++ b/xos-services/exampleservice/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
-
-exampleservice_synchronizerImage: "xosproject/exampleservice-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: "xosproject/exampleservice-synchronizer"
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -46,3 +47,4 @@
 global:
   proxySshEnabled: true
   proxySshUser: "root"
+  registry: ''
diff --git a/xos-services/fabric-crossconnect/Chart.yaml b/xos-services/fabric-crossconnect/Chart.yaml
index 0df5df0..caeb202 100644
--- a/xos-services/fabric-crossconnect/Chart.yaml
+++ b/xos-services/fabric-crossconnect/Chart.yaml
@@ -15,4 +15,9 @@
 
 name: fabric-crossconnect
 description: A Helm chart for XOS's "fabric-crossconnect" service
-version: 1.0.0-dev
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.1.1
+appVersion: 1.1.1
+
+
diff --git a/xos-services/fabric-crossconnect/templates/deployment.yaml b/xos-services/fabric-crossconnect/templates/deployment.yaml
index e657d34..9017f21 100644
--- a/xos-services/fabric-crossconnect/templates/deployment.yaml
+++ b/xos-services/fabric-crossconnect/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.fabric_crossconnect_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/fabric-crossconnect/values.yaml b/xos-services/fabric-crossconnect/values.yaml
index cac52c3..4994d5a 100644
--- a/xos-services/fabric-crossconnect/values.yaml
+++ b/xos-services/fabric-crossconnect/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/fabric-crossconnect-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-fabric_crossconnect_synchronizerImage: "xosproject/fabric-crossconnect-synchronizer:master"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/fabric/Chart.yaml b/xos-services/fabric/Chart.yaml
index de60496..85981f0 100644
--- a/xos-services/fabric/Chart.yaml
+++ b/xos-services/fabric/Chart.yaml
@@ -16,4 +16,8 @@
 
 name: fabric
 description: A Helm chart for XOS's "fabric" service
-version: 2.0.1-dev
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 2.1.3
+appVersion: 2.1.3
+
diff --git a/xos-services/fabric/templates/deployment.yaml b/xos-services/fabric/templates/deployment.yaml
index 031abc1..6c666b8 100644
--- a/xos-services/fabric/templates/deployment.yaml
+++ b/xos-services/fabric/templates/deployment.yaml
@@ -39,8 +39,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.fabric_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/fabric/values.yaml b/xos-services/fabric/values.yaml
index 2f6122c..de47cc9 100644
--- a/xos-services/fabric/values.yaml
+++ b/xos-services/fabric/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: xosproject/fabric-synchronizer
+  tag: "{{ .Chart.AppVersion }}"
+  pullPolicy: Always
 
-fabric_synchronizerImage: "xosproject/fabric-synchronizer:master"
+global:
+  registry: ""
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/hippie-oss/Chart.yaml b/xos-services/hippie-oss/Chart.yaml
index 1da9cf9..2a96022 100644
--- a/xos-services/hippie-oss/Chart.yaml
+++ b/xos-services/hippie-oss/Chart.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -16,4 +15,7 @@
 
 name: hippie-oss
 description: A Helm chart for XOS's "hippie-oss" service
-version: 1.1.0-dev
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.1.0
+appVersion: 1.1.0
diff --git a/xos-services/hippie-oss/templates/_helpers.tpl b/xos-services/hippie-oss/templates/_helpers.tpl
index f6f87b8..5f5aa5d 100644
--- a/xos-services/hippie-oss/templates/_helpers.tpl
+++ b/xos-services/hippie-oss/templates/_helpers.tpl
@@ -65,10 +65,16 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.hippie-oss
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 {{- end -}}
diff --git a/xos-services/hippie-oss/templates/deployment.yaml b/xos-services/hippie-oss/templates/deployment.yaml
index 3d31bad..ed3d534 100644
--- a/xos-services/hippie-oss/templates/deployment.yaml
+++ b/xos-services/hippie-oss/templates/deployment.yaml
@@ -39,8 +39,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.hippieOSS_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/hippie-oss/values.yaml b/xos-services/hippie-oss/values.yaml
index 9c67f03..46f89c6 100644
--- a/xos-services/hippie-oss/values.yaml
+++ b/xos-services/hippie-oss/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/hippie-oss-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-hippieOSS_synchronizerImage: "xosproject/hippie-oss-synchronizer:master"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/hssdb/Chart.yaml b/xos-services/hssdb/Chart.yaml
index 08c1ec0..be71c23 100644
--- a/xos-services/hssdb/Chart.yaml
+++ b/xos-services/hssdb/Chart.yaml
@@ -16,4 +16,8 @@
 
 name: hssdb
 description: A Helm chart for XOS's "hssdb" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: 1.0.1
+
diff --git a/xos-services/hssdb/templates/_helpers.tpl b/xos-services/hssdb/templates/_helpers.tpl
index 28a0acb..9cadd45 100644
--- a/xos-services/hssdb/templates/_helpers.tpl
+++ b/xos-services/hssdb/templates/_helpers.tpl
@@ -62,11 +62,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.hssdb
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 proxy_ssh:
   enabled: {{ .Values.global.proxySshEnabled }}
diff --git a/xos-services/hssdb/templates/deployment.yaml b/xos-services/hssdb/templates/deployment.yaml
index ece871e..a71be99 100644
--- a/xos-services/hssdb/templates/deployment.yaml
+++ b/xos-services/hssdb/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/hssdb/values.yaml b/xos-services/hssdb/values.yaml
index c412926..410178e 100644
--- a/xos-services/hssdb/values.yaml
+++ b/xos-services/hssdb/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
-
-synchronizerImage: "xosproject/hssdb-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: 'xosproject/hssdb-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -40,6 +41,7 @@
 global:
   proxySshEnabled: true
   proxySshUser: "root"
+  registry: ''
 
 resources: {}
 
diff --git a/xos-services/internetemulator/Chart.yaml b/xos-services/internetemulator/Chart.yaml
index 188d767..95edca9 100644
--- a/xos-services/internetemulator/Chart.yaml
+++ b/xos-services/internetemulator/Chart.yaml
@@ -15,4 +15,8 @@
 
 name: internetemulator
 description: A Helm chart for XOS's "internetemulator" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: 1.0.1
+
diff --git a/xos-services/internetemulator/templates/_helpers.tpl b/xos-services/internetemulator/templates/_helpers.tpl
index 04a008e..13a5e2c 100644
--- a/xos-services/internetemulator/templates/_helpers.tpl
+++ b/xos-services/internetemulator/templates/_helpers.tpl
@@ -62,11 +62,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.internetemulator
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 proxy_ssh:
   enabled: {{ .Values.global.proxySshEnabled }}
diff --git a/xos-services/internetemulator/templates/deployment.yaml b/xos-services/internetemulator/templates/deployment.yaml
index 33e24ce..2e57bbe 100644
--- a/xos-services/internetemulator/templates/deployment.yaml
+++ b/xos-services/internetemulator/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/internetemulator/values.yaml b/xos-services/internetemulator/values.yaml
index 4a21056..48d8ae7 100644
--- a/xos-services/internetemulator/values.yaml
+++ b/xos-services/internetemulator/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
-
-synchronizerImage: "xosproject/internetemulator-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: 'xosproject/internetemulator-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -39,6 +40,7 @@
 global:
   proxySshEnabled: true
   proxySshUser: "root"
+  registry: ''
 
 resources: {}
 
diff --git a/xos-services/vepcservice/Chart.yaml b/xos-services/k8sepcservice/Chart.yaml
similarity index 78%
rename from xos-services/vepcservice/Chart.yaml
rename to xos-services/k8sepcservice/Chart.yaml
index 2d874fd..a8ff283 100644
--- a/xos-services/vepcservice/Chart.yaml
+++ b/xos-services/k8sepcservice/Chart.yaml
@@ -13,6 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-name: vepcservice
-description: A Helm chart for XOS's "vepcservice" service
-version: 1.0.0
+name: k8sepcservice
+description: A Helm chart for XOS's "k8sepcservice" service
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.2
+appVersion: 1.0.2
diff --git a/xos-services/vepcservice/templates/_helpers.tpl b/xos-services/k8sepcservice/templates/_helpers.tpl
similarity index 100%
rename from xos-services/vepcservice/templates/_helpers.tpl
rename to xos-services/k8sepcservice/templates/_helpers.tpl
diff --git a/xos-services/vepcservice/templates/_tosca.tpl b/xos-services/k8sepcservice/templates/_tosca.tpl
similarity index 100%
rename from xos-services/vepcservice/templates/_tosca.tpl
rename to xos-services/k8sepcservice/templates/_tosca.tpl
diff --git a/xos-services/vepcservice/templates/configmap.yaml b/xos-services/k8sepcservice/templates/configmap.yaml
similarity index 100%
rename from xos-services/vepcservice/templates/configmap.yaml
rename to xos-services/k8sepcservice/templates/configmap.yaml
diff --git a/xos-services/vepcservice/templates/deployment.yaml b/xos-services/k8sepcservice/templates/deployment.yaml
similarity index 93%
rename from xos-services/vepcservice/templates/deployment.yaml
rename to xos-services/k8sepcservice/templates/deployment.yaml
index 548c018..c017457 100644
--- a/xos-services/vepcservice/templates/deployment.yaml
+++ b/xos-services/k8sepcservice/templates/deployment.yaml
@@ -36,8 +36,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.vepcservice_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/vepcservice/values.yaml b/xos-services/k8sepcservice/values.yaml
similarity index 82%
rename from xos-services/vepcservice/values.yaml
rename to xos-services/k8sepcservice/values.yaml
index f5a6fda..35ae662 100644
--- a/xos-services/vepcservice/values.yaml
+++ b/xos-services/k8sepcservice/values.yaml
@@ -22,10 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/k8sepcservice-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-vepcservice_synchronizerImage: "xosproject/k8sepcservice-synchronizer:{{ .Chart.Version }}"
-#vepcservice_synchronizerImage: "gopinatht/k8sepcservice-synchronizer:candidate"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/kubernetes/Chart.yaml b/xos-services/kubernetes/Chart.yaml
index e565a0e..1377a99 100644
--- a/xos-services/kubernetes/Chart.yaml
+++ b/xos-services/kubernetes/Chart.yaml
@@ -15,4 +15,10 @@
 
 name: kubernetes
 description: A Helm chart for XOS's "kubernetes" service
-version: 1.0.1-dev
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.4
+appVersion: 1.0.4
+
+
+
diff --git a/xos-services/kubernetes/templates/deployment.yaml b/xos-services/kubernetes/templates/deployment.yaml
index 5c4a96a..83763ca 100644
--- a/xos-services/kubernetes/templates/deployment.yaml
+++ b/xos-services/kubernetes/templates/deployment.yaml
@@ -40,8 +40,8 @@
       serviceAccountName: kubernetes-synchronizer
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.kubernetes_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/kubernetes/values.yaml b/xos-services/kubernetes/values.yaml
index 3b0634b..a1383be 100644
--- a/xos-services/kubernetes/values.yaml
+++ b/xos-services/kubernetes/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/kubernetes-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-kubernetes_synchronizerImage: "xosproject/kubernetes-synchronizer:master"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/mcord-subscriber/Chart.yaml b/xos-services/mcord-subscriber/Chart.yaml
index ab2afd4..01109e5 100644
--- a/xos-services/mcord-subscriber/Chart.yaml
+++ b/xos-services/mcord-subscriber/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: mcord-subscriber
 description: A Helm chart that creates a subscriber for the "mcord" service
-version: 2.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 2.0.1
+appVersion: 2.0.1
diff --git a/xos-services/mcord-subscriber/templates/_helpers.tpl b/xos-services/mcord-subscriber/templates/_helpers.tpl
index 3957742..cf10579 100644
--- a/xos-services/mcord-subscriber/templates/_helpers.tpl
+++ b/xos-services/mcord-subscriber/templates/_helpers.tpl
@@ -62,10 +62,16 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.mcord-subscriber
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 {{- end -}}
diff --git a/xos-services/mcord-subscriber/templates/job.yaml b/xos-services/mcord-subscriber/templates/job.yaml
index ab6051a..6e1ce5e 100644
--- a/xos-services/mcord-subscriber/templates/job.yaml
+++ b/xos-services/mcord-subscriber/templates/job.yaml
@@ -34,8 +34,8 @@
       restartPolicy: Never
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/mcord-subscriber/values.yaml b/xos-services/mcord-subscriber/values.yaml
index 8889d0f..709c506 100644
--- a/xos-services/mcord-subscriber/values.yaml
+++ b/xos-services/mcord-subscriber/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/mcord-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-synchronizerImage: "xosproject/mcord-synchronizer:{{ .Chart.Version }}"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/onos-service/Chart.yaml b/xos-services/onos-service/Chart.yaml
index 248ffbf..8c92ab6 100644
--- a/xos-services/onos-service/Chart.yaml
+++ b/xos-services/onos-service/Chart.yaml
@@ -15,4 +15,5 @@
 
 description: A Helm chart for XOS's "onos-service" service, which configures ONOS
 name: onos-service
-version: 2.0.2-dev
+version: 2.0.5
+appVersion: 2.0.5
diff --git a/xos-services/onos-service/templates/deployment.yaml b/xos-services/onos-service/templates/deployment.yaml
index 967d501..0398ee0 100644
--- a/xos-services/onos-service/templates/deployment.yaml
+++ b/xos-services/onos-service/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.onos_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image:  {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/onos-service/values.yaml b/xos-services/onos-service/values.yaml
index ab52be0..21c4bbe 100644
--- a/xos-services/onos-service/values.yaml
+++ b/xos-services/onos-service/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/onos-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-onos_synchronizerImage: "xosproject/onos-synchronizer:master"
+global:
+  registry: ""
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/openstack/Chart.yaml b/xos-services/openstack/Chart.yaml
index bd187f7..e5d299f 100644
--- a/xos-services/openstack/Chart.yaml
+++ b/xos-services/openstack/Chart.yaml
@@ -15,4 +15,5 @@
 
 name: openstack
 description: A Helm chart for XOS's "openstack" service
-version: 1.0.0
+version: 1.0.1
+appVersion: 1.0.1
diff --git a/xos-services/openstack/templates/_helpers.tpl b/xos-services/openstack/templates/_helpers.tpl
index 7a5e6d4..fdca6e8 100644
--- a/xos-services/openstack/templates/_helpers.tpl
+++ b/xos-services/openstack/templates/_helpers.tpl
@@ -57,11 +57,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.openstack
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 nova:
   ca_ssl_cert: "/etc/ssl/certs/ca-certificates.crt"
diff --git a/xos-services/openstack/templates/deployment.yaml b/xos-services/openstack/templates/deployment.yaml
index 6b985f5..0e94850 100644
--- a/xos-services/openstack/templates/deployment.yaml
+++ b/xos-services/openstack/templates/deployment.yaml
@@ -39,8 +39,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.openstack_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/openstack/values.yaml b/xos-services/openstack/values.yaml
index bf45148..e619da0 100644
--- a/xos-services/openstack/values.yaml
+++ b/xos-services/openstack/values.yaml
@@ -24,7 +24,13 @@
 
 imagePullPolicy: 'Always'
 
-openstack_synchronizerImage: "xosproject/openstack-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: xosproject/openstack-synchronizer
+  tag: "{{ .Chart.AppVersion }}"
+  pullPolicy: Always
+
+global:
+  registry: ""
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/progran/Chart.yaml b/xos-services/progran/Chart.yaml
index 0d386c3..ddf1ad2 100644
--- a/xos-services/progran/Chart.yaml
+++ b/xos-services/progran/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: progran
 description: A Helm chart for XOS's "progran" service
-version: 2.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 2.0.2
+appVersion: 2.0.2
diff --git a/xos-services/progran/templates/_helpers.tpl b/xos-services/progran/templates/_helpers.tpl
index 1ee8fa4..8c2404d 100644
--- a/xos-services/progran/templates/_helpers.tpl
+++ b/xos-services/progran/templates/_helpers.tpl
@@ -62,10 +62,16 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.progran
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 {{- end -}}
diff --git a/xos-services/progran/templates/deployment.yaml b/xos-services/progran/templates/deployment.yaml
index 7671550..e8600cc 100644
--- a/xos-services/progran/templates/deployment.yaml
+++ b/xos-services/progran/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/progran/values.yaml b/xos-services/progran/values.yaml
index e26b6fa..c300941 100644
--- a/xos-services/progran/values.yaml
+++ b/xos-services/progran/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/progran-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-synchronizerImage: "xosproject/progran-synchronizer:{{ .Chart.Version }}"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/rcord/Chart.yaml b/xos-services/rcord/Chart.yaml
index 873db9c..4e33f42 100644
--- a/xos-services/rcord/Chart.yaml
+++ b/xos-services/rcord/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: rcord
 description: A Helm chart for XOS's "rcord" service
-version: 1.1.0-dev
+icon: https://guide.opencord.org/logos/cord.svg
+version: 1.0.4
+
+appVersion: 1.0.4
diff --git a/xos-services/rcord/templates/deployment.yaml b/xos-services/rcord/templates/deployment.yaml
index de345b3..83b7720 100644
--- a/xos-services/rcord/templates/deployment.yaml
+++ b/xos-services/rcord/templates/deployment.yaml
@@ -39,8 +39,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.rcord_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image:  {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/rcord/values.yaml b/xos-services/rcord/values.yaml
index 7d41776..a6e1155 100644
--- a/xos-services/rcord/values.yaml
+++ b/xos-services/rcord/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/rcord-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-rcord_synchronizerImage: "xosproject/rcord-synchronizer:master"
+global:
+  registry: ""
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/sdncontroller/Chart.yaml b/xos-services/sdncontroller/Chart.yaml
index d928666..abbcdb7 100644
--- a/xos-services/sdncontroller/Chart.yaml
+++ b/xos-services/sdncontroller/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: sdncontroller
 description: A Helm chart for XOS's "sdncontroller" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: 1.0.1
diff --git a/xos-services/sdncontroller/templates/_helpers.tpl b/xos-services/sdncontroller/templates/_helpers.tpl
index e573928..cb055ba 100644
--- a/xos-services/sdncontroller/templates/_helpers.tpl
+++ b/xos-services/sdncontroller/templates/_helpers.tpl
@@ -62,11 +62,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.sdncontroller
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 proxy_ssh:
   enabled: {{ .Values.global.proxySshEnabled }}
diff --git a/xos-services/sdncontroller/templates/deployment.yaml b/xos-services/sdncontroller/templates/deployment.yaml
index f28559b..2c886f2 100644
--- a/xos-services/sdncontroller/templates/deployment.yaml
+++ b/xos-services/sdncontroller/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/sdncontroller/values.yaml b/xos-services/sdncontroller/values.yaml
index 64a493a..a9230ef 100644
--- a/xos-services/sdncontroller/values.yaml
+++ b/xos-services/sdncontroller/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
-
-synchronizerImage: "xosproject/sdncontroller-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: 'xosproject/sdncontroller-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -40,6 +41,7 @@
 global:
   proxySshEnabled: true
   proxySshUser: "root"
+  registry: ''
 
 resources: {}
 
diff --git a/xos-services/simpleexampleservice/Chart.yaml b/xos-services/simpleexampleservice/Chart.yaml
index 0a88434..f4bc0ce 100644
--- a/xos-services/simpleexampleservice/Chart.yaml
+++ b/xos-services/simpleexampleservice/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: simpleexampleservice
 description: A Helm chart for XOS's "simpleexampleservice" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: 1.0.1
diff --git a/xos-services/simpleexampleservice/templates/_helpers.tpl b/xos-services/simpleexampleservice/templates/_helpers.tpl
index e898ed7..58a8fe2 100644
--- a/xos-services/simpleexampleservice/templates/_helpers.tpl
+++ b/xos-services/simpleexampleservice/templates/_helpers.tpl
@@ -81,10 +81,16 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.simpleexampleservice
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 {{- end -}}
diff --git a/xos-services/simpleexampleservice/templates/deployment.yaml b/xos-services/simpleexampleservice/templates/deployment.yaml
index 05b69eb..57db355 100644
--- a/xos-services/simpleexampleservice/templates/deployment.yaml
+++ b/xos-services/simpleexampleservice/templates/deployment.yaml
@@ -36,8 +36,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.simpleexampleservice_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/simpleexampleservice/values.yaml b/xos-services/simpleexampleservice/values.yaml
index f985089..69724c6 100644
--- a/xos-services/simpleexampleservice/values.yaml
+++ b/xos-services/simpleexampleservice/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/simpleexampleservice-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-simpleexampleservice_synchronizerImage: "xosproject/simpleexampleservice-synchronizer:{{ .Chart.Version }}"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/vhss/Chart.yaml b/xos-services/vhss/Chart.yaml
index 6de9a24..efe2c4f 100644
--- a/xos-services/vhss/Chart.yaml
+++ b/xos-services/vhss/Chart.yaml
@@ -15,4 +15,8 @@
 
 name: vhss
 description: A Helm chart for XOS's "vhss" service
-version: 1.0.1
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.2
+appVersion: 1.0.2
+
diff --git a/xos-services/vhss/templates/_helpers.tpl b/xos-services/vhss/templates/_helpers.tpl
index bfee549..04bc6db 100644
--- a/xos-services/vhss/templates/_helpers.tpl
+++ b/xos-services/vhss/templates/_helpers.tpl
@@ -62,11 +62,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.vhss
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 proxy_ssh:
   enabled: {{ .Values.global.proxySshEnabled }}
diff --git a/xos-services/vhss/templates/deployment.yaml b/xos-services/vhss/templates/deployment.yaml
index e697547..81fd874 100644
--- a/xos-services/vhss/templates/deployment.yaml
+++ b/xos-services/vhss/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/vhss/values.yaml b/xos-services/vhss/values.yaml
index e188e13..21a18e4 100644
--- a/xos-services/vhss/values.yaml
+++ b/xos-services/vhss/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
-
-synchronizerImage: "xosproject/vhss-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: 'xosproject/vhss-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -40,6 +41,7 @@
 global:
   proxySshEnabled: true
   proxySshUser: "root"
+  registry: ''
 
 resources: {}
 
diff --git a/xos-services/vmme/Chart.yaml b/xos-services/vmme/Chart.yaml
index 9469ede..d3907f3 100644
--- a/xos-services/vmme/Chart.yaml
+++ b/xos-services/vmme/Chart.yaml
@@ -15,4 +15,8 @@
 
 name: vmme
 description: A Helm chart for XOS's "vmme" service
-version: 1.0.1
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.2
+appVersion: 1.0.2
+
diff --git a/xos-services/vmme/templates/_helpers.tpl b/xos-services/vmme/templates/_helpers.tpl
index 318d26a..0e2c541 100644
--- a/xos-services/vmme/templates/_helpers.tpl
+++ b/xos-services/vmme/templates/_helpers.tpl
@@ -62,11 +62,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.vmme
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 proxy_ssh:
   enabled: {{ .Values.global.proxySshEnabled }}
diff --git a/xos-services/vmme/templates/deployment.yaml b/xos-services/vmme/templates/deployment.yaml
index 783084f..e609c52 100644
--- a/xos-services/vmme/templates/deployment.yaml
+++ b/xos-services/vmme/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/vmme/values.yaml b/xos-services/vmme/values.yaml
index b6d6358..2fc8801 100644
--- a/xos-services/vmme/values.yaml
+++ b/xos-services/vmme/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
-
-synchronizerImage: "xosproject/vmme-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: 'xosproject/vmme-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -40,6 +41,7 @@
 global:
   proxySshEnabled: true
   proxySshUser: "root"
+  registry: ''
 
 resources: {}
 
diff --git a/xos-services/volt/Chart.yaml b/xos-services/volt/Chart.yaml
index f432ea8..cf235e9 100644
--- a/xos-services/volt/Chart.yaml
+++ b/xos-services/volt/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: volt
 description: A Helm chart for XOS's "olt-service" service
-version: 2.0.2-dev
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 2.1.1
+appVersion: 2.1.1
diff --git a/xos-services/volt/templates/deployment.yaml b/xos-services/volt/templates/deployment.yaml
index eb20190..dee6e15 100644
--- a/xos-services/volt/templates/deployment.yaml
+++ b/xos-services/volt/templates/deployment.yaml
@@ -39,8 +39,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.volt_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/volt/values.yaml b/xos-services/volt/values.yaml
index 52cd1df..b5023e1 100644
--- a/xos-services/volt/values.yaml
+++ b/xos-services/volt/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/volt-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-volt_synchronizerImage: "xosproject/volt-synchronizer:master"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/vrouter/Chart.yaml b/xos-services/vrouter/Chart.yaml
index 195b125..a20efd4 100644
--- a/xos-services/vrouter/Chart.yaml
+++ b/xos-services/vrouter/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: vrouter
 description: A Helm chart for XOS's "vRouter" service
-version: 2.0.1-dev
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 2.0.3
+appVersion: 2.0.3
diff --git a/xos-services/vrouter/templates/deployment.yaml b/xos-services/vrouter/templates/deployment.yaml
index f04837e..9cfcc8d 100644
--- a/xos-services/vrouter/templates/deployment.yaml
+++ b/xos-services/vrouter/templates/deployment.yaml
@@ -39,8 +39,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.vrouter_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/vrouter/values.yaml b/xos-services/vrouter/values.yaml
index 5264a2c..0bfd1cf 100644
--- a/xos-services/vrouter/values.yaml
+++ b/xos-services/vrouter/values.yaml
@@ -22,9 +22,14 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
 
-vrouter_synchronizerImage: "xosproject/vrouter-synchronizer:master"
+image:
+  repository: 'xosproject/vrouter-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
+
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/vsg-hw/Chart.yaml b/xos-services/vsg-hw/Chart.yaml
index d7346b7..40bf934 100644
--- a/xos-services/vsg-hw/Chart.yaml
+++ b/xos-services/vsg-hw/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: vsg-hw
 description: A Helm chart for XOS's "vsg-hw" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: 1.0.1
diff --git a/xos-services/vsg-hw/templates/_helpers.tpl b/xos-services/vsg-hw/templates/_helpers.tpl
index 39e80cb..facf592 100644
--- a/xos-services/vsg-hw/templates/_helpers.tpl
+++ b/xos-services/vsg-hw/templates/_helpers.tpl
@@ -62,10 +62,16 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.vsg-hw
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 {{- end -}}
diff --git a/xos-services/vsg-hw/templates/deployment.yaml b/xos-services/vsg-hw/templates/deployment.yaml
index ba7fe62..696ba93 100644
--- a/xos-services/vsg-hw/templates/deployment.yaml
+++ b/xos-services/vsg-hw/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.vsg_hw_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/vsg-hw/values.yaml b/xos-services/vsg-hw/values.yaml
index 43b15fa..5fe50a1 100644
--- a/xos-services/vsg-hw/values.yaml
+++ b/xos-services/vsg-hw/values.yaml
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/vsg-hw-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-vsg_hw_synchronizerImage: "xosproject/vsg-hw-synchronizer:{{ .Chart.Version }}"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-services/vspgwc/Chart.yaml b/xos-services/vspgwc/Chart.yaml
index 5314b07..251ea2a 100644
--- a/xos-services/vspgwc/Chart.yaml
+++ b/xos-services/vspgwc/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: vspgwc
 description: A Helm chart for XOS's "vspgwc" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: 1.0.1
diff --git a/xos-services/vspgwc/templates/_helpers.tpl b/xos-services/vspgwc/templates/_helpers.tpl
index 340742b..8cc7bd0 100644
--- a/xos-services/vspgwc/templates/_helpers.tpl
+++ b/xos-services/vspgwc/templates/_helpers.tpl
@@ -62,11 +62,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.vspgwc
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 proxy_ssh:
   enabled: {{ .Values.global.proxySshEnabled }}
diff --git a/xos-services/vspgwc/templates/deployment.yaml b/xos-services/vspgwc/templates/deployment.yaml
index 061191a..76a517d 100644
--- a/xos-services/vspgwc/templates/deployment.yaml
+++ b/xos-services/vspgwc/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/vspgwc/values.yaml b/xos-services/vspgwc/values.yaml
index e4f627d..8fca902 100644
--- a/xos-services/vspgwc/values.yaml
+++ b/xos-services/vspgwc/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
-
-synchronizerImage: "xosproject/vspgwc-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: 'xosproject/vspgwc-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -40,6 +41,7 @@
 global:
   proxySshEnabled: true
   proxySshUser: "root"
+  registry: ''
 
 resources: {}
 
diff --git a/xos-services/vspgwu/Chart.yaml b/xos-services/vspgwu/Chart.yaml
index 40f5bb8..9cee6e7 100644
--- a/xos-services/vspgwu/Chart.yaml
+++ b/xos-services/vspgwu/Chart.yaml
@@ -15,4 +15,7 @@
 
 name: vspgwu
 description: A Helm chart for XOS's "vspgwu" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: 1.0.1
diff --git a/xos-services/vspgwu/templates/_helpers.tpl b/xos-services/vspgwu/templates/_helpers.tpl
index b017551..242c329 100644
--- a/xos-services/vspgwu/templates/_helpers.tpl
+++ b/xos-services/vspgwu/templates/_helpers.tpl
@@ -62,11 +62,17 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.vspgwu
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 blueprints:
   - name: cord_5_0_blueprint
diff --git a/xos-services/vspgwu/templates/deployment.yaml b/xos-services/vspgwu/templates/deployment.yaml
index 3f1d49f..a6d3bdc 100644
--- a/xos-services/vspgwu/templates/deployment.yaml
+++ b/xos-services/vspgwu/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/vspgwu/values.yaml b/xos-services/vspgwu/values.yaml
index 3afd361..9a41837 100644
--- a/xos-services/vspgwu/values.yaml
+++ b/xos-services/vspgwu/values.yaml
@@ -22,9 +22,10 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
-
-synchronizerImage: "xosproject/vspgwu-synchronizer:{{ .Chart.Version }}"
+image:
+  repository: 'xosproject/vspgwu-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
@@ -40,6 +41,7 @@
 global:
   proxySshEnabled: true
   proxySshUser: "root"
+  registry: ''
 
 resources: {}
 
diff --git a/xos-services/vtn-service/Chart.yaml b/xos-services/vtn-service/Chart.yaml
index aa8b039..d6097fd 100644
--- a/xos-services/vtn-service/Chart.yaml
+++ b/xos-services/vtn-service/Chart.yaml
@@ -15,4 +15,8 @@
 
 name: vtn-service
 description: A Helm chart for XOS's "vtn-service" service
-version: 1.0.0
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: 1.0.1
+
diff --git a/xos-services/vtn-service/templates/_helpers.tpl b/xos-services/vtn-service/templates/_helpers.tpl
index ee8abf6..22e1457 100644
--- a/xos-services/vtn-service/templates/_helpers.tpl
+++ b/xos-services/vtn-service/templates/_helpers.tpl
@@ -62,10 +62,16 @@
       filename: /var/log/xos.log
       maxBytes: 10485760
       backupCount: 5
+    kafka:
+      class: kafkaloghandler.kafkaloghandler.KafkaLogHandler
+      bootstrap_servers:
+        - "cord-kafka:9092"
+      topic: xos.log.vtn-service
   loggers:
     'multistructlog':
       handlers:
         - console
         - file
+        - kafka
       level: DEBUG
 {{- end -}}
diff --git a/xos-services/vtn-service/templates/deployment.yaml b/xos-services/vtn-service/templates/deployment.yaml
index d18dcc4..ccecd3a 100644
--- a/xos-services/vtn-service/templates/deployment.yaml
+++ b/xos-services/vtn-service/templates/deployment.yaml
@@ -38,8 +38,8 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ tpl .Values.vtn_synchronizerImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-services/vtn-service/values.yaml b/xos-services/vtn-service/values.yaml
index 6c25d21..f15fd29 100644
--- a/xos-services/vtn-service/values.yaml
+++ b/xos-services/vtn-service/values.yaml
@@ -13,7 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for TTN
+# Default values for VTN
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
@@ -22,9 +22,13 @@
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: 'Always'
+image:
+  repository: 'xosproject/vtn-synchronizer'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-vtn_synchronizerImage: "xosproject/vtn-synchronizer:{{ .Chart.Version }}"
+global:
+  registry: ''
 
 xosAdminUser: "admin@opencord.org"
 xosAdminPassword: "letmein"
diff --git a/xos-tools/kafkacat/Chart.yaml b/xos-tools/kafkacat/Chart.yaml
index dadfad4..39e9fb5 100644
--- a/xos-tools/kafkacat/Chart.yaml
+++ b/xos-tools/kafkacat/Chart.yaml
@@ -15,4 +15,9 @@
 
 name: kafkacat
 description: A Helm chart for kafkacat
-version: 1.0.0-dev
+icon: https://kafka.apache.org/images/logo.png
+
+version: 1.0.0
+
+# version of confluentinc/cp-kafkacat container
+appVersion: 4.1.2
diff --git a/xos-tools/kafkacat/templates/deployment.yaml b/xos-tools/kafkacat/templates/deployment.yaml
index 5a16db5..de219c9 100644
--- a/xos-tools/kafkacat/templates/deployment.yaml
+++ b/xos-tools/kafkacat/templates/deployment.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -37,6 +36,6 @@
     spec:
       containers:
         - name: kafkacat
-          image: {{ tpl .Values.kafkacatImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           command: ["/bin/bash", "-c", "sleep 86400"]
diff --git a/xos-tools/kafkacat/values.yaml b/xos-tools/kafkacat/values.yaml
index ae6d055..6b96e1b 100644
--- a/xos-tools/kafkacat/values.yaml
+++ b/xos-tools/kafkacat/values.yaml
@@ -19,11 +19,16 @@
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
 imagePullPolicy: Always
 
-kafkacatImage: "confluentinc/cp-kafkacat:4.0.2"
+image:
+  repository: 'confluentinc/cp-kafkacat'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
+
+global:
+  registry: ''
+
diff --git a/xos-tools/xossh/Chart.yaml b/xos-tools/xossh/Chart.yaml
index 22858d3..814a6bb 100644
--- a/xos-tools/xossh/Chart.yaml
+++ b/xos-tools/xossh/Chart.yaml
@@ -15,4 +15,8 @@
 
 name: xossh
 description: A Helm chart for xossh, the XOS command line shell
-version: 2.1.0-dev
+icon: https://guide.opencord.org/logos/xos.svg
+version: 2.1.15
+
+# Runs the xosproject/xos-client container
+appVersion: 2.1.15
diff --git a/xos-tools/xossh/templates/deployment.yaml b/xos-tools/xossh/templates/deployment.yaml
index 0e9540a..44af9ff 100644
--- a/xos-tools/xossh/templates/deployment.yaml
+++ b/xos-tools/xossh/templates/deployment.yaml
@@ -47,8 +47,8 @@
                - "{{ .Values.xosshConfig.accessor.endpoint }}"
           stdin: true
           tty: true
-          image: {{ tpl .Values.xosshImage . | quote }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
diff --git a/xos-tools/xossh/values.yaml b/xos-tools/xossh/values.yaml
index 2ae231d..e8d03b8 100644
--- a/xos-tools/xossh/values.yaml
+++ b/xos-tools/xossh/values.yaml
@@ -19,14 +19,16 @@
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-imagePullPolicy: Always
+image:
+  repository: 'xosproject/xos-client'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
 
-xosshImage: "xosproject/xos-client:master"
+global:
+  registry: ''
 
 resources: {}