This guide describes the installation of A&AI via OOM on a clean Ubuntu 16.04 machine. It creates a local kubernetes cluster on the machine and starts the A&AI services using OOM (A&AI services are represented as Helm Charts inside OOM).
Note: the guide could be out-of-sync with the installation procedure anytime as OOM changes versions and dependencies and the changes might not be reflected here.
In order to install A&AI on a barebone Ubuntu 16.04 machine we have to install these apps:
- Docker
- Kubernetes
- Helm
- OOM
1. Docker installation
This is just a run-of-the-mill docker installation:
sudo apt-get remove docker docker-engine docker.io sudo apt-get install apt-transport-https ca-certificates curl software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get install docker-ce
2. Kubernetes Installation
We install kubernetes with flannel and (in the last step) make master schedulable:
sudo curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo add-apt-repository "deb http://apt.kubernetes.io/ kubernetes-xenial main" #if the next step fails, verify that a file named /etc/apt/sources.list.d/kubernetes.list exists and contains this line: deb http://apt.kubernetes.io/ kubernetes-xenial main sudo apt-get install kubelet kubeadm kubectl kubernetes-cni #if the next step fails with an error about swap, do the following: sudo swapoff -a sudo kubeadm init --pod-network-cidr=10.244.0.0/16 mkdir -p $HOME/.kube sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config sudo chown $(id -u):$(id -g) $HOME/.kube/config kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml kubectl taint nodes --all node-role.kubernetes.io/master-
3. Hel(l)m
We need a specific version of helm (so don't install the newest), we also need to create a service account (otherwise we are unable to install from the local helm repository), we install tiller and add the repository itself:
wget http://storage.googleapis.com/kubernetes-helm/helm-v2.9.1-linux-amd64.tar.gz tar -zxvf helm-v2.9.1-linux-amd64.tar.gz sudo mv linux-amd64/helm /usr/local/bin/helm helm version kubectl create serviceaccount --namespace kube-system tiller kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller helm init kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec": {"serviceAccount":"tiller"}}}}' helm serve & helm repo add local http://127.0.0.1:8879
4. OOM
The installation is straightforward. We download the Beijing OOM from git (WARNING - the Beijing release might need Helm 2.8.2):
git clone -b beijing http://gerrit.onap.org/r/oom
or download master (future Casablanca - this is preferred over Beijing):
git clone http://gerrit.onap.org/r/oom
Before running A&AI we must customize what projects should be enabled in the oom/kubernetes/onap/values.yaml file. As we want to run A&AI, we should have:
aai: enabled: true
and on all other ONAP projects enabled should be set to false (i.e. "enabled: false"). After we modify the values.yaml file we should be good to go:
cd oom/kubernetes make all helm install local/onap -f onap/values.yaml --version 2.0.0 -n onap --namespace onapns
When you do
kubectl get pods --all-namespaces
you should see kubernetes and A&AI pods running.