# echo 'load module overlay br_netfilter' # # Enable kernel modules # sudo modprobe overlay # sudo modprobe br_netfilter # Add some settings to sysctl echo 'enable ip forwarding for routing' sudo tee /etc/sysctl.d/kubernetes.conf<> /root/kubeinit.log 2>&1 sudo cat /root/kubeinit.log # Copy Kube admin config echo "Copy kube admin config to Vagrant user .kube directory" mkdir -p $HOME/.kube sudo chown vagrant:root /etc/kubernetes/admin.conf # sudo cp /etc/kubernetes/admin.conf $HOME/.kube/config # sudo chown vagrant:vagrant $HOME/.kube/config export KUBECONFIG=/etc/kubernetes/admin.conf echo 'kubectl config view' kubectl config view echo 'kubectl cluster-info' while ! kubectl cluster-info do echo waiting 10s for kubectl cluster-info sleep 10 done echo 'waiting for pods condition=Ready pod/etcd-kmaster' kubectl -n kube-system wait pod/etcd-kmaster --for=condition=Ready --timeout=-1s echo 'waiting for pods condition=Ready pod/kube-apiserver-kmaster' kubectl -n kube-system wait pod/kube-apiserver-kmaster --for=condition=Ready --timeout=-1s echo 'waiting for pods condition=Ready pod/kube-controller-manager-kmaster' kubectl -n kube-system wait pod/kube-controller-manager-kmaster --for=condition=Ready --timeout=-1s echo 'waiting for pods condition=Ready pod/kube-scheduler-kmaster' kubectl -n kube-system wait pod/kube-scheduler-kmaster --for=condition=Ready --timeout=-1s # Remove Master Node Taint echo 'Remove Master Node Taint' while ! kubectl taint node `hostname` node-role.kubernetes.io/master- do echo waiting 10s for kubectl taint sleep 10 done # Deploy flannel network echo "Deploy flannel network" kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml echo 'waiting for node kmaster condition=Ready' kubectl -n kube-system wait node/kmaster --for=condition=Ready --timeout=-1s #echo "Deploy Calico network" #kubectl create -f https://docs.projectcalico.org/v3.9/manifests/calico.yaml # install abcdesktop.io # to force install in dev mode # set TAG=dev export TAG=dev # do not pull default images like libreoffice export NOPULLAPPS=1 # force docker to pull image oc.user.ssh.18.04:dev export OCUSERIMAGE=oc.user.ssh.18.04:dev # for install to use custom abcdesktop.yaml # download abcdesktop-bastion.yaml as abcdesktop.yaml wget https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/abcdesktop-bastion.yaml -O abcdesktop.yaml # install script use local file abcdesktop.yaml (abcdesktop.yamlabcdesktop.yaml) curl -sL https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/install.sh | bash # install multus kubectl apply -f https://raw.githubusercontent.com/k8snetworkplumbingwg/multus-cni/master/deployments/multus-daemonset.yml echo "waiting for daemonset/kube-multus-ds" kubectl rollout status daemonset -n kube-system kube-multus-ds # create NetworkAttachmentDefinition # macvlan-conf-eth2 kubectl apply -f https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/NetworkAttachmentDefinition.eth2.yaml # macvlan-conf-eth2 kubectl apply -f https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/NetworkAttachmentDefinition.eth3.yaml # list NetworkAttachmentDefinition kubectl get net-attach-def -n abcdesktop # define CustomResourceDefinition MultiNetworkPolicy kubectl apply -f https://raw.githubusercontent.com/k8snetworkplumbingwg/multi-networkpolicy/master/scheme.yml # install multi-networkpolicy-iptables kubectl apply -f https://raw.githubusercontent.com/abcdesktopio/multi-networkpolicy-iptables/master/deploy-docker.yml echo "waiting for daemonset/multi-networkpolicy-ds-amd64" kubectl rollout status daemonset -n kube-system multi-networkpolicy-ds-amd64 # now define a rule kubectl apply -f https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/mnp-permit-shipcrew.yaml # list rules kubectl get multi-policy -n abcdesktop