#!/bin/sh # check whether script is sourced [[ "${BASH_SOURCE[0]}" == "${0}" ]] && echo "script is executed, but needs to be sourced" && exit 1 echo "######################################################################################" echo "## Reinit repository" rm -rf kubespray VERSION="release-2.28" git clone --branch $VERSION https://github.com/kubernetes-sigs/kubespray.git if [ -d patches ]; then for p in patches/*.patch; do [ -f "$p" ] && (echo "## Applying patch $p" && git -C kubespray apply "../$p") done fi echo "######################################################################################" echo "## Activating pyenv venv" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)" pyenv virtualenvs --bare | grep -q "^infrapuzzle-bootstrap$" || pyenv virtualenv 3.10.8 infrapuzzle-bootstrap pyenv activate infrapuzzle-bootstrap python -m pip install -r kubespray/requirements.txt echo "######################################################################################" echo "## Customizing vagrant dev env" mkdir -p kubespray/vagrant cat << EOF > kubespray/vagrant/config.rb \$instance_name_prefix = "k8s" \$vm_cpus = 4 \$num_instances = 1 \$os = "centos" \$subnet = "10.0.20" \$network_plugin = "calico" \$shared_folders = { 'temp/docker_rpms' => "/var/cache/yum/x86_64/7/docker-ce/packages" } \$kube_node_instances_with_disks_number = 0 EOF # make the rpm cache mkdir -p kubespray/temp/docker_rpms echo "###############" echo "Now cd to kubespray and 'vagrant up'" echo "" echo "export KUBECONFIG=\"$( pwd )/kubespray/inventory/sample/artifacts/admin.conf\"" echo "######################################################################################" echo "## * syncing config in kubespray dir" rsync -a ./inventory/ ./kubespray/inventory/ echo "## * changing into kubespray dir" cd kubespray echo "## * Step 1: Reconcile Kubespray baseline (keep current k8s version):" echo "ansible-playbook -i inventory/prod/inventory.ini cluster.yml" echo "## * Step 2: Once verified, bump kube_version in inventory/prod/group_vars/k8s_cluster/k8s-cluster.yml and run:" echo "ansible-playbook -i inventory/prod/inventory.ini -e upgrade_cluster_setup=true cluster.yml" # cp -r kubespray/inventory/sample kubespray/inventory/prod # rm kubespray/inventory/prod/inventory.ini # cp ./prod.ini kubespray/inventory/prod/inventory.ini #gsed -i "s/kube_network_plugin: .*/kube_network_plugin: flannel/" ./kubespray/inventory/prod/group_vars/k8s-cluster/k8s-cluster.yml # gsed -i "s/# calico_iptables_backend: \"Legacy\"/calico_iptables_backend: \"NFT\"/" ./kubespray/inventory/prod/group_vars/k8s-cluster/k8s-net-calico.yml #echo 'calico_iptables_backend: "NFT"' >> ./kubespray/inventory/prod/group_vars/k8s-cluster/k8s-net-cluster.yml #gsed -i "s/metrics_server_enabled: .*/metrics_server_enabled: true/" ./kubespray/inventory/prod/group_vars/k8s-cluster/addons.yml