[CORD-2909] Flatten and parameterize charts

Change-Id: I695c1df063b0f6f6ccf280254d54cc701292348f
diff --git a/xos-services/addressmanager/templates/_helpers.tpl b/xos-services/addressmanager/templates/_helpers.tpl
index 3d71f0a..e80e8e3 100644
--- a/xos-services/addressmanager/templates/_helpers.tpl
+++ b/xos-services/addressmanager/templates/_helpers.tpl
@@ -45,3 +45,32 @@
 {{- define "addressmanager.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+{{- define "addressmanager.serviceConfig" -}}
+name: addressmanager
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+required_models:
+  - AddressManagerServiceInstance
+dependency_graph: "/opt/xos/synchronizers/addressmanager/model-deps"
+model_policies_dir: "/opt/xos/synchronizers/addressmanager/model_policies"
+models_dir: "/opt/xos/synchronizers/addressmanager/models"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+{{- end -}}
diff --git a/xos-services/addressmanager/templates/configmap.yaml b/xos-services/addressmanager/templates/configmap.yaml
index fd0a96c..185111b 100644
--- a/xos-services/addressmanager/templates/configmap.yaml
+++ b/xos-services/addressmanager/templates/configmap.yaml
@@ -20,4 +20,4 @@
   name: addressmanager
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
+{{ include "addressmanager.serviceConfig" . | indent 4 }}
diff --git a/xos-services/addressmanager/templates/deployment.yaml b/xos-services/addressmanager/templates/deployment.yaml
index e97888c..003aad0 100644
--- a/xos-services/addressmanager/templates/deployment.yaml
+++ b/xos-services/addressmanager/templates/deployment.yaml
@@ -39,16 +39,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.addressmanager_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: addressmanager-config
               mountPath: /opt/xos/synchronizers/addressmanager/addressmanager_config.yaml
               subPath: addressmanager_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: addressmanager-config
           configMap:
@@ -56,9 +57,12 @@
             items:
               - key: serviceConfig
                 path: addressmanager_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/addressmanager/values.yaml b/xos-services/addressmanager/values.yaml
index a61cebc..9acaf32 100644
--- a/xos-services/addressmanager/values.yaml
+++ b/xos-services/addressmanager/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,15 +19,15 @@
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/addressmanager-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+addressmanager_synchronizerImage: "xosproject/addressmanager-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -37,15 +36,3 @@
 tolerations: []
 
 affinity: {}
-
-serviceConfig:
-  name: addressmanager
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  required_models:
-    - AddressManagerServiceInstance
-  dependency_graph: "/opt/xos/synchronizers/addressmanager/model-deps"
-  model_policies_dir: "/opt/xos/synchronizers/addressmanager/model_policies"
-  models_dir: "/opt/xos/synchronizers/addressmanager/models"
diff --git a/xos-services/exampleservice/templates/_helpers.tpl b/xos-services/exampleservice/templates/_helpers.tpl
index 99cc097..56ecf89 100644
--- a/xos-services/exampleservice/templates/_helpers.tpl
+++ b/xos-services/exampleservice/templates/_helpers.tpl
@@ -45,3 +45,37 @@
 {{- define "exampleservice.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+{{- define "exampleservice.serviceConfig" -}}
+name: exampleservice
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+required_models:
+  - ExampleService
+  - ExampleServiceInstance
+  - ServiceDependency
+  - ServiceMonitoringAgentInfo
+dependency_graph: "/opt/xos/synchronizers/exampleservice/model-deps"
+steps_dir: "/opt/xos/synchronizers/exampleservice/steps"
+sys_dir: "/opt/xos/synchronizers/exampleservice/sys"
+model_policies_dir: "/opt/xos/synchronizers/exampleservice/model_policies"
+models_dir: "/opt/xos/synchronizers/exampleservice/models"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+{{- end -}}
diff --git a/xos-services/exampleservice/templates/configmap.yaml b/xos-services/exampleservice/templates/configmap.yaml
index 7e25008..84c030d 100644
--- a/xos-services/exampleservice/templates/configmap.yaml
+++ b/xos-services/exampleservice/templates/configmap.yaml
@@ -20,5 +20,4 @@
   name: exampleservice
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
-
+{{ include "exampleservice.serviceConfig" . | indent 4 }}
diff --git a/xos-services/exampleservice/templates/deployment.yaml b/xos-services/exampleservice/templates/deployment.yaml
index 14f0c22..4509f9b 100644
--- a/xos-services/exampleservice/templates/deployment.yaml
+++ b/xos-services/exampleservice/templates/deployment.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -37,16 +36,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.exampleservice_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: exampleservice-config
               mountPath: /opt/xos/synchronizers/exampleservice/exampleservice_config.yaml
               subPath: exampleservice_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: exampleservice-config
           configMap:
@@ -54,9 +54,12 @@
             items:
               - key: serviceConfig
                 path: exampleservice_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/exampleservice/values.yaml b/xos-services/exampleservice/values.yaml
index 6051b1c..7708d68 100644
--- a/xos-services/exampleservice/values.yaml
+++ b/xos-services/exampleservice/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,15 +19,15 @@
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/exampleservice-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+exampleservice_synchronizerImage: "xosproject/exampleservice-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -37,20 +36,3 @@
 tolerations: []
 
 affinity: {}
-
-serviceConfig:
-  name: exampleservice
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  required_models:
-    - ExampleService
-    - ExampleServiceInstance
-    - ServiceDependency
-    - ServiceMonitoringAgentInfo
-  dependency_graph: "/opt/xos/synchronizers/exampleservice/model-deps"
-  steps_dir: "/opt/xos/synchronizers/exampleservice/steps"
-  sys_dir: "/opt/xos/synchronizers/exampleservice/sys"
-  model_policies_dir: "/opt/xos/synchronizers/exampleservice/model_policies"
-  models_dir: "/opt/xos/synchronizers/exampleservice/models"
diff --git a/xos-services/fabric/templates/_helpers.tpl b/xos-services/fabric/templates/_helpers.tpl
index 6b57e4f..07eb3b2 100644
--- a/xos-services/fabric/templates/_helpers.tpl
+++ b/xos-services/fabric/templates/_helpers.tpl
@@ -45,3 +45,36 @@
 {{- define "fabric.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+{{- define "fabric.serviceConfig" -}}
+name: fabric
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+required_models:
+  - Instance
+  - Tag
+  - FabricService
+  - AddressManagerServiceInstance
+dependency_graph: "/opt/xos/synchronizers/fabric/model-deps"
+steps_dir: "/opt/xos/synchronizers/fabric/steps"
+sys_dir: "/opt/xos/synchronizers/fabric/sys"
+models_dir: "/opt/xos/synchronizers/fabric/models"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+{{- end -}}
diff --git a/xos-services/fabric/templates/configmap.yaml b/xos-services/fabric/templates/configmap.yaml
index d14289a..f0299d8 100644
--- a/xos-services/fabric/templates/configmap.yaml
+++ b/xos-services/fabric/templates/configmap.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,4 +19,4 @@
   name: fabric
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
+{{ include "fabric.serviceConfig" . | indent 4 }}
diff --git a/xos-services/fabric/templates/deployment.yaml b/xos-services/fabric/templates/deployment.yaml
index 2413c53..3c7d03b 100644
--- a/xos-services/fabric/templates/deployment.yaml
+++ b/xos-services/fabric/templates/deployment.yaml
@@ -39,16 +39,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.fabric_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: fabric-config
               mountPath: /opt/xos/synchronizers/fabric/fabric_config.yaml
               subPath: fabric_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: fabric-config
           configMap:
@@ -56,9 +57,12 @@
             items:
               - key: serviceConfig
                 path: fabric_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/fabric/values.yaml b/xos-services/fabric/values.yaml
index ec2e3d6..22fd55b 100644
--- a/xos-services/fabric/values.yaml
+++ b/xos-services/fabric/values.yaml
@@ -20,15 +20,15 @@
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/fabric-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+fabric_synchronizerImage: "xosproject/fabric-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -38,35 +38,3 @@
 
 affinity: {}
 
-serviceConfig:
-  name: fabric
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  required_models:
-    - Instance
-    - Tag
-    - FabricService
-    - AddressManagerServiceInstance
-  dependency_graph: "/opt/xos/synchronizers/fabric/model-deps"
-  steps_dir: "/opt/xos/synchronizers/fabric/steps"
-  sys_dir: "/opt/xos/synchronizers/fabric/sys"
-  models_dir: "/opt/xos/synchronizers/fabric/models"
-  logging:
-    version: 1
-    handlers:
-      console:
-        class: logging.StreamHandler
-      file:
-        class: logging.handlers.RotatingFileHandler
-        filename: /var/log/xos.log
-        maxBytes: 10485760
-        backupCount: 5
-    loggers:
-      'multistructlog':
-        handlers:
-            - console
-            - file
-        level: DEBUG
-
diff --git a/xos-services/onos-service/templates/_helpers.tpl b/xos-services/onos-service/templates/_helpers.tpl
index 750b7a9..390c710 100644
--- a/xos-services/onos-service/templates/_helpers.tpl
+++ b/xos-services/onos-service/templates/_helpers.tpl
@@ -45,3 +45,32 @@
 {{- define "onos-service.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+
+{{- define "onos-service.serviceConfig" -}}
+name: onos
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+dependency_graph: "/opt/xos/synchronizers/onos/model-deps"
+steps_dir: "/opt/xos/synchronizers/onos/steps"
+sys_dir: "/opt/xos/synchronizers/onos/sys"
+models_dir: "/opt/xos/synchronizers/onos/models"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+{{- end -}}
diff --git a/xos-services/onos-service/templates/configmap.yaml b/xos-services/onos-service/templates/configmap.yaml
index 226f926..db13dd3 100644
--- a/xos-services/onos-service/templates/configmap.yaml
+++ b/xos-services/onos-service/templates/configmap.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,4 +19,4 @@
   name: onos-service
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
+{{ include "onos-service.serviceConfig" . | indent 4 }}
diff --git a/xos-services/onos-service/templates/deployment.yaml b/xos-services/onos-service/templates/deployment.yaml
index 53830bb..38b66b2 100644
--- a/xos-services/onos-service/templates/deployment.yaml
+++ b/xos-services/onos-service/templates/deployment.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -39,16 +38,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.onos_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: onos-service-config
               mountPath: /opt/xos/synchronizers/onos/onos_config.yaml
               subPath: onos_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: onos-service-config
           configMap:
@@ -56,9 +56,12 @@
             items:
               - key: serviceConfig
                 path: onos_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/onos-service/values.yaml b/xos-services/onos-service/values.yaml
index 9a81457..0783614 100644
--- a/xos-services/onos-service/values.yaml
+++ b/xos-services/onos-service/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,15 +19,15 @@
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/onos-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+onos_synchronizerImage: "xosproject/onos-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -37,30 +36,3 @@
 tolerations: []
 
 affinity: {}
-
-serviceConfig:
-  name: onos
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  dependency_graph: "/opt/xos/synchronizers/onos/model-deps"
-  steps_dir: "/opt/xos/synchronizers/onos/steps"
-  sys_dir: "/opt/xos/synchronizers/onos/sys"
-  models_dir: "/opt/xos/synchronizers/onos/models"
-  logging:
-    version: 1
-    handlers:
-      console:
-        class: logging.StreamHandler
-      file:
-        class: logging.handlers.RotatingFileHandler
-        filename: /var/log/xos.log
-        maxBytes: 10485760
-        backupCount: 5
-    loggers:
-      'multistructlog':
-        handlers:
-            - console
-            - file
-        level: DEBUG
diff --git a/xos-services/openstack/templates/_helpers.tpl b/xos-services/openstack/templates/_helpers.tpl
index b61f963..d0d413a 100644
--- a/xos-services/openstack/templates/_helpers.tpl
+++ b/xos-services/openstack/templates/_helpers.tpl
@@ -45,3 +45,47 @@
 {{- define "openstack.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+{{- define "openstack.serviceConfig" -}}
+name: openstack-synchronizer
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+dependency_graph: "/opt/xos/synchronizers/openstack/model-deps"
+steps_dir: "/opt/xos/synchronizers/openstack/steps"
+sys_dir: "/opt/xos/synchronizers/openstack/sys"
+model_policies_dir: "/opt/xos/synchronizers/openstack/model_policies"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+images_directory: "/opt/xos/images"
+required_models:
+  - ControllerImages
+  - ControllerNetwork
+  - ControllerSitePrivilege
+  - ControllerSite
+  - ControllerSlicePrivilege
+  - ControllerSlice
+  - ControllerUser
+  - Image
+  - Instance
+  - Port
+  - Role
+nova:
+  ca_ssl_cert: "/etc/ssl/certs/ca-certificates.crt"
+  enabled: True
+{{- end -}}
diff --git a/xos-services/openstack/templates/configmap.yaml b/xos-services/openstack/templates/configmap.yaml
index 6d234c4..db369de 100644
--- a/xos-services/openstack/templates/configmap.yaml
+++ b/xos-services/openstack/templates/configmap.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,4 +19,4 @@
   name: openstack
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
+{{ include "openstack.serviceConfig" . | indent 4 }}
diff --git a/xos-services/openstack/templates/deployment.yaml b/xos-services/openstack/templates/deployment.yaml
index f202d79..b0270d1 100644
--- a/xos-services/openstack/templates/deployment.yaml
+++ b/xos-services/openstack/templates/deployment.yaml
@@ -39,16 +39,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.openstack_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: openstack-config
               mountPath: /opt/xos/synchronizers/openstack/openstack_config.yaml
               subPath: openstack_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: openstack-config
           configMap:
@@ -56,9 +57,12 @@
             items:
               - key: serviceConfig
                 path: openstack_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/openstack/values.yaml b/xos-services/openstack/values.yaml
index 1a0e355..f5fc77f 100644
--- a/xos-services/openstack/values.yaml
+++ b/xos-services/openstack/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,15 +19,15 @@
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/openstack-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+openstack_synchronizerImage: "xosproject/openstack-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -37,30 +36,3 @@
 tolerations: []
 
 affinity: {}
-
-serviceConfig:
-  name: openstack-synchronizer
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  dependency_graph: "/opt/xos/synchronizers/openstack/model-deps"
-  steps_dir: "/opt/xos/synchronizers/openstack/steps"
-  sys_dir: "/opt/xos/synchronizers/openstack/sys"
-  model_policies_dir: "/opt/xos/synchronizers/openstack/model_policies"
-  images_directory: "/opt/xos/images"
-  required_models:
-    - ControllerImages
-    - ControllerNetwork
-    - ControllerSitePrivilege
-    - ControllerSite
-    - ControllerSlicePrivilege
-    - ControllerSlice
-    - ControllerUser
-    - Image
-    - Instance
-    - Port
-    - Role
-  nova:
-    ca_ssl_cert: "/etc/ssl/certs/ca-certificates.crt"
-    enabled: True
diff --git a/xos-services/volt/templates/_helpers.tpl b/xos-services/volt/templates/_helpers.tpl
index 08e04cc..6b6791d 100644
--- a/xos-services/volt/templates/_helpers.tpl
+++ b/xos-services/volt/templates/_helpers.tpl
@@ -45,3 +45,37 @@
 {{- define "volt.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+{{- define "volt.serviceConfig" -}}
+name: volt
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+required_models:
+  - VOLTService
+  - VOLTServiceInstance
+  - ServiceInstanceLink
+  - OLTDevice
+dependency_graph: "/opt/xos/synchronizers/volt/model-deps"
+model_policies_dir: "/opt/xos/synchronizers/volt/model_policies"
+models_dir: "/opt/xos/synchronizers/volt/models"
+steps_dir: "/opt/xos/synchronizers/volt/steps"
+pull_steps_dir: "/opt/xos/synchronizers/volt/pull_steps"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+{{- end -}}
diff --git a/xos-services/volt/templates/configmap.yaml b/xos-services/volt/templates/configmap.yaml
index 0d039ee..37dbd8d 100644
--- a/xos-services/volt/templates/configmap.yaml
+++ b/xos-services/volt/templates/configmap.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,4 +19,4 @@
   name: volt
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
+{{ include "volt.serviceConfig" . | indent 4 }}
diff --git a/xos-services/volt/templates/deployment.yaml b/xos-services/volt/templates/deployment.yaml
index 9ae92fe..f285b6d 100644
--- a/xos-services/volt/templates/deployment.yaml
+++ b/xos-services/volt/templates/deployment.yaml
@@ -39,16 +39,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.volt_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: volt-config
               mountPath: /opt/xos/synchronizers/volt/volt_config.yaml
               subPath: volt_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: volt-config
           configMap:
@@ -56,9 +57,12 @@
             items:
               - key: serviceConfig
                 path: volt_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/volt/values.yaml b/xos-services/volt/values.yaml
index a25cc99..5921b8c 100644
--- a/xos-services/volt/values.yaml
+++ b/xos-services/volt/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,21 +13,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for exampleservice.
+# Default values for vOLT
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/volt-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+volt_synchronizerImage: "xosproject/volt-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -37,36 +36,3 @@
 tolerations: []
 
 affinity: {}
-
-serviceConfig:
-  name: volt
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  required_models:
-    - VOLTService
-    - VOLTServiceInstance
-    - ServiceInstanceLink
-    - OLTDevice
-  dependency_graph: "/opt/xos/synchronizers/volt/model-deps"
-  model_policies_dir: "/opt/xos/synchronizers/volt/model_policies"
-  models_dir: "/opt/xos/synchronizers/volt/models"
-  steps_dir: "/opt/xos/synchronizers/volt/steps"
-  pull_steps_dir: "/opt/xos/synchronizers/volt/pull_steps"
-  logging:
-    version: 1
-    handlers:
-      console:
-        class: logging.StreamHandler
-      file:
-        class: logging.handlers.RotatingFileHandler
-        filename: /var/log/xos.log
-        maxBytes: 10485760
-        backupCount: 5
-    loggers:
-      'multistructlog':
-        handlers:
-            - console
-            - file
-        level: DEBUG
diff --git a/xos-services/vrouter/templates/_helpers.tpl b/xos-services/vrouter/templates/_helpers.tpl
index 03d5458..6f7795c 100644
--- a/xos-services/vrouter/templates/_helpers.tpl
+++ b/xos-services/vrouter/templates/_helpers.tpl
@@ -45,3 +45,36 @@
 {{- define "vrouter.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+{{- define "vrouter.serviceConfig" -}}
+name: vrouter
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+required_models:
+  - VRouterService
+  - VRouterDevice
+  - VRouterApp
+  - VRouterPort
+dependency_graph: "/opt/xos/synchronizers/vrouter/model-deps"
+steps_dir: "/opt/xos/synchronizers/vrouter/steps"
+sys_dir: "/opt/xos/synchronizers/vrouter/sys"
+models_dir: "/opt/xos/synchronizers/vrouter/models"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+{{- end -}}
diff --git a/xos-services/vrouter/templates/configmap.yaml b/xos-services/vrouter/templates/configmap.yaml
index dd8e766..82606b7 100644
--- a/xos-services/vrouter/templates/configmap.yaml
+++ b/xos-services/vrouter/templates/configmap.yaml
@@ -20,4 +20,4 @@
   name: vrouter
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
+{{ include "vrouter.serviceConfig" . | indent 4 }}
diff --git a/xos-services/vrouter/templates/deployment.yaml b/xos-services/vrouter/templates/deployment.yaml
index 82630a3..524225d 100644
--- a/xos-services/vrouter/templates/deployment.yaml
+++ b/xos-services/vrouter/templates/deployment.yaml
@@ -39,16 +39,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.vrouter_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: vrouter-config
               mountPath: /opt/xos/synchronizers/vrouter/vrouter_config.yaml
               subPath: vrouter_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: vrouter-config
           configMap:
@@ -56,9 +57,12 @@
             items:
               - key: serviceConfig
                 path: vrouter_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/vrouter/values.yaml b/xos-services/vrouter/values.yaml
index c267596..c7fa202 100644
--- a/xos-services/vrouter/values.yaml
+++ b/xos-services/vrouter/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,15 +19,15 @@
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/vrouter-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+vrouter_synchronizerImage: "xosproject/vrouter-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -37,35 +36,3 @@
 tolerations: []
 
 affinity: {}
-
-serviceConfig:
-  name: vrouter
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  required_models:
-    - VRouterService
-    - VRouterDevice
-    - VRouterApp
-    - VRouterPort
-  dependency_graph: "/opt/xos/synchronizers/vrouter/model-deps"
-  steps_dir: "/opt/xos/synchronizers/vrouter/steps"
-  sys_dir: "/opt/xos/synchronizers/vrouter/sys"
-  models_dir: "/opt/xos/synchronizers/vrouter/models"
-  logging:
-    version: 1
-    handlers:
-      console:
-        class: logging.StreamHandler
-      file:
-        class: logging.handlers.RotatingFileHandler
-        filename: /var/log/xos.log
-        maxBytes: 10485760
-        backupCount: 5
-    loggers:
-      'multistructlog':
-        handlers:
-            - console
-            - file
-        level: DEBUG
diff --git a/xos-services/vsg-hw/templates/_helpers.tpl b/xos-services/vsg-hw/templates/_helpers.tpl
index 66a8dad..3970829 100644
--- a/xos-services/vsg-hw/templates/_helpers.tpl
+++ b/xos-services/vsg-hw/templates/_helpers.tpl
@@ -45,3 +45,36 @@
 {{- define "vsg-hw.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+{{- define "vsg-hw.serviceConfig" -}}
+name: vsg-hw
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+required_models:
+  - VSGHWService
+  - VSGHWServiceInstance
+  - ServiceInstanceLink
+dependency_graph: "/opt/xos/synchronizers/vsg-hw/model-deps"
+steps_dir: "/opt/xos/synchronizers/vsg-hw/steps"
+model_policies_dir: "/opt/xos/synchronizers/vsg-hw/model_policies"
+sys_dir: "/opt/xos/synchronizers/vsg-hw/sys"
+models_dir: "/opt/xos/synchronizers/vsg-hw/models"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+{{- end -}}
diff --git a/xos-services/vsg-hw/templates/configmap.yaml b/xos-services/vsg-hw/templates/configmap.yaml
index 3f2115c..6a109c8 100644
--- a/xos-services/vsg-hw/templates/configmap.yaml
+++ b/xos-services/vsg-hw/templates/configmap.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -20,4 +19,4 @@
   name: vsg-hw
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
+{{ include "vsg-hw.serviceConfig" . | indent 4 }}
diff --git a/xos-services/vsg-hw/templates/deployment.yaml b/xos-services/vsg-hw/templates/deployment.yaml
index 55c50f3..17b129b 100644
--- a/xos-services/vsg-hw/templates/deployment.yaml
+++ b/xos-services/vsg-hw/templates/deployment.yaml
@@ -39,16 +39,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.vsg_hw_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: vsg-hw-config
               mountPath: /opt/xos/synchronizers/vsg-hw/vsg_hw_config.yaml
               subPath: vsg_hw_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: vsg-hw-config
           configMap:
@@ -56,9 +57,12 @@
             items:
               - key: serviceConfig
                 path: vsg_hw_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/vsg-hw/values.yaml b/xos-services/vsg-hw/values.yaml
index 7f23fe3..3a01a3b 100644
--- a/xos-services/vsg-hw/values.yaml
+++ b/xos-services/vsg-hw/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,21 +13,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for exampleservice.
+# Default values for vsg-hw
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/vsg-hw-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+vsg_hw_synchronizerImage: "xosproject/vsg-hw-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -37,35 +36,3 @@
 tolerations: []
 
 affinity: {}
-
-serviceConfig:
-  name: vsg-hw
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  required_models:
-    - VSGHWService
-    - VSGHWServiceInstance
-    - ServiceInstanceLink
-  dependency_graph: "/opt/xos/synchronizers/vsg-hw/model-deps"
-  steps_dir: "/opt/xos/synchronizers/vsg-hw/steps"
-  model_policies_dir: "/opt/xos/synchronizers/vsg-hw/model_policies"
-  sys_dir: "/opt/xos/synchronizers/vsg-hw/sys"
-  models_dir: "/opt/xos/synchronizers/vsg-hw/models"
-  logging:
-    version: 1
-    handlers:
-      console:
-        class: logging.StreamHandler
-      file:
-        class: logging.handlers.RotatingFileHandler
-        filename: /var/log/xos.log
-        maxBytes: 10485760
-        backupCount: 5
-    loggers:
-      'multistructlog':
-        handlers:
-            - console
-            - file
-        level: DEBUG
diff --git a/xos-services/vtn-service/templates/_helpers.tpl b/xos-services/vtn-service/templates/_helpers.tpl
index 97456ba..8860c56 100644
--- a/xos-services/vtn-service/templates/_helpers.tpl
+++ b/xos-services/vtn-service/templates/_helpers.tpl
@@ -45,3 +45,41 @@
 {{- define "vtn.chart" -}}
 {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
 {{- end -}}
+
+{{- define "vtn.serviceConfig" -}}
+name: vtn
+accessor:
+  username: {{ .Values.xosAdminUser | quote }}
+  password: {{ .Values.xosAdminPassword | quote }}
+  endpoint: xos-core:50051
+required_models:
+  - AddressPool
+  - Controller
+  - Network
+  - Node
+  - Port
+  - Service
+  - ServiceInstance
+  - Tag
+  - VTNService
+dependency_graph: "/opt/xos/synchronizers/vtn/model-deps"
+models_dir: "/opt/xos/synchronizers/vtn/models"
+sys_dir: "/opt/xos/synchronizers/vtn/sys"
+steps_dir: "/opt/xos/synchronizers/vtn/steps"
+logging:
+  version: 1
+  handlers:
+    console:
+      class: logging.StreamHandler
+    file:
+      class: logging.handlers.RotatingFileHandler
+      filename: /var/log/xos.log
+      maxBytes: 10485760
+      backupCount: 5
+  loggers:
+    'multistructlog':
+      handlers:
+          - console
+          - file
+      level: DEBUG
+{{- end -}}
diff --git a/xos-services/vtn-service/templates/configmap.yaml b/xos-services/vtn-service/templates/configmap.yaml
index b073e78..4349407 100644
--- a/xos-services/vtn-service/templates/configmap.yaml
+++ b/xos-services/vtn-service/templates/configmap.yaml
@@ -20,4 +20,4 @@
   name: vtn
 data:
   serviceConfig: |
-{{ toYaml .Values.serviceConfig | indent 4 }}
+{{ include "vtn.serviceConfig" . | indent 4 }}
diff --git a/xos-services/vtn-service/templates/deployment.yaml b/xos-services/vtn-service/templates/deployment.yaml
index d75808b..2b8c37f 100644
--- a/xos-services/vtn-service/templates/deployment.yaml
+++ b/xos-services/vtn-service/templates/deployment.yaml
@@ -39,16 +39,17 @@
     spec:
       containers:
         - name: {{ .Chart.Name }}
-          image: "{{ .Values.pull_docker_registry }}{{ .Values.image.repository }}:{{ .Values.image.tag }}"
-          imagePullPolicy: {{ .Values.image.pullPolicy }}
+          image: {{ .Values.vtn_synchronizerImage | quote }}
+          imagePullPolicy: {{ .Values.imagePullPolicy }}
           resources:
 {{ toYaml .Values.resources | indent 12 }}
           volumeMounts:
             - name: vtn-config
               mountPath: /opt/xos/synchronizers/vtn/vtn_config.yaml
               subPath: vtn_config.yaml
-            - name: cert-chain-secret
-              mountPath: /usr/local/share/ca-certificates
+            - name: certchain-volume
+              mountPath: /usr/local/share/ca-certificates/local_certs.crt
+              subPath: config/ca_cert_chain.pem
       volumes:
         - name: vtn-config
           configMap:
@@ -56,9 +57,12 @@
             items:
               - key: serviceConfig
                 path: vtn_config.yaml
-        - name: cert-chain-secret
-          secret:
-            secretName: cert-chain-secret
+        - name: certchain-volume
+          configMap:
+            name: ca-certificates
+            items:
+              - key: chain
+                path: config/ca_cert_chain.pem
     {{- with .Values.nodeSelector }}
       nodeSelector:
 {{ toYaml . | indent 8 }}
diff --git a/xos-services/vtn-service/values.yaml b/xos-services/vtn-service/values.yaml
index 385a4ef..a0fb60e 100644
--- a/xos-services/vtn-service/values.yaml
+++ b/xos-services/vtn-service/values.yaml
@@ -1,5 +1,4 @@
 ---
-
 # Copyright 2018-present Open Networking Foundation
 #
 # Licensed under the Apache License, Version 2.0 (the "License");
@@ -14,21 +13,21 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for exampleservice.
+# Default values for TTN
 # This is a YAML-formatted file.
 # Declare variables to be passed into your templates.
 
 replicaCount: 1
 
-pull_docker_registry:
-
 nameOverride: ""
 fullnameOverride: ""
 
-image:
-  repository: xosproject/vtn-synchronizer
-  tag: master
-  pullPolicy: IfNotPresent
+imagePullPolicy: 'IfNotPresent'
+
+vtn_synchronizerImage: "xosproject/vtn-synchronizer:master"
+
+xosAdminUser: "admin@opencord.org"
+xosAdminPassword: "letmein"
 
 resources: {}
 
@@ -37,40 +36,3 @@
 tolerations: []
 
 affinity: {}
-
-serviceConfig:
-  name: vtn
-  accessor:
-    username: admin@opencord.org
-    password: letmein
-    endpoint: xos-core:50051
-  required_models:
-    - AddressPool
-    - Controller
-    - Network
-    - Node
-    - Port
-    - Service
-    - ServiceInstance
-    - Tag
-    - VTNService
-  dependency_graph: "/opt/xos/synchronizers/vtn/model-deps"
-  models_dir: "/opt/xos/synchronizers/vtn/models"
-  sys_dir: "/opt/xos/synchronizers/vtn/sys"
-  steps_dir: "/opt/xos/synchronizers/vtn/steps"
-  logging:
-    version: 1
-    handlers:
-      console:
-        class: logging.StreamHandler
-      file:
-        class: logging.handlers.RotatingFileHandler
-        filename: /var/log/xos.log
-        maxBytes: 10485760
-        backupCount: 5
-    loggers:
-      'multistructlog':
-        handlers:
-            - console
-            - file
-        level: DEBUG