From 520a2ef649c0492b324abd9eae9807a607fc8c1d Mon Sep 17 00:00:00 2001 From: Carlos Ravelo Date: Sun, 30 Sep 2018 19:04:24 -0400 Subject: [PATCH] Better prompt and optional bash_history for seedbox --- .idea/bashsupport_project.xml | 1 + helmfile.d/40-seedbox.yaml | 2 +- k8s-config/1-fedoraPostInstall.sh | 4 ++ k8s-config/2-configK8SMaster.sh | 71 ++----------------------------- k8s-config/2-configK8SNode.sh | 24 +++++++++++ k8s-config/4-installKVM.sh | 2 +- k8s-config/configNode.sh | 65 ++++++++++++++++++++++++++++ k8s-config/kubeadm.yaml | 3 ++ 8 files changed, 102 insertions(+), 70 deletions(-) create mode 100755 k8s-config/2-configK8SNode.sh create mode 100644 k8s-config/configNode.sh diff --git a/.idea/bashsupport_project.xml b/.idea/bashsupport_project.xml index 9666ce9b..5945ae60 100644 --- a/.idea/bashsupport_project.xml +++ b/.idea/bashsupport_project.xml @@ -3,6 +3,7 @@ diff --git a/helmfile.d/40-seedbox.yaml b/helmfile.d/40-seedbox.yaml index c5f58268..a56129f9 100644 --- a/helmfile.d/40-seedbox.yaml +++ b/helmfile.d/40-seedbox.yaml @@ -14,7 +14,7 @@ releases: chart: ../charts/seedbox values: - image: - tag: v21 + tag: v22 - env: - name: LOCAL_NETWORK value: "10.244.0.0/16" diff --git a/k8s-config/1-fedoraPostInstall.sh b/k8s-config/1-fedoraPostInstall.sh index 7cb42a03..c6d13151 100755 --- a/k8s-config/1-fedoraPostInstall.sh +++ b/k8s-config/1-fedoraPostInstall.sh @@ -1,5 +1,9 @@ #!/bin/bash +printf "Upgrade =====================================================================================================\n" +sudo dnf -y update || exit 1 + +printf "Install screen, and other tools =============================================================================\n" sudo dnf -y install screen htop git sudo mkdir /media/main diff --git a/k8s-config/2-configK8SMaster.sh b/k8s-config/2-configK8SMaster.sh index 1c7fcc6a..68d73422 100755 --- a/k8s-config/2-configK8SMaster.sh +++ b/k8s-config/2-configK8SMaster.sh @@ -1,71 +1,6 @@ #!/bin/bash -if [[ $EUID = 0 ]]; then - printf "Don't run this script as root" - exit 1 -fi - -printf "Upgrade ====================================================================================================\n" -sudo dnf -y update || exit 1 - -printf "\nGet docker ===============================================================================================\n" -if [ ! -f docker-ce-17.03.2.ce-1.fc25.x86_64.rpm ]; then - wget https://download.docker.com/linux/fedora/25/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.fc25.x86_64.rpm || exit 1 - wget https://download.docker.com/linux/fedora/25/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.fc25.noarch.rpm || exit 1 - - printf "\nInstall docker & deps ====================================================================================\n" - sudo dnf -y install policycoreutils-python || exit 1 - sudo mkdir -p /var/lib/docker || exit 1 - sudo rpm -i docker-ce-selinux-17.03.2.ce-1.fc25.noarch.rpm || exit 1 - sudo rpm -i docker-ce-17.03.2.ce-1.fc25.x86_64.rpm || exit 1 -fi; - -printf "\nEnable docker ============================================================================================\n" -sudo systemctl enable --now docker || exit 1 - -printf "\nVerify docker is working by running hello-world" -sudo docker run --rm hello-world - -if [ ! -f /etc/yum.repos.d/kubernetes.repo ]; then - printf "\nInstall kubelet, kubeadm, crictl(needed by kubelet), cockpit (nice fedora dashboard):" - sudo bash -c 'cat < /etc/yum.repos.d/kubernetes.repo -[kubernetes] -name=Kubernetes -baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 -enabled=1 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg -exclude=kube* - -[kubernetes-unstable] -name=Kubernetes-unstable -baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64-unstable -enabled=0 -gpgcheck=1 -repo_gpgcheck=1 -gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg -exclude=kube* -EOF' -fi; - -sudo setenforce 0 -sudo dnf -y install --enablerepo=kubernetes kubelet kubectl --disableexcludes=kubernetes || exit 1 -sudo dnf -y install --enablerepo=kubernetes-unstable kubeadm --disableexcludes=kubernetes || exit 1 -sudo dnf -y install cockpit-docker cockpit-kubernetes || exit 1 - -printf "\nEnabling cockpit =========================================================================================\n" -sudo systemctl enable --now cockpit.socket || exit 1 - -printf "\nDisabling swap ===========================================================================================\n" -sudo swapoff -a || exit 1 - -printf "\nDisabling the firewall ===================================================================================\n" -sudo systemctl stop firewalld -sudo systemctl disable firewalld -sudo dnf -y remove firewalld -sudo setenforce 0 -echo "SELINUX=disabled" | sudo tee -a /etc/sysconfig/selinux +./configNode.sh printf "\nInstalling kubernetes ====================================================================================\n" if [ ! -f "kubeadminit.lock" ]; then @@ -90,5 +25,5 @@ printf "\n\n==================================================================== printf "Kubernetes is now installed. Please check the status of flannel and kubelet to make sure the network is ready before we proceed to the next step." printf "\nVerify that is running:\n" kubectl get nodes -kubectl get all --all-namespaces -printf "Run 'sudo systemctl status kubelet' to see how kubelet is doing" +kubectl get ds --namespace=kube-system +printf "Run 'sudo systemctl status kubelet' to see how kubelet is doing\n\n" diff --git a/k8s-config/2-configK8SNode.sh b/k8s-config/2-configK8SNode.sh new file mode 100755 index 00000000..cac99408 --- /dev/null +++ b/k8s-config/2-configK8SNode.sh @@ -0,0 +1,24 @@ +#!/bin/bash + +./configNode.sh + +if [[ ! -n ${KUBE_JOIN_COMMAND} ]]; then + printf "Run 'kubeadm token create --print-join-command' in the master to get a join command. Then re-run this script with KUBE_JOIN_COMMAND=command ./2-configK8SNode.sh" + exit 1 +fi; + +printf "\nJoin Kubernetes Cluster ==================================================================================\n" +if [ ! -f "kubeadminit.lock" ]; then + sudo systemctl enable kubelet.service + # how to get this automatically + eval ${KUBE_JOIN_COMMAND} + touch kubeadminit.lock +else + printf "\nNOTE: Looks like kubeadm init already ran. If you want to run it again, delete kubeadminit.lock =========\n" +fi; + +printf "\n\n=========================================================================================================\n" +printf "Node is now joined. Verify that is running:\n" +kubectl get nodes +kubectl get ds --namespace=kube-system +printf "\n\n" diff --git a/k8s-config/4-installKVM.sh b/k8s-config/4-installKVM.sh index ba8cab5b..c6a3f40e 100755 --- a/k8s-config/4-installKVM.sh +++ b/k8s-config/4-installKVM.sh @@ -6,5 +6,5 @@ sudo systemctl enable libvirtd.service sudo systemctl start libvirtd.service printf "\nInstall Cockpit support for KVM ===========================================================================\n" -sudo dnf install -y cockpit-machines cockpit-pcp +sudo dnf install -y cockpit-machines sudo systemctl restart cockpit.service diff --git a/k8s-config/configNode.sh b/k8s-config/configNode.sh new file mode 100644 index 00000000..23d0b695 --- /dev/null +++ b/k8s-config/configNode.sh @@ -0,0 +1,65 @@ +#!/bin/bash + +if [[ $EUID = 0 ]]; then + printf "Don't run this script as root" + exit 1 +fi + +printf "\nGet docker ===============================================================================================\n" +if [ ! -f docker-ce-17.03.2.ce-1.fc25.x86_64.rpm ]; then + wget https://download.docker.com/linux/fedora/25/x86_64/stable/Packages/docker-ce-17.03.2.ce-1.fc25.x86_64.rpm || exit 1 + wget https://download.docker.com/linux/fedora/25/x86_64/stable/Packages/docker-ce-selinux-17.03.2.ce-1.fc25.noarch.rpm || exit 1 + + printf "\nInstall docker & deps ====================================================================================\n" + sudo dnf -y install policycoreutils-python || exit 1 + sudo mkdir -p /var/lib/docker || exit 1 + sudo rpm -i docker-ce-selinux-17.03.2.ce-1.fc25.noarch.rpm || exit 1 + sudo rpm -i docker-ce-17.03.2.ce-1.fc25.x86_64.rpm || exit 1 +fi; + +printf "\nEnable docker ============================================================================================\n" +sudo systemctl enable --now docker || exit 1 + +printf "\nVerify docker is working by running hello-world ==========================================================\n" +sudo docker run --rm hello-world || exit 1 + +printf "\nDisable SELINUX because kubelet doesnt support it ========================================================\n" +sudo setenforce 0 +echo "SELINUX=disabled" | sudo tee /etc/sysconfig/selinux + +if [ ! -f /etc/yum.repos.d/kubernetes.repo ]; then + printf "\nInstall kubelet, kubeadm, crictl(needed by kubelet), cockpit (nice fedora dashboard):" + sudo bash -c 'cat < /etc/yum.repos.d/kubernetes.repo +[kubernetes] +name=Kubernetes +baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 +enabled=1 +gpgcheck=1 +repo_gpgcheck=1 +gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg +exclude=kube* + +[kubernetes-unstable] +name=Kubernetes-unstable +baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64-unstable +enabled=0 +gpgcheck=1 +repo_gpgcheck=1 +gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg +exclude=kube* +EOF' +fi; + +sudo dnf -y install --enablerepo=kubernetes kubelet kubectl kubeadm --disableexcludes=kubernetes || exit 1 +sudo dnf -y install cockpit-docker cockpit-kubernetes cockpit-pcp || exit 1 + +printf "\nEnabling cockpit =========================================================================================\n" +sudo systemctl enable --now cockpit.socket || exit 1 + +printf "\nDisabling swap ===========================================================================================\n" +sudo swapoff -a || exit 1 + +printf "\nDisabling the firewall ===================================================================================\n" +sudo systemctl stop firewalld +sudo systemctl disable firewalld +sudo dnf -y remove firewalld diff --git a/k8s-config/kubeadm.yaml b/k8s-config/kubeadm.yaml index 8859011a..454164c7 100644 --- a/k8s-config/kubeadm.yaml +++ b/k8s-config/kubeadm.yaml @@ -1,3 +1,5 @@ +# https://github.com/kubernetes/kubernetes/blob/master/cmd/kubeadm/app/apis/kubeadm/v1alpha3/types.go +--- apiVersion: kubeadm.k8s.io/v1alpha2 kind: MasterConfiguration kubernetesVersion: v1.12.0 @@ -7,3 +9,4 @@ networking: podSubnet: "10.244.0.0/16" nodeRegistration: taints: [] +# criSocket: /var/run/crio/crio.sock