Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

install.sh
#!/bin/bash

# Script to run as root in a maiden Ubuntu VM in Vagrant. Will bring up Non-RT RIC in MiniKube, start the dashboard and proxy.
# NOTE: Do 'sudo su' before running the script

#Log all cmds to stdout
set -x

#Fetch and install docker
curl -fsSL https://get.docker.com -o get-docker.sh

sh get-docker.sh

#Install conntrack
apt-get install conntrack

#Install socat
apt install socat

#Fetch and install minikube
curl -Lo minikube https://storage.googleapis.com/minikube/releases/latest/minikube-linux-amd64 \
&& chmod +x minikube

mkdir -p /usr/local/bin/

install minikube /usr/local/bin/

#Start minikube
minikube start --vm-driver=none

#Fetch and install kubectl

curl -LO https://storage.googleapis.com/kubernetes-release/release/`curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt`/bin/linux/amd64/kubectl

chmod +x ./kubectl

mv ./kubectl /usr/local/bin/kubectl

kubectl version --client #Just print the version

#Fetch helm 3
curl -LfsSL -o get_helm.sh https://git.ioraw.githubusercontent.com/helm/helm/master/scripts/get-helm-3
chmod 700 get_helm.sh
./get_helm.sh | bash




#Create the service account
cat > tiller-serviceaccount.yaml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: tiller
namespace: kube-system
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1beta1
metadata:
name: tiller-clusterrolebinding
subjects:
- kind: ServiceAccount
name: tiller
namespace: kube-system
roleRef:
kind: ClusterRole
name: cluster-admin
apiGroup: ""
EOF

kubectl create -f tiller-serviceaccount.yaml

#Fetch and deploy the metrics server
kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/download/v0.3.7/components.yaml
kubectl get deployment metrics-server -n kube-system

#Fetch and deploy the kubernetes dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.0.2/aio/deploy/recommended.yaml
kubectl delete clusterrolebinding kubernetes-dashboard
kubectl create clusterrolebinding kubernetes-dashboard --clusterrole=cluster-admin --serviceaccount=kube-system:kubernetes-dashboard --user=clusterUser

#Run helm
helm init --service-account tiller --upgrade


#Clone dep repo and deploy nonrtric components
################################################
## Comment the following four lines
## if no installation of nonrtric is needed
################################################
git clone "https://gerrit.o-ran-sc.org/r/it/dep"
cd dep/bin
./deploy-nonrtric -f ../nonrtric/RECIPE_EXAMPLE/example_recipe.yaml
cd ../..

#Create an account for login to the dashboard
cat > eks-admin-service-account.yaml << EOF
apiVersion: v1
kind: ServiceAccount
metadata:
name: eks-admin
namespace: kube-system
---
apiVersion: rbac.authorization.k8s.io/v1beta1
kind: ClusterRoleBinding
metadata:
name: eks-admin
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: cluster-admin
subjects:
- kind: ServiceAccount
name: eks-admin
namespace: kube-system
EOF

#Apply the account
kubectl apply -f eks-admin-service-account.yaml

#Create serviceaccount and clusterrolebinding and patch the tiller-deployment to user service account.

kubectl create serviceaccount --namespace kube-system tiller

kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller

kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}'



#Print the 'secret' token. Needed for login from the browser on the host
kubectl -n kube-system describe secret $(kubectl -n kube-system get secret | grep eks-admin | awk '{print $1}')

#Start the proxy so the dashboard can be accessed from the host machine
kubectl proxy


...