#!/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
|