Implement M-CORD Services in Multi-cluster's configuration

Change-Id: Ie7b6cf0c4d010edd75efd4049bc8ac8fbb41cfc4
diff --git a/mcord/mcord-control-plane/Chart.yaml b/mcord/mcord-control-plane/Chart.yaml
index 265448d..fb66e4f 100644
--- a/mcord/mcord-control-plane/Chart.yaml
+++ b/mcord/mcord-control-plane/Chart.yaml
@@ -18,4 +18,4 @@
 appVersion: "1.0"
 description: A Helm chart for MCORD Control Plane Services
 name: mcord-control-plane
-version: 0.1.9
+version: 0.2.0
diff --git a/mcord/mcord-control-plane/templates/cassandra.yaml b/mcord/mcord-control-plane/templates/cassandra.yaml
index 9f85e03..312233b 100644
--- a/mcord/mcord-control-plane/templates/cassandra.yaml
+++ b/mcord/mcord-control-plane/templates/cassandra.yaml
@@ -44,7 +44,9 @@
     metadata:
       labels:
         app: cassandra
-    spec:
+    spec:    
+      nodeSelector:
+       kubernetes.io/hostname: "node3"
       terminationGracePeriodSeconds: 1
       containers:
       - name: cassandra
diff --git a/mcord/mcord-control-plane/templates/cp.yaml b/mcord/mcord-control-plane/templates/cp.yaml
index 35fbe20..2197347 100644
--- a/mcord/mcord-control-plane/templates/cp.yaml
+++ b/mcord/mcord-control-plane/templates/cp.yaml
@@ -31,6 +31,20 @@
     port: {{ .Values.ngic_cp.ports.sx }}
     protocol: UDP
 ---
+apiVersion: v1
+kind: Service
+metadata:
+  name: ngic-cp-external
+spec:
+  selector:
+    app: ngic-cp
+  type: NodePort
+  ports:
+    - name: sx
+      port: {{ .Values.ngic_cp.ports.sx }}
+      nodePort: {{ .Values.ngic_cp.ports.sx_external }}
+      protocol: UDP
+---
 apiVersion: apps/v1
 kind: StatefulSet
 metadata:
@@ -48,6 +62,8 @@
       labels:
         app: ngic-cp
     spec:
+      nodeSelector:
+        kubernetes.io/hostname: "node2"
       initContainers:
       - name: init-iptables
         image: {{ .Values.ngic_cp.images.init }}
diff --git a/mcord/mcord-control-plane/templates/hss.yaml b/mcord/mcord-control-plane/templates/hss.yaml
index 69dd53a..7a04bcb 100644
--- a/mcord/mcord-control-plane/templates/hss.yaml
+++ b/mcord/mcord-control-plane/templates/hss.yaml
@@ -45,6 +45,8 @@
       labels:
         app: hss
     spec:
+      nodeSelector:
+        kubernetes.io/hostname: "node3"
       terminationGracePeriodSeconds: 1
       initContainers:
       - name: init-db
diff --git a/mcord/mcord-control-plane/templates/mme.yaml b/mcord/mcord-control-plane/templates/mme.yaml
index d6946de..89e7309 100644
--- a/mcord/mcord-control-plane/templates/mme.yaml
+++ b/mcord/mcord-control-plane/templates/mme.yaml
@@ -24,15 +24,9 @@
     app: mme
   clusterIP: None
   ports:
-  - name: s11
-    port: {{ .Values.mme.ports.s11 }}
-    protocol: UDP
   - name: s1ap
     port: {{ .Values.mme.ports.s1ap }}
     protocol: SCTP
-  - name: s6a
-    port: {{ .Values.mme.ports.s6a }}
-    protocol: TCP
 ---
 apiVersion: v1
 kind: Service
@@ -40,21 +34,13 @@
   name: mme-external
 spec:
   selector:
-    app: mme-external
+    app: mme
   type: NodePort
   ports:
-    - name: s11
-      port: {{ .Values.mme.ports.s11 }}
-      nodePort: {{ .Values.mme.ports.s11_external }}
-      protocol: TCP
     - name: s1ap
       port: {{ .Values.mme.ports.s1ap }}
       nodePort: {{ .Values.mme.ports.s1ap_external }}
-      protocol: TCP
-    - name: s6a
-      port: {{ .Values.mme.ports.s6a }}
-      nodePort: {{ .Values.mme.ports.s6a_external }}
-      protocol: TCP
+      protocol: SCTP
 ---
 apiVersion: apps/v1
 kind: StatefulSet
@@ -73,6 +59,8 @@
       labels:
         app: mme
     spec:
+      nodeSelector:
+        kubernetes.io/hostname: "node2"
       terminationGracePeriodSeconds: 1
       initContainers:
       - name: init-mme
@@ -100,7 +88,7 @@
           - name: ENB_S1AP_IP
             value: {{ .Values.accelleran_hostname }}
           - name: ENB_S1AP_PORT
-            value: "{{ .Values.mme.ports.s1ap }}"   #ng4t uses 32767
+            value: "{{ .Values.accelleran_port }}"   #ng4t uses 32767
           - name: CONNECT_PEER
             value: hss-0.{{ .Values.hss_hostname }}.{{ .Values.namespace }}.svc.cluster.local
           - name: VAR_HSS_REALM
diff --git a/mcord/mcord-control-plane/values.yaml b/mcord/mcord-control-plane/values.yaml
index 7a89b90..930cfcd 100644
--- a/mcord/mcord-control-plane/values.yaml
+++ b/mcord/mcord-control-plane/values.yaml
@@ -23,13 +23,16 @@
 mme_hostname: "mme"
 spgwc_hostname: "ngic-cp"
 # If the control plane is installed in a separate cluster, this value needs to be overridden
-spgwu_s11_ip: "ngic-dp"
+# DP installed on LOCAL node3
+spgwu_s11_ip: "10.90.0.133"
 # The spgwu_s1u_ip changes everytime, you can get it with this command:
 # ngic_sriov=$(kubectl exec -n epc ngic-dp-0 ifconfig s1u-net | grep 'inet addr' | cut -d: -f2 | awk '{print $1}')
 # and use it in the chart with --set spgwu_s1u_ip=$ngic_sriov
 spgwu_s1u_ip: "119.0.0.45"
-spgwu_port: 20
-accelleran_hostname: "10.233.75.23"
+spgwu_port: 31310
+# BBU is allocated on LOCAL's node2, use node2's IP
+accelleran_hostname: "10.90.0.132"
+accelleran_port: 31412
 
 hss:
   # TODO: init UE's IMEI to DB?
@@ -46,15 +49,13 @@
 
 mme:
   images:
-    init: "node1:30500/ngick8stesting/c3po-mmeinit"
+    init: "ngick8stesting/c3po-mmeinit"
     mme: "ngick8stesting/c3po-mme:mwca-mme-debug"
   ports:
     s11: 2123
     s1ap: 36412
     s6a: 3868
-    s11_external: 32123
     s1ap_external: 31412
-    s6a_external: 30868
   replicas: 1
   enb_s1ap_ip: "119.0.0.10"
   resources:
@@ -69,6 +70,7 @@
   ports:
     s11: 2123
     sx: 21
+    sx_external: 31311
   config:
     apn: "apn1"
     ue_ip_pool: "16.0.0.0"