diff --git a/mcord-release/mcord-services/Chart.yaml b/mcord-release/mcord-services/Chart.yaml
index fd5a808..f6b9759 100644
--- a/mcord-release/mcord-services/Chart.yaml
+++ b/mcord-release/mcord-services/Chart.yaml
@@ -18,4 +18,4 @@
 appVersion: "1.0"
 description: M-CORD services with OMEC inside
 name: mcord-services
-version: 0.1.8
+version: 0.1.9
diff --git a/mcord-release/mcord-services/templates/NOTES.txt b/mcord-release/mcord-services/templates/NOTES.txt
index b7a49b5..a5a7136 100644
--- a/mcord-release/mcord-services/templates/NOTES.txt
+++ b/mcord-release/mcord-services/templates/NOTES.txt
@@ -17,16 +17,12 @@
 
 This is the instruction to configure your eNodeB to work with ONF M-CORD. You can find architecture illustration in assets/mcord-architecture.png.
 
-1. Check the eNodeB is operating in following information:
-    eNodeB Address: {{ .Values.enb.host }}
-    eNodeB S1 port: {{ .Values.enb.port }}
-
-2. Configure eNodeB with the correct MME information, get MME IP by following commands:
-    export MMEIP=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.status.podIP}" pods mme-0
+1. Configure eNodeB with the correct MME information.
+    export MMEIP=[node IP]
     export MMEPORT="36412"
 
-    MMEPORT is fixed in templates/mme.yaml.
+    You can change MMEPORT by overriding "Values.config.mme.s1ap.sctp_port_external".
 
-3. Make sure UE's SIM card information is configured in hss.yaml.
+2. Make sure UE's SIM card information is configured in hss.yaml.
 
-4. Attach UE to M-CORD.
+3. Attach UE to OMEC.
diff --git a/mcord-release/mcord-services/templates/_helpers.tpl b/mcord-release/mcord-services/templates/_helpers.tpl
index ac27abf..dde3e3d 100644
--- a/mcord-release/mcord-services/templates/_helpers.tpl
+++ b/mcord-release/mcord-services/templates/_helpers.tpl
@@ -15,37 +15,20 @@
 # limitations under the License.
 */ -}}
 
-{{/* vim: set filetype=mustache: */}}
 {{/*
-Expand the name of the chart.
+abstract: |
+  Renders a set of standardised labels
+usage: |
+  {{ tuple "mme" . | include "mcord-services.metadata_labels" }}
+return: |
+  release: mcord-services
+  app: mme
 */}}
-{{- define "mcord-services.name" -}}
-{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-
-{{/*
-Create a default fully qualified app name.
-We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
-If release name contains chart name it will be used as a full name.
-*/}}
-{{- define "mcord-services.fullname" -}}
-{{- if .Values.fullnameOverride -}}
-{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- $name := default .Chart.Name .Values.nameOverride -}}
-{{- if contains $name .Release.Name -}}
-{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
-{{- else -}}
-{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
-{{- end -}}
-{{- end -}}
-{{- end -}}
-
-{{/*
-Create chart name and version as used by the chart label.
-*/}}
-{{- define "mcord-services.chart" -}}
-{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}}
+{{- define "mcord-services.metadata_labels" -}}
+{{- $application := index . 0 -}}
+{{- $context := index . 1 -}}
+release: {{ $context.Release.Name }}
+app: {{ $application }}
 {{- end -}}
 
 {{/*
@@ -66,13 +49,11 @@
 {{- $service := index . 0 -}}
 {{- $type := index . 1 -}}
 {{- $context := index . 2 -}}
-{{- $serviceContext := index $context.Values $service -}}
-{{- $serviceName := $serviceContext.name -}}
 {{- if eq $type "identity" -}}
-{{- printf "%s-0.%s.%s.svc.%s" $serviceName $serviceName $context.Release.Namespace "cluster.local" -}}
+{{- printf "%s-0.%s.%s.svc.%s" $service $service $context.Release.Namespace "cluster.local" -}}
 {{- else if eq $type "realm" -}}
-{{- printf "%s.%s.svc.%s" $serviceName $context.Release.Namespace "cluster.local" -}}
+{{- printf "%s.%s.svc.%s" $service $context.Release.Namespace "cluster.local" -}}
 {{- else if eq $type "host" -}}
-{{- printf "%s-0" $serviceName -}}
+{{- printf "%s-0" $service -}}
 {{- end -}}
 {{- end -}}
diff --git a/mcord-release/mcord-services/templates/bin/_mme-init.sh.tpl b/mcord-release/mcord-services/templates/bin/_mme-init.sh.tpl
index b96bf90..a15e83c 100644
--- a/mcord-release/mcord-services/templates/bin/_mme-init.sh.tpl
+++ b/mcord-release/mcord-services/templates/bin/_mme-init.sh.tpl
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 #
 # Copyright 2019-present Open Networking Foundation
 #
diff --git a/mcord-release/mcord-services/templates/bin/_spgwu-launch.sh.tpl b/mcord-release/mcord-services/templates/bin/_spgwu-run.sh.tpl
similarity index 100%
rename from mcord-release/mcord-services/templates/bin/_spgwu-launch.sh.tpl
rename to mcord-release/mcord-services/templates/bin/_spgwu-run.sh.tpl
diff --git a/mcord-release/mcord-services/templates/bin/_spgwu-setup-af-iface.sh.tpl b/mcord-release/mcord-services/templates/bin/_spgwu-setup-af-iface.sh.tpl
index 3266da8..4988379 100644
--- a/mcord-release/mcord-services/templates/bin/_spgwu-setup-af-iface.sh.tpl
+++ b/mcord-release/mcord-services/templates/bin/_spgwu-setup-af-iface.sh.tpl
@@ -1,4 +1,4 @@
-#!/bin/bash
+#!/bin/sh
 #
 # Copyright 2019-present Open Networking Foundation
 # Copyright 2019 Intel Corporation
@@ -17,8 +17,8 @@
 
 set -ex
 
-UL_IFACE="{{- .Values.spgwu.conf.dp.s1u_af_dev -}}"
-DL_IFACE="{{- .Values.spgwu.conf.dp.sgi_af_dev -}}"
+UL_IFACE="{{- .Values.config.spgwu.dp.s1uAfDev -}}"
+DL_IFACE="{{- .Values.config.spgwu.dp.sgiAfDev -}}"
 
 if ! ip link show $UL_IFACE; then
     s1u_mac=$(ip addr show dev s1u-net | awk '$1=="link/ether"{print $2}')
diff --git a/mcord-release/mcord-services/templates/configmap-mme.yaml b/mcord-release/mcord-services/templates/configmap-mme.yaml
index 37163a0..fd40c05 100644
--- a/mcord-release/mcord-services/templates/configmap-mme.yaml
+++ b/mcord-release/mcord-services/templates/configmap-mme.yaml
@@ -1,34 +1,34 @@
----
-# Copyright 2019-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2019-present Open Networking Foundation
 
-{{- if eq .Values.mme.type "openmme" }}
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
 
-{{- if empty .Values.mme.conf.s6a.host -}}
-{{- $_ := tuple "hss" "identity" . | include "mcord-services.endpoint_lookup" | set .Values.mme.conf.s6a "host" -}}
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+
+{{- if not (hasKey .Values.config.mme.s6a "host") -}}
+{{- $_ := tuple "hss" "identity" . | include "mcord-services.endpoint_lookup" | set .Values.config.mme.s6a "host" -}}
 {{- end }}
-{{- if empty .Values.mme.conf.s6a.realm -}}
-{{- $_ := tuple "hss" "realm" . | include "mcord-services.endpoint_lookup" | set .Values.mme.conf.s6a "realm" -}}
+{{- if not (hasKey .Values.config.mme.s6a "realm") -}}
+{{- $_ := tuple "hss" "realm" . | include "mcord-services.endpoint_lookup" | set .Values.config.mme.s6a "realm" -}}
 {{- end }}
-
 ---
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ .Values.mme.name }}
+  name: mme
+  labels:
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
 data:
-  config.json: {{ toJson .Values.mme.conf | quote }}
+  config.json: {{ toJson .Values.config.mme | quote }}
   s6a_fd.conf: |
     # -------- Test configuration ---------
     AppServThreads = 40;
@@ -112,4 +112,3 @@
 {{ tuple "bin/_mme-init.sh.tpl" . | include "mcord-services.template" | indent 4 }}
   mme-run.sh : |
 {{ tuple "bin/_mme-run.sh.tpl" . | include "mcord-services.template" | indent 4 }}
-{{- end }}
diff --git a/mcord-release/mcord-services/templates/configmap-spgwu.yaml b/mcord-release/mcord-services/templates/configmap-spgwu.yaml
index 895bf6c..b821eb0 100644
--- a/mcord-release/mcord-services/templates/configmap-spgwu.yaml
+++ b/mcord-release/mcord-services/templates/configmap-spgwu.yaml
@@ -1,23 +1,26 @@
----
-# Copyright 2019-present Open Networking Foundation
-# Copyright 2019 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2019-present Open Networking Foundation
+Copyright 2019 Intel Corporation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 ---
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ .Values.spgwu.name }}
+  name: spgwu
+  labels:
+{{ tuple "spgwu" . | include "mcord-services.metadata_labels" | indent 4 }}
 data:
   dp_config.cfg: |
     if [ ! -d "/dev/hugepages" ]; then
@@ -45,9 +48,9 @@
     dp_comm_port = 20
     cp_comm_ip = CP_ADDR
     cp_comm_port = 21
-{{- if not .Values.network.sriov.enabled }}
+{{- if not .Values.networks.sriov.enabled }}
   setup-af-iface.sh: |
 {{ tuple "bin/_spgwu-setup-af-iface.sh.tpl" . | include "mcord-services.template" | indent 4 }}
 {{- end }}
-  launch.sh: |
-{{ tuple "bin/_spgwu-launch.sh.tpl" . | include "mcord-services.template" | indent 4 }}
+  run.sh: |
+{{ tuple "bin/_spgwu-run.sh.tpl" . | include "mcord-services.template" | indent 4 }}
diff --git a/mcord-release/mcord-services/templates/hss.yaml b/mcord-release/mcord-services/templates/hss.yaml
index a2478f8..4ed1a1d 100644
--- a/mcord-release/mcord-services/templates/hss.yaml
+++ b/mcord-release/mcord-services/templates/hss.yaml
@@ -1,27 +1,30 @@
----
-# Copyright 2018-present Open Networking Foundation
-# Copyright 2018 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2018-present Open Networking Foundation
+Copyright 2018 Intel Corporation
 
-# Default values for mcord-vepc-helm.
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+
+Default values for mcord-vepc-helm.
+This is a YAML-formatted file.
+Declare variables to be passed into your templates.
+*/}}
 ---
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ .Values.hss.name }}
+  name: hss
+  labels:
+{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 4 }}
 data:
   acl.conf: |
     ALLOW_OLD_TLS   *.cluster.local
@@ -204,10 +207,12 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.hss.name }}
+  name: hss
+  labels:
+{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   selector:
-    app: {{ .Values.hss.name }}
+{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 4 }}
   clusterIP: None
   ports:
   - name: s6a
@@ -217,24 +222,28 @@
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
-  name: {{ .Values.hss.name }}
+  name: hss
   labels:
-    app: {{ .Values.hss.name }}
+{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   replicas: 1
   selector:
     matchLabels:
-      app: {{ .Values.hss.name }}
-  serviceName: {{ .Values.hss.name }}
+{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 6 }}
+  serviceName: hss
   template:
     metadata:
       labels:
-        app: {{ .Values.hss.name }}
+{{ tuple "hss" . | include "mcord-services.metadata_labels" | indent 8 }}
     spec:
+    {{- if .Values.nodeSelectors.enabled }}
+      nodeSelector:
+        {{ .Values.nodeSelectors.hss.label }}: {{ .Values.nodeSelectors.hss.value }}
+    {{- end }}
       initContainers:
       - name: init-hss
-        image: {{ .Values.hss.initimage }}
-        imagePullPolicy: Always
+        image: {{ .Values.images.tags.hssdb }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         command: [ "bash", "-xc"]
         # TODO: Move the SIM card configuration into values.yaml
         args:
@@ -246,27 +255,27 @@
           until data_provisioning_mme.sh 1 19136246000 smsrouter.test3gpp.net test3gpp.net 0 $HSSDB_ADDR; do echo "setting up smsrouter"; sleep 2; done;
         env:
         - name: HSSDB_ADDR
-          value: {{ .Values.hssdb.name }}
+          value: hssdb
         - name: MME_HOST
           value: {{ tuple "mme" "host" . | include "mcord-services.endpoint_lookup" | quote }}
         - name: MME_REALM
           value: {{ tuple "mme" "realm" . | include "mcord-services.endpoint_lookup" | quote }}
       containers:
       - name: hss
-        image: {{ .Values.hss.image }}
-        imagePullPolicy: {{ .Values.global.imagepullpolicy }}
+        image: {{ .Values.images.tags.hss }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         stdin: true
         tty: true
         env:
         - name: HSSDB_ADDR
-          value: {{ .Values.hssdb.name | quote }}
+          value: hssdb
         - name: MME_IDENTITY
           value: {{ tuple "mme" "identity" . | include "mcord-services.endpoint_lookup" | quote }}
         command: ["bash", "-c", "/opt/c3po/hss/launch.sh; sleep 3600"]
+      {{- if .Values.resources.enabled }}
         resources:
-          limits:
-            cpu: {{ .Values.hss.cpu | quote }}
-            memory: {{ .Values.hss.memory }}
+{{ toYaml .Values.resources.hss | indent 10 }}
+      {{- end }}
         volumeMounts:
         - name: hss-script
           mountPath: /opt/c3po/hss/launch.sh
@@ -276,9 +285,9 @@
       volumes:
       - name: hss-script
         configMap:
-          name: {{ .Values.hss.name }}
+          name: hss
           defaultMode: 493
       - name: hss-config
         configMap:
-          name: {{ .Values.hss.name }}
+          name: hss
           defaultMode: 420
diff --git a/mcord-release/mcord-services/templates/hssdb.yaml b/mcord-release/mcord-services/templates/hssdb.yaml
index 7697838..7bd033b 100644
--- a/mcord-release/mcord-services/templates/hssdb.yaml
+++ b/mcord-release/mcord-services/templates/hssdb.yaml
@@ -1,23 +1,26 @@
----
-# Copyright 2018-present Open Networking Foundation
-# Copyright 2018 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2018-present Open Networking Foundation
+Copyright 2018 Intel Corporation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 ---
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ .Values.hssdb.name }}
+  name: hssdb
+  labels:
+{{ tuple "hssdb" . | include "mcord-services.metadata_labels" | indent 4 }}
 data:
   cassandra-rackdc.properties: |
     dc=DC1
@@ -27,55 +30,55 @@
 apiVersion: v1
 kind: Service
 metadata:
+  name: hssdb
   labels:
-    app: {{ .Values.hssdb.name }}
-  name: {{ .Values.hssdb.name }}
+{{ tuple "hssdb" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   clusterIP: None
   ports:
   - name: cql
     port: 9042
   selector:
-    app: {{ .Values.hssdb.name }}
+{{ tuple "hssdb" . | include "mcord-services.metadata_labels" | indent 4 }}
 ---
 apiVersion: "apps/v1"
 kind: StatefulSet
 metadata:
-  name: {{ .Values.hssdb.name }}
+  name: hssdb
   labels:
-     app: {{ .Values.hssdb.name }}
+{{ tuple "hssdb" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
-  serviceName: {{ .Values.hssdb.name }}
-  replicas: 1 # 3
+  serviceName: hssdb
+  replicas: 1
   selector:
     matchLabels:
-      app: {{ .Values.hssdb.name }}
+{{ tuple "hssdb" . | include "mcord-services.metadata_labels" | indent 6 }}
   template:
     metadata:
       labels:
-        app: {{ .Values.hssdb.name }}
+{{ tuple "hssdb" . | include "mcord-services.metadata_labels" | indent 8 }}
     spec:
+    {{- if .Values.nodeSelectors.enabled }}
+      nodeSelector:
+        {{ .Values.nodeSelectors.hssdb.label }}: {{ .Values.nodeSelectors.hssdb.value }}
+    {{- end }}
       securityContext:
         runAsUser: 999
         fsGroup: 999
       containers:
       - name: cassandra
-        image: {{ .Values.hssdb.image }}
-        imagePullPolicy: {{ .Values.global.imagepullpolicy }}
+        image: {{ .Values.images.tags.hssdb }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         ports:
         - containerPort: 9042
           name: cql
-        resources:
-          limits:
-            cpu: {{ .Values.hssdb.cpu | quote }}
-            memory: {{ .Values.hssdb.memory }}
         env:
         - name: MAX_HEAP_SIZE
           value: 512M
         - name: HEAP_NEWSIZE
           value: 100M
         - name: CASSANDRA_SEEDS
-          value: "hssdb-0.{{ .Values.hssdb.name }}.{{ .Values.global.namespace }}.{{ .Values.global.fqdn }}"
+          value: {{ tuple "hssdb" "identity" . | include "mcord-services.endpoint_lookup" | quote }}
         - name: CASSANDRA_CLUSTER_NAME
           value: "HSS Cluster"
         - name: CASSANDRA_RPC_ADDRESS
@@ -89,21 +92,15 @@
             command: ["/bin/bash", "-c", "nodetool status -r | awk -v h=$(hostname) '$2==h {exit ($1==\"UN\" ? 0 : -1)}'"]
           initialDelaySeconds: 15
           timeoutSeconds: 5
+      {{- if .Values.resources.enabled }}
+        resources:
+{{ toYaml .Values.resources.hssdb | indent 10 }}
+      {{- end }}
         volumeMounts:
         - name: hssdb-config
           mountPath: /etc/cassandra/cassandra-rackdc.properties
           subPath: cassandra-rackdc.properties
-        #- name: hssdb-data
-        #  mountPath: /var/lib/cassandra
       volumes:
       - name: hssdb-config
         configMap:
-          name: {{ .Values.hssdb.name }}
-#  volumeClaimTemplates:
-#  - metadata:
-#      name: hssdb-data
-#    spec:
-#      accessModes: [ "ReadWriteOnce" ]
-#      resources:
-#        requests:
-#          storage: 1Gi
+          name: hssdb
diff --git a/mcord-release/mcord-services/templates/mme.yaml b/mcord-release/mcord-services/templates/mme.yaml
deleted file mode 100644
index 06f47be..0000000
--- a/mcord-release/mcord-services/templates/mme.yaml
+++ /dev/null
@@ -1,296 +0,0 @@
----
-# Copyright 2018-present Open Networking Foundation
-# Copyright 2018 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-{{- if eq .Values.mme.type "c3po" }}
----
-apiVersion: v1
-kind: ConfigMap
-metadata:
-  name: {{ .Values.mme.name }}
-data:
-  launch.sh: |
-    #!/bin/bash
-
-    cd /opt/c3po/mme/bin
-    cp /etc/mme/conf/{vbsm_cfg.txt,vbfd.conf} .
-
-    # from vbsm_cfg.txt
-    SGW_S11_IP=${SGW_S11_IP:-sgw.localdomain}
-    ENB_S1AP_IP=${ENB_S1AP_IP:-enb1.localdomain}
-    ENB_S1AP_PORT=${ENB_S1AP_PORT:-36412}
-    MME_ETH0_IP=${MME_ETH0_IP:-0.0.0.0}
-
-    # from vbfd.conf
-    HSS_CONNECT_PEER=${HSS_CONNECT_PEER:-hss.localdomain}
-    HSS_S6A_IP=${HSS_S6A_IP:-hss.localdomain}
-    HSS_PORT=${HSS_PORT:-3868}
-    VAR_HSS_REALM=${VAR_HSS_REALM:-openair4G.eur}
-
-    sed -i "s/SGW_S11_IP/$(dig $SGW_S11_IP +short)/g" vbsm_cfg.txt
-    sed -i "s/ENB_S1AP_IP/$ENB_S1AP_IP/g" vbsm_cfg.txt
-    sed -i "s/ENB_S1AP_PORT/$ENB_S1AP_PORT/g" vbsm_cfg.txt
-    sed -i "s/MME_ETH0_IP/$MME_ETH0_IP/g" vbsm_cfg.txt
-    sed -i "s/VAR_HSS_HOST/$HSS_CONNECT_PEER/g" vbsm_cfg.txt
-    sed -i "s/VAR_HSS_REALM/$VAR_HSS_REALM/g" vbsm_cfg.txt
-
-    MME_HOST=$(hostname)
-    MME_DOMAIN=$(dnsdomainname)
-    sed -i "s/HSS_CONNECT_PEER/$HSS_CONNECT_PEER/g" vbfd.conf
-    sed -i "s/HSS_S6A_IP/$HSS_S6A_IP/g" vbfd.conf
-    sed -i "s/HSS_PORT/$HSS_PORT/g" vbfd.conf
-    sed -i "s/MME_IDENTITY/$MME_HOST.$MME_DOMAIN/g" vbfd.conf
-    sed -i "s/MME_REALM/$MME_DOMAIN/g" vbfd.conf
-    sed -i "s/MME_HOST/$MME_HOST/g" vbfd.conf
-
-    # generate the certs
-    ./make_certs.sh $MME_HOST $MME_DOMAIN
-
-    # finally, launch
-    ./vb_acc
-  vbfd.conf: |
-    # -------- Test configuration ---------
-
-    # Identity = "<diameter_host>.<diameter_realm>";
-    Identity = "MME_IDENTITY";
-    Realm = "MME_REALM";
-    # Port = 3868;
-    # SecPort = 3869;
-
-    ConnectPeer = "HSS_CONNECT_PEER" { ConnectTo = "HSS_S6A_IP"; No_TLS; port = HSS_PORT; };
-
-    # TLS_Cred = "<diameter_host>.cert.pem", "<diameter_host>.key.pem";
-    TLS_Cred = "MME_HOST.cert.pem",
-        "MME_HOST.key.pem";
-    TLS_CA = "cacert.pem";
-
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_3gpp2_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_draftload_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_etsi283034_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4004_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4006bis_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4072_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc4590_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5447_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5580_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5777_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc5778_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6734_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc6942_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7155_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7683_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_rfc7944_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29061_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29128_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29154_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29173_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29212_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29214_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29215_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29217_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29229_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29272_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29273_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29329_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29336_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29337_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29338_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29343_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29344_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29345_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29368_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts29468_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_ts32299_avps.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_S6as6d.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_S6c.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_S6t.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_SGd.fdx";
-    LoadExtension = "/usr/local/lib/freeDiameter/dict_T6aT6bT7.fdx";
-  vbsm_cfg.txt: |
-    # Configuration file for MME
-
-    #####  NOTE: Please Do NOT change the order of the parameters #####
-
-    # EGTP related
-    VBSM_EG_DFLT_PORT                2123                     # EGTP Default port
-    VBSM_EG_NONDFLT_PORT             2124                     # EGTP Non Default port
-    VBSM_EG_S10_NONDFLT_PORT         2125                     # EGTP Non Default
-    VBSM_EG_S3_NONDFLT_PORT          2126                     # EGTP Non Default port for S3 interface towards SGSN
-                                                              # port for S10
-    VBSM_EG_DFLT_HOST_NAME           "sutlej.ccin.ccpu.com"   # EGTP host name
-
-    # E-NodeB related
-    VBSM_ENB_ADDR_1                  "ENB_S1AP_IP"      # IP address of eNodeB
-    VBSM_ENB_PORT_1                  "ENB_S1AP_PORT"    # eNodeB port
-    #VBSM_ENB_ADDR_2                  "172.26.20.180"    # IP address of eNodeB
-    #VBSM_ENB_PORT_2                  36422              # eNodeB port
-
-    # MME related
-    VBSM_MME_IPADDR                  "MME_ETH0_IP"    # MME IP address
-    VBSM_MME_S1AP_IPADDR             "MME_ETH0_IP"    # MME IP address associated with the S1AP interface
-    VBSM_MME_EGTP_IPADDR             "MME_ETH0_IP"    # MME IP address associated with the EGTP interface
-    VBSM_MME_SCTP_PORT               36412              # MME SCTP port
-
-    VBSM_SGW_IPADDR                  "SGW_S11_IP"   # SGW IP address
-    VBSM_PGW_IPADDR                  "192.168.1.105"    # PDN-GW IP address
-
-    VBSM_UE_NUM                      1000             # Support 1000 UE's
-    VBSM_SCTP_UDP_SERV_TYPE          0              #service type,default 0 SCTP
-
-    # Debug mask to be set; each represent
-    #different debug masks to be set (1 and 0 to unset)
-    #in the form |LVB_DBGMASK_INFO|LVB_DBGMASK_ERROR|LVB_DBGMASK_TRC|LVB_DBGMASK_MEM
-
-    VBSM_MME_DBG_MASK                1111
-    VBSM_DBG_MASK                    1111
-    VBSM_NW_INIATED_DETACH_TIMER     1000
-
-    VBSM_MCC_DIG1         2
-    VBSM_MCC_DIG2         0
-    VBSM_MCC_DIG3         8
-
-    VBSM_MNC_DIG1         0
-    VBSM_MNC_DIG2         1
-    VBSM_MNC_DIG3         -1
-
-    # Target PLMN ID format [ MCC + MNC], + is concatination operator
-    # If MNC has two digits, the last charater shall be 'f'
-    # Valid Configurations: 11223f, 112345.
-    VBSM_TARGET_MME_PLMN_ID          31310f
-    VBSM_TARGET_MME_IP_ADDR          "192.25.1.100"
-
-    VBSM_T3412                        32
-
-    VBSM_SGSN_IP_ADDR                "192.25.1.195"
-
-
-    VBSM_SGSN_PLMN_ID        31311f
-
-    VBSM_FD_CFG  "vbfd.conf"
-    VBSM_HSS_HOST "VAR_HSS_HOST"
-    VBSM_HSS_REALM "VAR_HSS_REALM"
-
-    # set VBSM_DISABLE_EPC_DNS 0 - enable DNS,  1 - disable DNS
-    VBSM_DISABLE_EPC_DNS 1
-    VBSM_DISABLE_EIA0 1
-    VBSM_REL_CAP 1
-    VBSM_MME_NAME "vmmestandalone"
-    VBSM_S1C_SCTP_INSTREAMS 10
-    VBSM_S1C_SCTP_OUTSTREAMS 10
-    VBSM_MAX_ENB  2
-    VBSM_NO_OFGUMMEIS 1
-    VBSM_MMECODE  1
-    VBSM_MMEGRPID 1
-    VBSM_NO_OF_TAI 1
-    VBSM_TAI_LIST    {{"{{1,2,0,8,0,1,1}}"}}
-
-    VBSM_SMS_ROUTER_HOST "smsrouter.test3gpp.net"
-    VBSM_SMS_ROUTER_REALM "test3gpp.net"
----
-apiVersion: v1
-kind: Service
-metadata:
-  name: mme
-spec:
-  selector:
-    app: mme
-  clusterIP: None
-  ports:
-  - name: s11
-    port: 2123
-    protocol: UDP
-  - name: s1ap
-    port: 36412
-    protocol: TCP
-  - name: s6a
-    port: 3868
-    protocol: TCP
----
-apiVersion: apps/v1
-kind: StatefulSet
-metadata:
-  name: {{ .Values.mme.name }}
-  labels:
-    app: {{ .Values.mme.name }}
-spec:
-  replicas: 1
-  selector:
-    matchLabels:
-      app: {{ .Values.mme.name }}
-  serviceName: {{ .Values.mme.name | quote }}
-  template:
-    metadata:
-      labels:
-        app: {{ .Values.mme.name }}
-    spec:
-      # Insert iptable rules as MME implements a userspace SCTP stack
-      initContainers:
-      - name: init-mme
-        image: {{ .Values.mme.initimage }}
-        command: [ "sh", "-c"]
-        securityContext:
-          capabilities:
-            add:
-              - NET_ADMIN
-        args:
-        - iptables -A OUTPUT -p sctp --sport 36412 --chunk-types any ABORT -j DROP;
-          until nslookup hss-0.{{ .Values.hss.name }}.{{ .Values.global.namespace }}.{{ .Values.global.fqdn }};
-          do echo "waiting for hss"; sleep 2; done;
-      containers:
-      - name: mme
-        image: {{ .Values.mme.image | quote }}
-        imagePullPolicy: {{ .Values.global.imagepullpolicy }}
-        env:
-          - name: SGW_S11_IP
-            value: cp-0.cp
-          - name: MME_ETH0_IP
-            valueFrom:
-              fieldRef:
-                fieldPath: status.podIP
-          - name: ENB_S1AP_IP
-            value: {{ .Values.enb.host | quote }}
-          - name: ENB_S1AP_PORT
-            value: {{ .Values.enb.port | quote }}
-          - name: HSS_CONNECT_PEER
-            value: hss-0.{{ .Values.hss.name }}.{{ .Values.global.namespace }}.{{ .Values.global.fqdn }}
-          - name: VAR_HSS_REALM
-            value: {{ .Values.hss.name }}.{{ .Values.global.namespace }}.{{ .Values.global.fqdn }}
-          - name: HSS_S6A_IP
-            value: hss-0.{{ .Values.hss.name }}.{{ .Values.global.namespace }}.{{ .Values.global.fqdn }}
-          - name: HSS_PORT
-            value: "3868"
-        stdin: true
-        tty: true
-        #command: [ "sleep", "3600"]
-        resources:
-          limits:
-            cpu: {{ .Values.mme.cpu | quote }}
-            memory: {{ .Values.mme.memory }}
-        volumeMounts:
-        - name: mme-script
-          mountPath: /opt/c3po/mme/bin/launch.sh
-          subPath: launch.sh
-        - name: mme-config
-          mountPath: /etc/mme/conf
-      volumes:
-      - name: mme-script
-        configMap:
-          name: {{ .Values.mme.name }}
-          defaultMode: 493
-      - name: mme-config
-        configMap:
-          name: {{ .Values.mme.name }}
-          defaultMode: 420
-{{- end }}
diff --git a/mcord-release/mcord-services/templates/networks.yaml b/mcord-release/mcord-services/templates/networks.yaml
index 856345d..075c94e 100644
--- a/mcord-release/mcord-services/templates/networks.yaml
+++ b/mcord-release/mcord-services/templates/networks.yaml
@@ -1,40 +1,41 @@
----
-# Copyright 2018-present Open Networking Foundation
-# Copyright 2018 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2018-present Open Networking Foundation
+Copyright 2018 Intel Corporation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 
 ---
 apiVersion: "k8s.cni.cncf.io/v1"
 kind: NetworkAttachmentDefinition
 metadata:
   name: s1u-net
-{{- if $.Values.network.sriov.enabled }}
+{{- if $.Values.networks.sriov.enabled }}
   annotations:
     k8s.v1.cni.cncf.io/resourceName: intel.com/sriov_vfio
 {{- end }}
 spec:
   config: '{
-    "type": {{ .Values.network.s1u.cni_plugin | quote }},
+    "type": {{ .Values.networks.cniPlugin | quote }},
     "ipam": {
-        "type": {{ .Values.network.s1u.ipam | quote }},
-    {{- if eq .Values.network.s1u.ipam "host-local" }}
-        "subnet": {{ .Values.network.s1u.subnet | quote }},
-        "gateway": {{ .Values.network.s1u.gateway | quote }}
-    {{- else if eq .Values.network.s1u.ipam "centralip" }}
+        "type": {{ .Values.networks.ipam | quote }},
+    {{- if eq .Values.networks.ipam "host-local" }}
+        "subnet": {{ .Values.networks.s1u.subnet | quote }},
+        "gateway": {{ .Values.networks.s1u.gateway | quote }}
+    {{- else if eq .Values.networks.ipam "centralip" }}
         "ipType": "cluster",
-        "network": {{ .Values.network.s1u.subnet | quote }},
-        "etcdURL": {{ .Values.global.etcdurl | quote }}
+        "network": {{ .Values.networks.s1u.subnet | quote }},
+        "etcdURL": {{ .Values.networks.etcdurl | quote }}
     {{- end }}
     }
   }'
@@ -43,22 +44,22 @@
 kind: NetworkAttachmentDefinition
 metadata:
   name: sgi-net
-{{- if $.Values.network.sriov.enabled }}
+{{- if $.Values.networks.sriov.enabled }}
   annotations:
     k8s.v1.cni.cncf.io/resourceName: intel.com/sriov_vfio
 {{- end }}
 spec:
   config: '{
-    "type": {{ .Values.network.sgi.cni_plugin | quote }},
+    "type": {{ .Values.networks.cniPlugin | quote }},
     "ipam": {
-        "type": {{ .Values.network.sgi.ipam | quote }},
-    {{- if eq .Values.network.sgi.ipam "host-local" }}
-        "subnet": {{ .Values.network.sgi.subnet | quote }},
-        "gateway": {{ .Values.network.sgi.gateway | quote }}
-    {{- else if eq .Values.network.sgi.ipam "centralip" }}
+        "type": {{ .Values.networks.ipam | quote }},
+    {{- if eq .Values.networks.ipam "host-local" }}
+        "subnet": {{ .Values.networks.sgi.subnet | quote }},
+        "gateway": {{ .Values.networks.sgi.gateway | quote }}
+    {{- else if eq .Values.networks.ipam "centralip" }}
         "ipType": "cluster",
-        "network": {{ .Values.network.sgi.subnet | quote }},
-        "etcdURL": {{ .Values.global.etcdurl | quote }}
+        "network": {{ .Values.networks.sgi.subnet | quote }},
+        "etcdURL": {{ .Values.networks.etcdurl | quote }}
     {{- end }}
     }
   }'
diff --git a/mcord-release/mcord-services/templates/service-mme.yaml b/mcord-release/mcord-services/templates/service-mme.yaml
index fbcd602..db6a8af 100644
--- a/mcord-release/mcord-services/templates/service-mme.yaml
+++ b/mcord-release/mcord-services/templates/service-mme.yaml
@@ -1,35 +1,34 @@
----
-# Copyright 2019-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2019-present Open Networking Foundation
 
-{{- if eq .Values.mme.type "openmme" }}
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+
 ---
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.mme.name }}
+  name: mme
+  labels:
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   selector:
-    app: {{ .Values.mme.name }}
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
   clusterIP: None
   ports:
   - name: s11
-    port: {{ .Values.mme.conf.s11.egtp_default_port }}
+    port: {{ .Values.config.mme.s11.egtp_default_port }}
     protocol: UDP
-  - name: s1ap
-    port: {{ .Values.mme.conf.s1ap.sctp_port }}
-    protocol: SCTP
   - name: s6a
     port: 3868
     protocol: TCP
@@ -37,14 +36,15 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.mme.name }}-external
+  name: mme-sctp
+  labels:
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   selector:
-    app: {{ .Values.mme.name }}
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
   type: NodePort
   ports:
     - name: s1ap
-      port: {{ .Values.mme.conf.s1ap.sctp_port }}
-      nodePort: {{ .Values.mme.conf.s1ap.sctp_port_external }}
+      port: {{ .Values.config.mme.s1ap.sctp_port }}
+      nodePort: {{ .Values.config.mme.s1ap.sctp_port_external }}
       protocol: SCTP
-{{- end }}
diff --git a/mcord-release/mcord-services/templates/service-spgwu.yaml b/mcord-release/mcord-services/templates/service-spgwu.yaml
index 927c20b..6b07e4c 100644
--- a/mcord-release/mcord-services/templates/service-spgwu.yaml
+++ b/mcord-release/mcord-services/templates/service-spgwu.yaml
@@ -1,26 +1,28 @@
----
-# Copyright 2019-present Open Networking Foundation
-# Copyright 2019 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2019-present Open Networking Foundation
+Copyright 2019 Intel Corporation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+
 ---
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.spgwu.name }}
+  name: spgwu
 spec:
   selector:
-    app: {{ .Values.spgwu.name }}
+{{ tuple "spgwu" . | include "mcord-services.metadata_labels" | indent 4 }}
   clusterIP: None
   ports:
   - name: cpdp
diff --git a/mcord-release/mcord-services/templates/spgwc.yaml b/mcord-release/mcord-services/templates/spgwc.yaml
index 8082208..3dbd2e5 100644
--- a/mcord-release/mcord-services/templates/spgwc.yaml
+++ b/mcord-release/mcord-services/templates/spgwc.yaml
@@ -1,28 +1,33 @@
----
-# Copyright 2018-present Open Networking Foundation
-# Copyright 2018 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2018-present Open Networking Foundation
+Copyright 2018 Intel Corporation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 ---
 apiVersion: v1
 kind: ServiceAccount
 metadata:
-  name: spgwc-pod-reader
+  name: spgwc
+  labels:
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 4 }}
 ---
 kind: Role
 apiVersion: rbac.authorization.k8s.io/v1
 metadata:
-  name: pod-reader
+  name: spgwc
+  labels:
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 4 }}
 rules:
 - apiGroups: [""]
   resources: ["pods"]
@@ -31,19 +36,23 @@
 kind: RoleBinding
 apiVersion: rbac.authorization.k8s.io/v1
 metadata:
-  name: spgwc-pod-reader-rb
+  name: spgwc
+  labels:
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 4 }}
 roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: Role
-  name: pod-reader
+  name: spgwc
 subjects:
 - kind: ServiceAccount
-  name: spgwc-pod-reader
+  name: spgwc
 ---
 apiVersion: v1
 kind: ConfigMap
 metadata:
-  name: {{ .Values.spgwc.name }}
+  name: spgwc
+  labels:
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 4 }}
 data:
   launch.sh: |
     #!/bin/bash -xe
@@ -432,10 +441,12 @@
 apiVersion: v1
 kind: Service
 metadata:
-  name: {{ .Values.spgwc.name }}
+  name: spgwc
+  labels:
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   selector:
-    app: {{ .Values.spgwc.name }}
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 4 }}
   clusterIP: None
   ports:
   - name: s11
@@ -448,24 +459,28 @@
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
-  name: {{ .Values.spgwc.name }}
+  name: spgwc
   labels:
-    app: {{ .Values.spgwc.name }}
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   replicas: 1
   selector:
     matchLabels:
-      app: {{ .Values.spgwc.name }}
-  serviceName: {{ .Values.spgwc.name | quote }}
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 6 }}
+  serviceName: spgwc
   template:
     metadata:
       labels:
-        app: {{ .Values.spgwc.name }}
+{{ tuple "spgwc" . | include "mcord-services.metadata_labels" | indent 8 }}
     spec:
-      serviceAccount: spgwc-pod-reader
+    {{- if .Values.nodeSelectors.enabled }}
+      nodeSelector:
+        {{ .Values.nodeSelectors.spgwc.label }}: {{ .Values.nodeSelectors.spgwc.value }}
+    {{- end }}
+      serviceAccountName: spgwc
       initContainers:
       - name: init-spgwc
-        image: {{ .Values.spgwc.initimage }}
+        image: {{ .Values.images.tags.init }}
         command: ["/bin/sh", "-co", "pipefail"]
         args:
         - until $(kubectl get pod -ojson spgwu-0 2>/dev/null | jq -r '.metadata.annotations["k8s.v1.cni.cncf.io/networks-status"]' | jq -r '.[] | select(.name=="s1u-net") | .ips[0]' > /opt/cp/config/shared/SGW_S1U_IP | [ -s /opt/cp/config/shared/SGW_S1U_IP ]);
@@ -475,8 +490,8 @@
           mountPath: /opt/cp/config/shared
       containers:
       - name: spgwc
-        image: {{ .Values.spgwc.image }}
-        imagePullPolicy: {{ .Values.global.imagepullpolicy }}
+        image: {{ .Values.images.tags.spgwc }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         stdin: true
         tty: true
         command: ["/opt/cp/scripts/launch.sh"]
@@ -487,14 +502,12 @@
               containerName: spgwc
               resource: limits.memory
               divisor: 1Mi
-        #- name: SGW_S1U_IP
-        #  value: "11.1.1.1"
         - name: CP_ADDR
           valueFrom:
             fieldRef:
               fieldPath: status.podIP
         - name: DP_ADDR
-          value: spgwu-0.{{ .Values.spgwu.name }}.{{ .Values.global.namespace }}.{{ .Values.global.fqdn }}
+          value: spgwu-0.spgwu
         - name: MME_S11_IP
           value: {{ tuple "mme" "identity" . | include "mcord-services.endpoint_lookup" | quote }}
         - name: APN
@@ -503,6 +516,10 @@
           value: "16.0.0.0"
         - name: IP_POOL_MASK
           value: "255.0.0.0"
+      {{- if .Values.resources.enabled }}
+        resources:
+{{ toYaml .Values.resources.spgwc | indent 10 }}
+      {{- end }}
         volumeMounts:
         - name: cp-script
           mountPath: /opt/cp/scripts/launch.sh
@@ -511,24 +528,14 @@
           mountPath: /etc/cp/config
         - name: shared-data
           mountPath: /opt/cp/config/shared
-        #- name: hugepage
-        #  mountPath: /dev/hugepages
-        resources:
-          limits:
-            #hugepages-2Mi: 4Gi
-            cpu: {{ .Values.spgwc.cpu | quote }}
-            memory: {{ .Values.spgwc.memory }}
       volumes:
       - name: cp-script
         configMap:
-          name: {{ .Values.spgwc.name }}
+          name: spgwc
           defaultMode: 493
       - name: cp-config
         configMap:
-          name: {{ .Values.spgwc.name }}
+          name: spgwc
           defaultMode: 420
       - name: shared-data
         emptyDir: {}
-        #- name: hugepage
-        #  emptyDir:
-        #    medium: HugePages
diff --git a/mcord-release/mcord-services/templates/statefulset-mme.yaml b/mcord-release/mcord-services/templates/statefulset-mme.yaml
index f2ece70..30c6eaa 100644
--- a/mcord-release/mcord-services/templates/statefulset-mme.yaml
+++ b/mcord-release/mcord-services/templates/statefulset-mme.yaml
@@ -1,35 +1,33 @@
----
-# Copyright 2019-present Open Networking Foundation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2019-present Open Networking Foundation
 
-{{- if eq .Values.mme.type "openmme" }}
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
 
-{{- $releaseName := .Release.Name }}
-{{- $namespace := .Values.global.namespace }}
-{{- $name := .Values.mme.name }}
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
+
 ---
 apiVersion: v1
 kind: ServiceAccount
 metadata:
-  name: {{ $releaseName }}-{{ $name }}
-  namespace: {{ $namespace }}
+  name: mme
+  labels:
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
 ---
 kind: Role
 apiVersion: rbac.authorization.k8s.io/v1
 metadata:
-  name: {{ $releaseName }}-{{ $name }}
-  namespace: {{ $namespace }}
+  name: mme
+  labels:
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
 rules:
   - apiGroups:
       - ""
@@ -49,39 +47,43 @@
 kind: RoleBinding
 apiVersion: rbac.authorization.k8s.io/v1
 metadata:
-  name: {{ $releaseName }}-{{ $name }}
-  namespace: {{ $namespace }}
+  name: mme
+  labels:
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
 roleRef:
   apiGroup: rbac.authorization.k8s.io
   kind: Role
-  name: {{ $releaseName }}-{{ $name }}
+  name: mme
 subjects:
 - kind: ServiceAccount
-  name: {{ $releaseName }}-{{ $name }}
+  name: mme
 ---
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
-  name: {{ $name }}
-  namespace: {{ $namespace }}
+  name: mme
   labels:
-    app: {{ $name }}
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   replicas: 1
   selector:
     matchLabels:
-      app: {{ $name }}
-  serviceName: {{ $name | quote }}
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 6 }}
+  serviceName: mme
   template:
     metadata:
       labels:
-        app: {{ $name }}
+{{ tuple "mme" . | include "mcord-services.metadata_labels" | indent 8 }}
     spec:
-      serviceAccountName: {{ $releaseName }}-{{ $name }}
+    {{- if .Values.nodeSelectors.enabled }}
+      nodeSelector:
+        {{ .Values.nodeSelectors.mme.label }}: {{ .Values.nodeSelectors.mme.value }}
+    {{- end }}
+      serviceAccountName: mme
       initContainers:
       - name: mme-dep-check
-        image: {{ .Values.mme.images.tags.dep_check | quote }}
-        imagePullPolicy: {{ .Values.mme.images.pullPolicy }}
+        image: {{ .Values.images.tags.depCheck | quote }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         securityContext:
           allowPrivilegeEscalation: false
           readOnlyRootFilesystem: false
@@ -102,15 +104,15 @@
           - name: COMMAND
             value: "echo done"
           - name: DEPENDENCY_POD_JSON
-            value: '[{"labels": {"app": {{ .Values.spgwc.name | quote }}}, "requireSameNode": false}, {"labels": {"app": {{ .Values.hss.name | quote }}}, "requireSameNode": false}]'
+            value: '[{"labels": {"app": "spgwc"}, "requireSameNode": false}, {"labels": {"app": "hss"}, "requireSameNode": false}]'
           # add dependency job for make_certs.sh
         command:
           - kubernetes-entrypoint
         volumeMounts:
           []
       - name: mme-init
-        image: {{ .Values.mme.images.tags.mme | quote }}
-        imagePullPolicy: {{ .Values.mme.images.pullPolicy }}
+        image: {{ .Values.images.tags.mme | quote }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         command: ["/opt/mme/scripts/mme-init.sh"]
         env:
         - name: MME_LOCAL_IP
@@ -127,11 +129,15 @@
           mountPath: /opt/mme/config/shared
       containers:
       - name: mme-app
-        image: {{ .Values.mme.images.tags.mme | quote }}
-        imagePullPolicy: {{ .Values.mme.images.pullPolicy }}
+        image: {{ .Values.images.tags.mme | quote }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         command: ["bash", "-xc"]
         args:
         - /opt/mme/scripts/mme-run.sh mme-app
+      {{- if .Values.resources.enabled }}
+        resources:
+{{ toYaml .Values.resources.mme | indent 10 }}
+      {{- end }}
         volumeMounts:
         - name: scripts
           mountPath: /opt/mme/scripts/mme-run.sh
@@ -141,11 +147,15 @@
         - name: shared-app
           mountPath: /tmp
       - name: s1ap-app
-        image: {{ .Values.mme.images.tags.mme | quote }}
-        imagePullPolicy: {{ .Values.mme.images.pullPolicy }}
+        image: {{ .Values.images.tags.mme | quote }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         command: ["bash", "-xc"]
         args:
         - /opt/mme/scripts/mme-run.sh s1ap-app
+      {{- if .Values.resources.enabled }}
+        resources:
+{{ toYaml .Values.resources.mme | indent 10 }}
+      {{- end }}
         volumeMounts:
         - name: scripts
           mountPath: /opt/mme/scripts/mme-run.sh
@@ -155,11 +165,15 @@
         - name: shared-app
           mountPath: /tmp
       - name: s6a-app
-        image: {{ .Values.mme.images.tags.mme | quote }}
-        imagePullPolicy: {{ .Values.mme.images.pullPolicy }}
+        image: {{ .Values.images.tags.mme | quote }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         command: ["bash", "-xc"]
         args:
         - /opt/mme/scripts/mme-run.sh s6a-app
+      {{- if .Values.resources.enabled }}
+        resources:
+{{ toYaml .Values.resources.mme | indent 10 }}
+      {{- end }}
         volumeMounts:
         - name: scripts
           mountPath: /opt/mme/scripts/mme-run.sh
@@ -169,11 +183,15 @@
         - name: shared-app
           mountPath: /tmp
       - name: s11-app
-        image: {{ .Values.mme.images.tags.mme | quote }}
-        imagePullPolicy: {{ .Values.mme.images.pullPolicy }}
+        image: {{ .Values.images.tags.mme | quote }}
+        imagePullPolicy: {{ .Values.images.pullPolicy }}
         command: ["bash", "-xc"]
         args:
         - /opt/mme/scripts/mme-run.sh s11-app
+      {{- if .Values.resources.enabled }}
+        resources:
+{{ toYaml .Values.resources.mme | indent 10 }}
+      {{- end }}
         volumeMounts:
         - name: scripts
           mountPath: /opt/mme/scripts/mme-run.sh
@@ -185,14 +203,13 @@
       volumes:
       - name: scripts
         configMap:
-          name: {{ $name }}
+          name: mme
           defaultMode: 493
       - name: configs
         configMap:
-          name: {{ $name }}
+          name: mme
           defaultMode: 420
       - name: shared-data
         emptyDir: {}
       - name: shared-app
         emptyDir: {}
-{{- end }}
diff --git a/mcord-release/mcord-services/templates/statefulset-spgwu.yaml b/mcord-release/mcord-services/templates/statefulset-spgwu.yaml
index 40bf94a..6b4f845 100644
--- a/mcord-release/mcord-services/templates/statefulset-spgwu.yaml
+++ b/mcord-release/mcord-services/templates/statefulset-spgwu.yaml
@@ -1,50 +1,51 @@
----
-# Copyright 2018-present Open Networking Foundation
-# Copyright 2018 Intel Corporation
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
+{{/*
+Copyright 2018-present Open Networking Foundation
+Copyright 2018 Intel Corporation
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
+*/}}
 ---
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
-  name: {{ .Values.spgwu.name }}
+  name: spgwu
   labels:
-    app: {{ .Values.spgwu.name }}
+{{ tuple "spgwu" . | include "mcord-services.metadata_labels" | indent 4 }}
 spec:
   replicas: 1
   selector:
     matchLabels:
-      app: {{ .Values.spgwu.name }}
-  serviceName: {{ .Values.spgwu.name | quote }}
+{{ tuple "spgwu" . | include "mcord-services.metadata_labels" | indent 6 }}
+  serviceName: spgwu
   template:
     metadata:
       labels:
-        app: {{ .Values.spgwu.name }}
+{{ tuple "spgwu" . | include "mcord-services.metadata_labels" | indent 8 }}
       annotations:
         k8s.v1.cni.cncf.io/networks: '[
-                { "name": "s1u-net", "interface": "s1u-net", "interfaceRequest": "s1u-net" },
-                { "name": "sgi-net", "interface": "sgi-net", "interfaceRequest": "sgi-net" }
+                { "name": "s1u-net", "interface": "s1u-net" },
+                { "name": "sgi-net", "interface": "sgi-net" }
         ]'
     spec:
-{{- if .Values.network.sriov.enabled }}
+    {{- if .Values.nodeSelectors.enabled }}
       nodeSelector:
-{{ toYaml .Values.spgwu.nodeselector | indent 8 }}
-{{- end }}
-{{- if not .Values.network.sriov.enabled }}
+        {{ .Values.nodeSelectors.spgwu.label }}: {{ .Values.nodeSelectors.spgwu.value }}
+    {{- end }}
+    {{- if not .Values.networks.sriov.enabled }}
       initContainers:
         - name: spgwu-iptables-init
-          image: {{ .Values.spgwu.images.tags.init | quote }}
-          imagePullPolicy: {{ .Values.spgwu.images.pullPolicy | quote }}
+          image: {{ .Values.images.tags.init | quote }}
+          imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
           command: [ "sh", "-xec"]
           securityContext:
             capabilities:
@@ -53,8 +54,8 @@
           args:
             - iptables -I OUTPUT -p icmp --icmp-type destination-unreachable -j DROP;
         - name: spgwu-af-iface-init
-          image: {{ .Values.spgwu.images.tags.spgwu | quote }}
-          imagePullPolicy: {{ .Values.spgwu.images.pullPolicy | quote }}
+          image: {{ .Values.images.tags.init | quote }}
+          imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
           securityContext:
             capabilities:
               add:
@@ -65,64 +66,69 @@
             - name: dp-script
               mountPath: /opt/dp/scripts/setup-af-iface.sh
               subPath: setup-af-iface.sh
-{{- end }}
+    {{- end }}
       containers:
-      - name: {{ .Values.spgwu.name }}
-        image: {{ .Values.spgwu.images.tags.spgwu | quote }}
-        imagePullPolicy: {{ .Values.spgwu.images.pullPolicy | quote }}
+      - name: spgwu
+        image: {{ .Values.images.tags.spgwu | quote }}
+        imagePullPolicy: {{ .Values.images.pullPolicy | quote }}
         stdin: true
         tty: true
         env:
         - name: MEM_LIMIT
           valueFrom:
             resourceFieldRef:
-              containerName: {{ .Values.spgwu.name }}
+              containerName: spgwu
               resource: limits.memory
               divisor: 1Mi
         - name: S1U_DEVNAME
-          {{- if .Values.network.sriov.enabled }}
+        {{- if .Values.networks.sriov.enabled }}
           value: s1u-net
-          {{- else }}
-          value: {{ .Values.spgwu.conf.dp.s1u_af_dev | quote }}
-          {{- end }}
+        {{- else }}
+          value: {{ .Values.config.spgwu.dp.s1uAfDev | quote }}
+        {{- end }}
         - name: SGI_DEVNAME
-          {{- if .Values.network.sriov.enabled }}
+        {{- if .Values.networks.sriov.enabled }}
           value: sgi-net
-          {{- else }}
-          value: {{ .Values.spgwu.conf.dp.sgi_af_dev | quote }}
-          {{- end }}
+        {{- else }}
+          value: {{ .Values.config.spgwu.dp.sgiAfDev | quote }}
+        {{- end }}
         - name: DEVICES
-          value: {{ .Values.spgwu.conf.dp.devices | quote }}
+          value: {{ .Values.config.spgwu.dp.devices | quote }}
         - name: CP_ADDR
-          value: spgwc-0.{{ .Values.spgwc.name }}
+          value: spgwc-0.spgwc
         - name: DP_ADDR
           valueFrom:
             fieldRef:
               fieldPath: status.podIP
         - name: RTR_SGI_IP
-          value: {{ .Values.spgwu.conf.dp.rtr_sgi_ip | quote }}
+          value: {{ .Values.config.spgwu.dp.rtrSgiIp | quote }}
         - name: SGI_MASK
-          value: {{ .Values.spgwu.conf.dp.sgi_mask | quote }}
+          value: {{ .Values.config.spgwu.dp.sgiMask | quote }}
         command: ["bash", "-xc"]
         args:
         - ip a;
-          /opt/dp/scripts/launch.sh;
+          /opt/dp/scripts/run.sh;
         volumeMounts:
         - name: dp-script
-          mountPath: /opt/dp/scripts/launch.sh
-          subPath: launch.sh
+          mountPath: /opt/dp/scripts/run.sh
+          subPath: run.sh
         - name: dp-config
           mountPath: /etc/dp/config
-        #- name: hugepage
-        #  mountPath: /dev/hugepages
         resources:
-          limits:
-            #hugepages-1Gi: 8Gi
-            cpu: {{ .Values.spgwu.resources.cpu | quote }}
-            memory: {{ .Values.spgwu.resources.memory }}
-            {{- if .Values.network.sriov.enabled }}
+          requests:
+          {{- if .Values.resources.enabled }}
+{{ toYaml .Values.resources.spgwu.requests | indent 12 }}
+          {{- end }}
+          {{- if .Values.networks.sriov.enabled }}
             intel.com/sriov_vfio: 2
-            {{- end }}
+          {{- end }}
+          limits:
+          {{- if .Values.resources.enabled }}
+{{ toYaml .Values.resources.spgwu.limits | indent 12 }}
+          {{- end }}
+          {{- if .Values.networks.sriov.enabled }}
+            intel.com/sriov_vfio: 2
+          {{- end }}
         securityContext:
           capabilities:
             add:
@@ -130,12 +136,9 @@
       volumes:
       - name: dp-script
         configMap:
-          name: {{ .Values.spgwu.name }}
+          name: spgwu
           defaultMode: 493
       - name: dp-config
         configMap:
-          name: {{ .Values.spgwu.name }}
+          name: spgwu
           defaultMode: 420
-      #- name: hugepage
-      #  emptyDir:
-      #    medium: HugePages
diff --git a/mcord-release/mcord-services/values.yaml b/mcord-release/mcord-services/values.yaml
index 3293d9e..876dcc7 100644
--- a/mcord-release/mcord-services/values.yaml
+++ b/mcord-release/mcord-services/values.yaml
@@ -1,4 +1,3 @@
----
 # Copyright 2018-present Open Networking Foundation
 # Copyright 2018 Intel Corporation
 #
@@ -14,51 +13,79 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# Default values for M-CORD Services
-# This is a YAML-formatted file.
-# Declare variables to be passed into your templates.
+images:
+  tags:
+    init: docker.io/omecproject/pod-init:0.1.0-dev
+    hssdb: docker.io/omecproject/c3po-hssdb:0.1.0-dev
+    hss: docker.io/omecproject/c3po-hss:0.1.0-dev
+    mme: docker.io/omecproject/openmme:0.1.0-dev
+    spgwc: docker.io/omecproject/ngic-cp:0.1.0-dev
+    spgwu: docker.io/omecproject/ngic-dp:0.1.0-dev
+    depCheck: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
+  pullPolicy: IfNotPresent
 
+nodeSelectors:
+  enabled: false
+  hssdb:
+    label: omec-cp
+    value: enabled
+  hss:
+    label: omec-cp
+    value: enabled
+  mme:
+    label: omec-cp
+    value: enabled
+  spgwc:
+    label: omec-cp
+    value: enabled
+  spgwu:
+    label: omec-dp
+    value: enabled
 
-# Global Block defines shared variables for all Kubernetes objects
-# etcdurl: the etcd connection peer for centralIP network plugin
-global:
-  namespace: default
-  fqdn: svc.cluster.local
-  imagepullpolicy: IfNotPresent
-  etcdurl: http://node1:32379
+resources:
+  enabled: true
+  hssdb:
+    requests:
+      cpu: 2
+      memory: 4Gi
+    limits:
+      cpu: 2
+      memory: 4Gi
+  hss:
+    requests:
+      cpu: 2
+      memory: 1Gi
+    limits:
+      cpu: 2
+      memory: 1Gi
+  mme:
+    # Note that MME pod is composed of 4 containers
+    # Provide resources for a container, not a pod
+    requests:
+      cpu: 0.5
+      memory: 1Gi
+    limits:
+      cpu: 0.5
+      memory: 1Gi
+  spgwc:
+    requests:
+      cpu: 2
+      memory: 5Gi
+    limits:
+      cpu: 2
+      memory: 5Gi
+  spgwu:
+    requests:
+      cpu: 4
+      memory: 8Gi
+    limits:
+      cpu: 4
+      memory: 8Gi
 
-hssdb:
-  name: hssdb
-  image: krsna1729/c3po-hssdb
-  cpu: 3
-  memory: 4Gi
-
-hss:
-  name: hss
-  initimage: krsna1729/c3po-hssdb
-  image: krsna1729/c3po-hss
-  cpu: 3
-  memory: 1Gi
-
-mme:
-  initimage: ngick8stesting/c3po-mmeinit
-  image: ngick8stesting/c3po-mme:5e2eaf6
-  cpu: 3
-  memory: 1Gi
-  # Provide which mme will be used.
-  # Possible options are c3po and openmme but note that c3po mme will be deprecated soon.
-  type: c3po
-  name: mme
-  images:
-    tags:
-      dep_check: quay.io/stackanetes/kubernetes-entrypoint:v0.3.1
-      mme: omecproject/openmme:0.1.0-dev
-    pullPolicy: IfNotPresent
-  resources:
-    cpu: 3
-    memory: 1Gi
-  conf:
-    # Leave hostnames and addressses null unless using external spgw and hss.
+config:
+  hssdb: {}
+  hss: {}
+  mme:
     mme:
       name: vmmestandalone
       group_id: 1
@@ -76,69 +103,38 @@
       sctp_port_external: 36412
     s11:
       egtp_default_port: 2123
-      sgw_addr: null
-      pgw_addr: null
+      # sgw_addr and pgw_addr will be set dynamically if unset
+      #sgw_addr:
+      #pgw_addr:
     s6a:
       host_type: freediameter
-      host: null
-      realm: null
-
-spgwc:
-  name: spgwc
-  initimage: ngick8stesting/kubectl
-  image: krsna1729/ngic-cp
-  cpu: 3
-  memory: 5Gi
-
-spgwu:
-  name: spgwu
-  nodeselector:
-    sriov: vfio
-  images:
-    tags:
-      init: ngick8stesting/c3po-init:latest
-      spgwu: krsna1729/ngic-dp:latest
-    pullPolicy: IfNotPresent
-  resources:
-    cpu: 4
-    memory: 8Gi
-  conf:
+      # host and realm will be set dynamically if unset
+      #host:
+      #realm:
+  spgwc: {}
+  spgwu:
     dp:
       # s1u and sgi interfaces are fixed to "s1u-net" and "sgi-net"
-      # Note that s1u_af_dev and sgi_af_dev are valid only when sriov is disabled
+      # Note that s1uAfDev and sgiAfDev are valid only when sriov is disabled
       # setup-af-iface.sh script creates additional veth pair with the names here
-      s1u_af_dev: s1u-veth
-      sgi_af_dev: sgi-veth
-      # set "--no-pci --vdev eth_af_packet0,iface=s1u-dev --vdev eth_af_packet1,iface=sgi-net"
+      s1uAfDev: s1u-veth
+      sgiAfDev: sgi-veth
+      # set "--no-pci --vdev eth_af_packet0,iface=s1u-net --vdev eth_af_packet1,iface=sgi-net"
       # when sriov is disabled
       devices: ""
-      rtr_sgi_ip: 13.1.1.254
-      sgi_mask: 255.255.255.0
+      rtrSgiIp: 13.1.1.254
+      sgiMask: 255.255.255.0
 
-enb:
-  host: 10.1.11.3
-  port: 36412
-
-# Network block defines the networks
-# Note that currently we use fixed list of networks, s1u-net and sgi-net
-#
-# cni_plugin: provide what type of cni will be used
-# ipam: provide what type of ipam will be used
-#       possible options are centralip and host-local
-#       note that centralip requires etcd cluster
-# subnet: provide subnet range to be assigned to the pod
-# gateway: provide default gateway of the network
-#       valid only when centralip is used
-network:
+networks:
   sriov:
     enabled: true
+  cniPlugin: vfioveth
+  ipam: centralip
+  # etcdurl is required only when centralip IPAM is used
+  etcdurl: http://localhost:32379
   s1u:
-    cni_plugin: vfioveth
-    ipam: centralip
     subnet: 119.0.0.0/24
     gateway: 119.0.0.254
   sgi:
-    cni_plugin: vfioveth
-    ipam: centralip
     subnet: 13.1.1.0/24
     gateway: 13.1.1.254
