For non-XOS charts, use a global registry var, split docker image name/tag/pullPolicy

Change-Id: Icffc569e2c152e0b413f4c7b7d9a546bd9a3ef58
diff --git a/abstract-olt/Chart.yaml b/abstract-olt/Chart.yaml
index 3074027..1f46dfd 100644
--- a/abstract-olt/Chart.yaml
+++ b/abstract-olt/Chart.yaml
@@ -13,7 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-appVersion: latest
-description: A Helm chart for SEBA's Abstract OLT layer
 name: abstract-olt
+description: A Helm chart for SEBA's Abstract OLT layer
+icon: https://guide.opencord.org/logos/cord.svg
+
 version: 0.1.0
+appVersion: latest
diff --git a/abstract-olt/templates/deployment.yaml b/abstract-olt/templates/deployment.yaml
index 840edb5..aedc737 100644
--- a/abstract-olt/templates/deployment.yaml
+++ b/abstract-olt/templates/deployment.yaml
@@ -40,7 +40,7 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}"
+          image: "{{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           command: ["/app/AbstractOLT", "-log_file", "/dev/stdout"]
           resources:
diff --git a/abstract-olt/values.yaml b/abstract-olt/values.yaml
index 1ef023c..ce34037 100644
--- a/abstract-olt/values.yaml
+++ b/abstract-olt/values.yaml
@@ -23,6 +23,9 @@
   tag: '{{ .Chart.AppVersion }}'
   pullPolicy: Always
 
+global:
+  registry: ''
+
 service:
   type: NodePort
   grpcPort: 31777
@@ -36,4 +39,4 @@
 
 affinity: {}
 
-annotations: {}
\ No newline at end of file
+annotations: {}
diff --git a/configs/onos-voltha.yaml b/configs/onos-debug.yaml
similarity index 62%
rename from configs/onos-voltha.yaml
rename to configs/onos-debug.yaml
index 69b95ed..dc80621 100644
--- a/configs/onos-voltha.yaml
+++ b/configs/onos-debug.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,31 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Expose ONOS services using NodePorts, for onos-voltha configuration
+# Enabled debugging for ONOS services
 #
-# helm install onos -f configs/onos-voltha.yaml -n onos-voltha
-
-nameOverride: "onos"
-fullnameOverride: "onos"
-
-onosImage: 'voltha/voltha-onos:latest'
-
-services:
-  openflowServiceType: NodePort
-  ovsdbServiceType: ClusterIP
-  sshServiceType: NodePort
-  uiServiceType: NodePort
-  openflow:
-    nodePort: 31653
-  ssh:
-    nodePort: 30115
-  ui:
-    nodePort: 30120
-  debugger:
-    nodePort: 30555
-
-
-xos_service_label: ONOS
+# helm install onos -f configs/onos-debug.yaml -n onos
 
 onos_env:
 - name: POD_IP
@@ -51,3 +28,8 @@
     fieldPath: metadata.namespace
 - name: ONOS_APPS
   value: "drivers,openflow-base"
+
+application_logs: |
+  log4j.logger.org.opencord.olt = DEBUG
+  log4j.logger.org.opencord.kafka = DEBUG
+  log4j.logger.org.opencord.sadis = DEBUG
diff --git a/configs/onos.yaml b/configs/onos.yaml
index 9b8bd7e..4d35c40 100644
--- a/configs/onos.yaml
+++ b/configs/onos.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,31 +13,9 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Expose ONOS services using NodePorts, for onos-voltha configuration
+# configure ONOS
 #
-# helm install onos -f configs/onos-voltha.yaml -n onos-voltha
-
-nameOverride: "onos"
-fullnameOverride: "onos"
-
-onosImage: 'onosproject/onos:1.13.5'
-
-services:
-  openflowServiceType: NodePort
-  ovsdbServiceType: ClusterIP
-  sshServiceType: NodePort
-  uiServiceType: NodePort
-  openflow:
-    nodePort: 31653
-  ssh:
-    nodePort: 30115
-  ui:
-    nodePort: 30120
-  debugger:
-    nodePort: 30555
-
-
-xos_service_label: ONOS
+# helm install onos -f configs/onos.yaml -n onos
 
 onos_env:
 - name: POD_IP
diff --git a/configs/seba-ponsim-latest.yaml b/configs/seba-ponsim-latest.yaml
index 7f9a987..13d2d0d 100644
--- a/configs/seba-ponsim-latest.yaml
+++ b/configs/seba-ponsim-latest.yaml
@@ -34,6 +34,22 @@
   tosca_loader:
     tag: 'master'
 
+# VOLTHA
+  vcore:
+    tag: 'latest'
+  vcli:
+    tag: 'latest'
+  ofagent:
+    tag: 'latest'
+  netconf:
+    tag: 'latest'
+  envoy_for_etcd:
+    tag: 'latest'
+  alarm_generator:
+    tag: 'latest'
+  freeradius:
+    tag: 'latest'
+
 # Ponsimv2
   olt:
     repository: "voltha/voltha-ponsim"
@@ -73,12 +89,3 @@
   image:
     tag: 'master'
 
-
-# VOLTHA
-vcoreImage: "voltha/voltha-voltha:latest"
-envoyForEtcdImage: 'voltha/voltha-envoy:latest'
-freeradiusImage: 'tpdock/freeradius:latest'
-netconfImage: 'voltha/voltha-netconf:latest'
-ofagentImage: 'voltha/voltha-ofagent:latest'
-vcliImage: 'voltha/voltha-cli:latest'
-
diff --git a/configs/seba-ponsim.yaml b/configs/seba-ponsim.yaml
index 9ec215c..b7325e6 100644
--- a/configs/seba-ponsim.yaml
+++ b/configs/seba-ponsim.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -17,6 +16,7 @@
 # Values file for deploying SEBA with Ponsim
 # Use this file to deploy the service versions speecified in the Helm charts.
 
+# voltha
 etcd-operator:
   etcdCluster:
     size: 1
diff --git a/dhcp-server/Chart.yaml b/dhcp-server/Chart.yaml
index 844e777..6a1ea18 100644
--- a/dhcp-server/Chart.yaml
+++ b/dhcp-server/Chart.yaml
@@ -14,3 +14,4 @@
 
 name: dhcp-server
 version: 1.0.0
+appVersion: 'latest'
diff --git a/dhcp-server/templates/deployment.yaml b/dhcp-server/templates/deployment.yaml
index 95a3b03..4a63279 100644
--- a/dhcp-server/templates/deployment.yaml
+++ b/dhcp-server/templates/deployment.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -27,8 +28,8 @@
     spec:
       containers:
         - name: dhcp-server
-          image: {{ .Values.dhcpServerImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           #command: ["/bin/bash", "-", "sleep 86400"]
           ports:
             - containerPort: 67
diff --git a/dhcp-server/values.yaml b/dhcp-server/values.yaml
index b0c8bb9..7ac1ba7 100644
--- a/dhcp-server/values.yaml
+++ b/dhcp-server/values.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,13 +15,18 @@
 
 # helm install dhcp-server -n dhcp-server
 
-dhcpServerImage: 'networkboot/dhcpd:latest'
-imagePullPolicy: Always
+image:
+  repository: 'networkboot/dhcpd'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
+
+global:
+  registry: ''
 
 config: |
 
   subnet 10.233.0.0 netmask 255.255.0.0 {
-    range 10.233.0.1 10.233.0.2; 
+    range 10.233.0.1 10.233.0.2;
   }
   subnet 10.200.0.0 netmask 255.255.0.0 {
     range 10.200.0.1 10.200.0.253;
diff --git a/examples/onos-nodeport-values.yaml b/examples/onos-nodeport-values.yaml
index 73aef5e..8745474 100644
--- a/examples/onos-nodeport-values.yaml
+++ b/examples/onos-nodeport-values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/examples/xossh-candidate.yaml b/examples/xossh-candidate.yaml
index c184c49..a3446b1 100644
--- a/examples/xossh-candidate.yaml
+++ b/examples/xossh-candidate.yaml
@@ -13,6 +13,7 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# tools
-xosshImage: 'xosproject/xos-client:candidate'
-imagePullPolicy: 'IfNotPresent'
\ No newline at end of file
+# Use locally created xos-client container with xos-tools/xossh chart
+image:
+  tag: 'candidate'
+  pullPolicy: 'IfNotPresent'
diff --git a/mavenrepo/Chart.yaml b/mavenrepo/Chart.yaml
index c22a136..40351d4 100644
--- a/mavenrepo/Chart.yaml
+++ b/mavenrepo/Chart.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -13,4 +14,7 @@
 # limitations under the License.
 
 name: mavenrepo
+icon: https://guide.opencord.org/logos/cord.svg
 version: 1.0.0
+
+appVersion: 'latest'
diff --git a/mavenrepo/templates/deployment.yaml b/mavenrepo/templates/deployment.yaml
index 4de9fb7..a222c06 100644
--- a/mavenrepo/templates/deployment.yaml
+++ b/mavenrepo/templates/deployment.yaml
@@ -28,8 +28,8 @@
     spec:
       containers:
         - name: mavenrepo
-          image: {{ .Values.mavenRepoImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+          imagePullPolicy: {{ .Values.image.pullPolicy }}
           ports:
             - containerPort: 80
               port: 80
diff --git a/mavenrepo/values.yaml b/mavenrepo/values.yaml
index 9dc7975..f5bdd17 100644
--- a/mavenrepo/values.yaml
+++ b/mavenrepo/values.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,8 +15,13 @@
 
 # helm install mavenrepo -n mavenrepo
 
-mavenRepoImage: 'opencord/mavenrepo:latest'
-imagePullPolicy: Always
+image:
+  repository: 'opencord/mavenrepo'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
+
+global:
+  registry: ''
 
 nameOverride: ""
 fullnameOverride: ""
diff --git a/onos/Chart.yaml b/onos/Chart.yaml
index 7c34bc5..bc9c725 100644
--- a/onos/Chart.yaml
+++ b/onos/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 Kubernetes
 name: onos
-version: 0.1.0
+description: Open Network Operating System
+version: 1.1.0
+icon: https://guide.opencord.org/logos/onos.svg
+appVersion: 1.13.5
+
diff --git a/onos/templates/deployment.yaml b/onos/templates/deployment.yaml
index 415ecff..f463c1d 100644
--- a/onos/templates/deployment.yaml
+++ b/onos/templates/deployment.yaml
@@ -45,8 +45,8 @@
       serviceAccountName: {{ .Values.serviceAccountName }}
       containers:
         - name: {{ .Chart.Name }}
-          image: {{ .Values.onosImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image:  "{{ .Values.global.registry }}{{ .Values.images.onos.repository }}:{{ tpl .Values.images.onos.tag . }}"
+          imagePullPolicy: {{ .Values.images.onos.pullPolicy }}
           command: ["./bin/onos-service", "server", "debug"]
           env:
 {{ toYaml .Values.onos_env | indent 12 }}
diff --git a/onos/values.yaml b/onos/values.yaml
index b9e912e..f92094a 100644
--- a/onos/values.yaml
+++ b/onos/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,16 +13,17 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for onos.
+# Default values for ONOS
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
 replicaCount: 1
 
-imagePullPolicy: Always
-onosImage: 'onosproject/onos:1.13.5'
-
 images:
+  onos:
+    repository: 'onosproject/onos'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
 
   # keep in sync with: https://github.com/helm/charts/blob/master/stable/filebeat/values.yaml
   log_agent:
@@ -38,33 +38,56 @@
   enabled: True
   kafka_brokers: ['cord-kafka:9092']
 
-nameOverride: ""
-fullnameOverride: ""
+nameOverride: ''
+fullnameOverride: ''
+
+xos_service_label: ONOS
 
 namespace: default
 serviceAccountName: default
 
 services:
-  openflowServiceType: ClusterIP
-  ovsdbServiceType: ClusterIP
-  sshServiceType: ClusterIP
-  uiServiceType: ClusterIP
-  debuggerServiceType: NodePort
-  ovsdb:
-    port: 6640
+  openflowServiceType: NodePort
   openflow:
     port: 6653
+    nodePort: 31653
+
+  sshServiceType: NodePort
   ssh:
     port: 8101
+    nodePort: 30115
+
+  uiServiceType: NodePort
   ui:
     port: 8181
+    nodePort: 30120
+
+  debuggerServiceType: NodePort
   debugger:
     port: 5005
+    nodePort: 30555
+
+  ovsdbServiceType: ClusterIP
+  ovsdb:
+    port: 6640
+
   cluster:
     port: 9876
 
 onos_env: []
 
+# onos_env:
+#   - name: POD_IP
+#     valueFrom:
+#     fieldRef:
+#       fieldPath: status.podIP
+#   - name: NAMESPACE
+#     valueFrom:
+#     fieldRef:
+#       fieldPath: metadata.namespace
+#   - name: ONOS_APPS
+#     value: "drivers,openflow-base"
+
 resources: {}
 
 nodeSelector: {}
@@ -73,6 +96,4 @@
 
 affinity: {}
 
-xos_service_label: ""
-
-application_logs: ""
+application_logs: ''
diff --git a/ponsimv2/Chart.yaml b/ponsimv2/Chart.yaml
index 3ae73cc..46b3498 100644
--- a/ponsimv2/Chart.yaml
+++ b/ponsimv2/Chart.yaml
@@ -14,4 +14,10 @@
 # limitations under the License.
 
 name: ponsimv2
-version: 1.0.0
+description: PON Simulator
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+
+# VOLTHA version
+appVersion: 1.5.0
diff --git a/ponsimv2/templates/olt.yaml b/ponsimv2/templates/olt.yaml
index 626d992..6a7b6c3 100644
--- a/ponsimv2/templates/olt.yaml
+++ b/ponsimv2/templates/olt.yaml
@@ -44,7 +44,8 @@
      spec:
        containers:
          - name: olt
-           image: {{ .Values.pull_docker_registry }}{{ .Values.images.olt.repository }}:{{ .Values.images.olt.tag }}
+           image: {{ .Values.global.registry }}{{ .Values.images.olt.repository }}:{{ tpl .Values.images.olt.tag . }}
+           imagePullPolicy: {{ .Values.images.olt.pullPolicy }}
            env:
              - name: POD_IP
                valueFrom:
diff --git a/ponsimv2/templates/onu.yaml b/ponsimv2/templates/onu.yaml
index 824272d..b29fc33 100644
--- a/ponsimv2/templates/onu.yaml
+++ b/ponsimv2/templates/onu.yaml
@@ -54,10 +54,11 @@
                   values:
                   - rg
               topologyKey: kubernetes.io/hostname
-            
+
        containers:
          - name: onu
-           image: {{ .Values.pull_docker_registry }}{{ .Values.images.onu.repository }}:{{ .Values.images.onu.tag }}
+           image: {{ .Values.global.registry }}{{ .Values.images.onu.repository }}:{{ tpl .Values.images.onu.tag . }}
+           imagePullPolicy: {{ .Values.images.onu.pullPolicy }}
            env:
              - name: POD_IP
                valueFrom:
diff --git a/ponsimv2/templates/rg.yaml b/ponsimv2/templates/rg.yaml
index 8af75d7..ba4f840 100644
--- a/ponsimv2/templates/rg.yaml
+++ b/ponsimv2/templates/rg.yaml
@@ -41,7 +41,8 @@
               topologyKey: kubernetes.io/hostname
        containers:
          - name: rg
-           image: {{ .Values.pull_docker_registry }}{{ .Values.images.rg.repository }}:{{ .Values.images.rg.tag }}
+           image: {{ .Values.global.registry }}{{ .Values.images.rg.repository }}:{{ tpl .Values.images.rg.tag . }}
+           imagePullPolicy: {{ .Values.images.rg.pullPolicy }}
            env:
              - name: POD_IP
                valueFrom:
diff --git a/ponsimv2/values.yaml b/ponsimv2/values.yaml
index 1abf264..9fa6c0a 100644
--- a/ponsimv2/values.yaml
+++ b/ponsimv2/values.yaml
@@ -13,25 +13,24 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-pull_docker_registry:
-
 images:
   olt:
-    repository: voltha/voltha-ponsim
-    tag: 'latest'
+    repository: 'voltha/voltha-ponsim'
+    tag: '{{ .Chart.AppVersion }}'
     pullPolicy: 'Always'
   onu:
-    repository: voltha/voltha-ponsim
-    tag: 'latest'
+    repository: 'voltha/voltha-ponsim'
+    tag: '{{ .Chart.AppVersion }}'
     pullPolicy: 'Always'
   rg:
-    repository: voltha/voltha-tester
-    tag: 'latest'
+    repository: 'voltha/voltha-tester'
+    tag: '{{ .Chart.AppVersion }}'
     pullPolicy: 'Always'
   pon0:
-    repository: gopinatht/pon0-network
+    repository: 'gopinatht/pon0-network'
     tag: 'latest'
     pullPolicy: 'Always'
-  
+
 global:
   namespace: voltha
+  registry: ''
diff --git a/storage/rook-tools/Chart.yaml b/storage/rook-tools/Chart.yaml
index 335a61c..7d34ce3 100644
--- a/storage/rook-tools/Chart.yaml
+++ b/storage/rook-tools/Chart.yaml
@@ -13,7 +13,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-description: Toolbox for debuging Rook's Ceph storage
 name: rook-tools
+description: Toolbox for debuging Rook's Ceph storage
 version: 0.1.0-dev0
 
+appVersion: 'v0.8.1'
diff --git a/storage/rook-tools/templates/toolbox.yaml b/storage/rook-tools/templates/toolbox.yaml
index be5db7b..0b14243 100644
--- a/storage/rook-tools/templates/toolbox.yaml
+++ b/storage/rook-tools/templates/toolbox.yaml
@@ -22,8 +22,8 @@
   dnsPolicy: ClusterFirstWithHostNet
   containers:
   - name: rook-ceph-tools
-    image: {{ .Values.rookCephToolsImage | quote }}
-    imagePullPolicy: {{ .Values.imagePullPolicy }}
+    image: {{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}
+    imagePullPolicy: {{ .Values.image.pullPolicy }}
     env:
       - name: ROOK_ADMIN_SECRET
         valueFrom:
diff --git a/storage/rook-tools/values.yaml b/storage/rook-tools/values.yaml
index 468e300..5fafd08 100644
--- a/storage/rook-tools/values.yaml
+++ b/storage/rook-tools/values.yaml
@@ -17,7 +17,11 @@
 
 rookClusterNamespace: 'rook-ceph'
 
-rookCephToolsImage: 'rook/ceph-toolbox:v0.8.1'
+image:
+  repository: 'rook/ceph-toolbox'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'IfNotPresent'
 
-imagePullPolicy: 'IfNotPresent'
+global:
+  registry: ''
 
diff --git a/ves-agent/Chart.yaml b/ves-agent/Chart.yaml
index fd16f1a..5f97dd0 100644
--- a/ves-agent/Chart.yaml
+++ b/ves-agent/Chart.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2018- Cisco
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,9 +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 Kubernetes
 name: ves-agent
-version: 0.1.0
+description: A Helm chart for Kubernetes
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.0
+appVersion: 1.0.0
diff --git a/ves-agent/templates/deployment.yaml b/ves-agent/templates/deployment.yaml
index 81949bd..ff9d4a9 100644
--- a/ves-agent/templates/deployment.yaml
+++ b/ves-agent/templates/deployment.yaml
@@ -35,7 +35,7 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
+          image: "{{ .Values.global.registry }}{{ .Values.image.repository }}:{{ tpl .Values.image.tag . }}"
           imagePullPolicy: {{ .Values.image.pullPolicy }}
           ports:
             - name: http
diff --git a/ves-agent/values.yaml b/ves-agent/values.yaml
index 13bf8d9..137031c 100644
--- a/ves-agent/values.yaml
+++ b/ves-agent/values.yaml
@@ -16,9 +16,12 @@
 nameOverride: ""
 
 image:
-  repository: registry.hub.docker.com/opencord/ves-agent
-  tag: 1.0.0
-  pullPolicy: Always
+  repository: 'opencord/ves-agent'
+  tag: '{{ .Chart.AppVersion }}'
+  pullPolicy: 'Always'
+
+global:
+  registry: ''
 
 co_id: test_co
 pod_id: test_pod
diff --git a/voltha/Chart.yaml b/voltha/Chart.yaml
index ba6029f..d0d7977 100644
--- a/voltha/Chart.yaml
+++ b/voltha/Chart.yaml
@@ -13,5 +13,8 @@
 # limitations under the License.
 
 name: voltha
-version: 1.0.0
 description: A Helm chart for Voltha based on K8S resources in Voltha project
+icon: https://guide.opencord.org/logos/cord.svg
+
+version: 1.0.1
+appVersion: latest
diff --git a/voltha/requirements.yaml b/voltha/requirements.yaml
index 2f6a091..b4f3bdc 100644
--- a/voltha/requirements.yaml
+++ b/voltha/requirements.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
diff --git a/voltha/templates/10-default-backend.yaml b/voltha/templates/10-default-backend.yaml
index 5b2cdb8..6ada98f 100644
--- a/voltha/templates/10-default-backend.yaml
+++ b/voltha/templates/10-default-backend.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -32,7 +33,8 @@
         # Any image is permissable as long as:
         # 1. It serves a 404 page at /
         # 2. It serves 200 on a /healthz endpoint
-        image: {{ .Values.httpBackendImage }}
+        image: {{ .Values.global.registry }}{{ .Values.images.http_backend.repository }}:{{ tpl .Values.images.http_backend.tag . }}
+        imagePullPolicy: {{ .Values.images.http_backend.pullPolicy }}
         livenessProbe:
           httpGet:
             path: /healthz
diff --git a/voltha/templates/60-cluster-ingress-nginx.yaml b/voltha/templates/60-cluster-ingress-nginx.yaml
index 839f4a4..62fba3f 100644
--- a/voltha/templates/60-cluster-ingress-nginx.yaml
+++ b/voltha/templates/60-cluster-ingress-nginx.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -43,7 +44,8 @@
           privileged: true
       containers:
         - name: nginx-ingress-controller
-          image: {{ .Values.ingressControllerImage }}
+          image: {{ .Values.global.registry }}{{ .Values.images.ingress_controller.repository }}:{{ tpl .Values.images.ingress_controller.tag . }}
+          imagePullPolicy: {{ .Values.images.ingress_controller.pullPolicy }}
           args:
             - /nginx-ingress-controller
             - --default-backend-service=$(POD_NAMESPACE)/default-http-backend
diff --git a/voltha/templates/alarm-generator.yaml b/voltha/templates/alarm-generator.yaml
index cef01ac..f5ef095 100644
--- a/voltha/templates/alarm-generator.yaml
+++ b/voltha/templates/alarm-generator.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -31,8 +32,8 @@
       serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
       containers:
         - name: alarm-generator
-          image: {{ .Values.alarmGeneratorImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.alarm_generator.repository }}:{{ tpl .Values.images.alarm_generator.tag . }}
+          imagePullPolicy: {{ .Values.images.alarm_generator.pullPolicy }}
           env:
             - name: POD_IP
               valueFrom:
diff --git a/voltha/templates/envoy_for_etcd.yaml b/voltha/templates/envoy_for_etcd.yaml
index 4869682..92092bc 100644
--- a/voltha/templates/envoy_for_etcd.yaml
+++ b/voltha/templates/envoy_for_etcd.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -41,8 +42,8 @@
       serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
       containers:
         - name: voltha
-          image: {{ .Values.envoyForEtcdImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.envoy_for_etcd.repository }}:{{ tpl .Values.images.envoy_for_etcd.tag . }}
+          imagePullPolicy: {{ .Values.images.envoy_for_etcd.pullPolicy }}
           env:
             - name: POD_IP
               valueFrom:
diff --git a/voltha/templates/freeradius.yaml b/voltha/templates/freeradius.yaml
index 268c047..8f9eaea 100644
--- a/voltha/templates/freeradius.yaml
+++ b/voltha/templates/freeradius.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -55,8 +56,8 @@
       serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
       containers:
         - name: freeradius
-          image: {{ .Values.freeradiusImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.freeradius.repository }}:{{ tpl .Values.images.freeradius.tag . }}
+          imagePullPolicy: {{ .Values.images.freeradius.pullPolicy }}
           env:
             - name: POD_IP
               valueFrom:
diff --git a/voltha/templates/netconf.yaml b/voltha/templates/netconf.yaml
index 52989b8..7aa571b 100644
--- a/voltha/templates/netconf.yaml
+++ b/voltha/templates/netconf.yaml
@@ -46,8 +46,8 @@
       terminationGracePeriodSeconds: 10
       containers:
         - name: netconf
-          image: {{ .Values.netconfImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.netconf.repository }}:{{ tpl .Values.images.netconf.tag . }}
+          imagePullPolicy: {{ .Values.images.netconf.pullPolicy }}
           ports:
             - containerPort: 830
           env:
diff --git a/voltha/templates/ofagent.yaml b/voltha/templates/ofagent.yaml
index 83d3848..c70f408 100644
--- a/voltha/templates/ofagent.yaml
+++ b/voltha/templates/ofagent.yaml
@@ -32,8 +32,8 @@
       terminationGracePeriodSeconds: 10
       containers:
         - name: ofagent
-          image: {{ .Values.ofagentImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.ofagent.repository }}:{{ tpl .Values.images.ofagent.tag . }}
+          imagePullPolicy: {{ .Values.images.ofagent.pullPolicy }}
           env:
             - name: NAMESPACE
               valueFrom:
diff --git a/voltha/templates/vcli.yaml b/voltha/templates/vcli.yaml
index 7b962c1..2077705 100644
--- a/voltha/templates/vcli.yaml
+++ b/voltha/templates/vcli.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -48,8 +49,8 @@
       serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
       containers:
         - name: vcli
-          image: {{ .Values.vcliImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.vcli.repository }}:{{ tpl .Values.images.vcli.tag . }}
+          imagePullPolicy: {{ .Values.images.vcli.pullPolicy }}
           env:
             - name: POD_IP
               valueFrom:
@@ -60,7 +61,7 @@
                 fieldRef:
                   fieldPath: metadata.namespace
           args:
-{{ toYaml .Values.vcli_args |  indent 12 }} 
+{{ toYaml .Values.vcli_args |  indent 12 }}
           ports:
             - containerPort: 22
               name: ssh-port
diff --git a/voltha/templates/vcore_for_etcd.yaml b/voltha/templates/vcore_for_etcd.yaml
index 4643d88..5ea1d42 100644
--- a/voltha/templates/vcore_for_etcd.yaml
+++ b/voltha/templates/vcore_for_etcd.yaml
@@ -61,8 +61,8 @@
       serviceAccountName: {{ .Values.global.namespace }}-serviceaccount
       containers:
         - name: voltha
-          image: {{ .Values.vcoreImage }}
-          imagePullPolicy: {{ .Values.imagePullPolicy }}
+          image: {{ .Values.global.registry }}{{ .Values.images.vcore.repository }}:{{ tpl .Values.images.vcore.tag . }}
+          imagePullPolicy: {{ .Values.images.vcore.pullPolicy }}
           env:
             - name: NAMESPACE
               valueFrom:
diff --git a/voltha/values.yaml b/voltha/values.yaml
index 2dacb39..81fe079 100644
--- a/voltha/values.yaml
+++ b/voltha/values.yaml
@@ -1,3 +1,4 @@
+---
 # Copyright 2017-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -12,11 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-pull_docker_registry:
-k8s_docker_registry: 'k8s.gcr.io/'
-
-imagePullPolicy: Always
-
 replicas:
   vcore: 1
   vcli: 1
@@ -25,7 +21,6 @@
   envoy_for_etcd: 1
   alarm_generator: 1
 
-
 node_ports:
   vcli_port: 30110
 
@@ -52,9 +47,9 @@
 etcd:
   operator:
     enabled: true
+
 etcd-operator:
   customResources:
-    size: 1
     createEtcdClusterCRD: true
 
 kafkaReleaseName: cord-kafka
@@ -63,19 +58,57 @@
 consul:
   enabled: false
 
-envoyForEtcdImage: 'voltha/voltha-envoy:latest'
-freeradiusImage: 'tpdock/freeradius:latest'
-netconfImage: 'voltha/voltha-netconf:latest'
-ofagentImage: 'voltha/voltha-ofagent:latest'
-vcliImage: 'voltha/voltha-cli:latest'
-vcoreImage: 'voltha/voltha-voltha:latest'
-httpBackendImage: 'gcr.io/google_containers/defaultbackend:1.4'
-ingressControllerImage: 'quay.io/kubernetes-ingress-controller/nginx-ingress-controller:0.10.2'
-alarmGeneratorImage: "voltha/voltha-alarm-generator:latest"
+images:
+  vcore:
+    repository: 'voltha/voltha-voltha'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
+
+  vcli:
+    repository: 'voltha/voltha-cli'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
+
+  ofagent:
+    repository: 'voltha/voltha-ofagent'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
+
+  netconf:
+    repository: 'voltha/voltha-netconf'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
+
+  envoy_for_etcd:
+    repository: 'voltha/voltha-envoy'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
+
+  alarm_generator:
+    repository: 'voltha/voltha-alarm-generator'
+    tag: '{{ .Chart.AppVersion }}'
+    pullPolicy: 'Always'
+
+  freeradius:
+    repository: 'tpdock/freeradius'
+    tag: '2.2.9'
+    pullPolicy: 'Always'
+
+  http_backend:
+    repository: 'gcr.io/google_containers/defaultbackend'
+    tag: '1.4'
+    pullPolicy: 'Always'
+
+  ingress_controller:
+    repository: 'quay.io/kubernetes-ingress-controller/nginx-ingress-controller'
+    tag: '0.10.2'
+    pullPolicy: 'Always'
+
 
 # Need the namespace global for kafka
 global:
   namespace: voltha
+  registry: ''
 
 vcli_args:
 - "/cli/cli/setup.sh"