Install OMEC
This page walks through the sequence of Helm operations needed to bring up OMEC. It assumes the platform has already been installed.
OMEC is composed of two charts, omec-control-plane and omec-data-plane.
You can deploy both charts together in a single cluster or separately
in a central and edge cluster, respectively.
Before installing the charts, refer to this page
to create override-values.yaml
file that contains values overriding each
chart's default settings for your environment. This file will be passed to Helm
install command.
Install OMEC charts
If you haven't done it yet, add the CORD repository to the list of your local repositories and update the repo index:
helm repo add cord https://charts.opencord.org
helm repo update
Then, proceed with the OMEC charts installation. Please note that you must install omec-data-plane first, then the omec-control-plane:
$ helm install cord/omec-data-plane \
--namespace omec \
--name omec-data-plane \
--values override-values.yaml
$ helm install cord/omec-control-plane \
--namespace omec \
--name omec-control-plane \
--values override-values.yaml
In case you're deploying control plane and data plane to different clusters, edge and central,
just point the correct K8S context with --kube-context
option when running helm install command.
See this page for configuring access to multiple K8S clusters.
$ helm install cord/omec-data-plane \
--kube-context edge \
--namespace omec \
--name omec-data-plane \
--values override-values.yaml
$ helm install cord/omec-control-plane \
--kube-context central \
--namespace omec \
--name omec-control-plane \
--values override-values.yaml
Install OMEC to a specific node
You may need to deploy some OMEC components to specific nodes to properly
allocate resources. For example, let's assume that you have 3 node single cluster
and want to deploy control plane components to node1 and node2, and data plane
components to node3 for some reason.
In that case, you can use node selector by overriding nodeSelectors.enabled=true
.
You'll also need to add a label to the nodes.
$ kubectl label nodes node1 omec-cp=enabled
$ kubectl label nodes node2 omec-cp=enabled
$ kubectl label nodes node3 omec-dp=enabled
$ kubectl get nodes --show-labels
NAME STATUS ROLES AGE VERSION LABELS
node1 Ready master 2d v1.15.3 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node1,kubernetes.io/os=linux,node-role.kubernetes.io/master=,omec-cp=enabled
node2 Ready master 2d v1.15.3 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node2,kubernetes.io/os=linux,node-role.kubernetes.io/master=,omec-cp=enabled
node3 Ready master 2d v1.15.3 beta.kubernetes.io/arch=amd64,beta.kubernetes.io/os=linux,kubernetes.io/arch=amd64,kubernetes.io/hostname=node3,kubernetes.io/os=linux,node-role.kubernetes.io/master=,omec-dp=enabled
You can also override node labels used as nodeSelector for each OMEC component.
Verify your installation
Once the installation completes, monitor your setup using kubectl get pods -n omec
.
Wait until all pods are in Running state and "job-hss-bootstrap" and "job-hss-db-sync"
pods are in Complete state.
$ kubectl get pods -n omec
NAME READY STATUS RESTARTS AGE
cassandra-0 1/1 Running 0 103s
hss-0 1/1 Running 0 103s
job-hss-bootstrap-vm645 0/1 Completed 0 103s
job-hss-db-sync-5hj9v 0/1 Completed 0 103s
mme-0 4/4 Running 0 103s
spgwc-0 1/1 Running 0 103s
spgwu-0 1/1 Running 0 2m17s
sriov-device-plugin-6wsg7 1/1 Running 0 2m17s
sriov-device-plugin-bmhzz 1/1 Running 0 2m17s
sriov-device-plugin-kbc8m 1/1 Running 0 2m17s
If control plane and data plane are deployed in different clusters, edge and central, the pod status of each cluster is as follows.
$ kubectl config use-context edge
$ kubectl get pods -n omec
NAME READY STATUS RESTARTS AGE
spgwu-0 1/1 Running 0 2m17s
sriov-device-plugin-6wsg7 1/1 Running 0 2m17s
sriov-device-plugin-bmhzz 1/1 Running 0 2m17s
sriov-device-plugin-kbc8m 1/1 Running 0 2m17s
$ kubectl config use-context central
$ kubectl get pods -n omec
NAME READY STATUS RESTARTS AGE
cassandra-0 1/1 Running 0 103s
hss-0 1/1 Running 0 103s
job-hss-bootstrap-vm645 0/1 Completed 0 103s
job-hss-db-sync-5hj9v 0/1 Completed 0 103s
mme-0 4/4 Running 0 103s
spgwc-0 1/1 Running 0 103s