- Bump Kubespray baseline to release-2.28 (last release supporting Ubuntu 20.04) - Upgrade Kubernetes control plane and node to v1.32.13 - Configure single-node cluster settings (drain_nodes: false) - Add patch for Kubespray v1beta4 kubeadm preflight error handling - Update init.sh, AGENTS.md, and README.md with two-phase upgrade instructions
66 lines
2.8 KiB
Bash
Executable File
66 lines
2.8 KiB
Bash
Executable File
#!/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
|