mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-10-21 20:08:54 +00:00
Merge pull request #7896 from fidencio/topic/ground-work-for-testing-all-k8s-flavours-we-support
ci: kata-deploy: Enable all k8s flavours that we support
This commit is contained in:
@@ -111,3 +111,85 @@ function get_nodes_and_pods_info() {
|
||||
kubectl debug $(kubectl get nodes -o name) -it --image=quay.io/kata-containers/kata-debug:latest || true
|
||||
kubectl get pods -o name | grep node-debugger | xargs kubectl delete || true
|
||||
}
|
||||
|
||||
function deploy_k0s() {
|
||||
curl -sSLf https://get.k0s.sh | sudo sh
|
||||
|
||||
sudo k0s install controller --single
|
||||
|
||||
sudo k0s start
|
||||
|
||||
# This is an arbitrary value that came up from local tests
|
||||
sleep 120s
|
||||
|
||||
# Download the kubectl binary into /usr/bin so we can avoid depending
|
||||
# on `k0s kubectl` command
|
||||
ARCH=$(uname -m)
|
||||
if [ "${ARCH}" = "x86_64" ]; then
|
||||
ARCH=amd64
|
||||
fi
|
||||
kubectl_version=$(sudo k0s kubectl version --short 2>/dev/null | grep "Client Version" | sed -e 's/Client Version: //')
|
||||
sudo curl -fL --progress-bar -o /usr/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${kubectl_version}/bin/linux/${ARCH}/kubectl
|
||||
sudo chmod +x /usr/bin/kubectl
|
||||
|
||||
mkdir -p ~/.kube
|
||||
sudo cp /var/lib/k0s/pki/admin.conf ~/.kube/config
|
||||
sudo chown ${USER}:${USER} ~/.kube/config
|
||||
}
|
||||
|
||||
function deploy_k3s() {
|
||||
curl -sfL https://get.k3s.io | sh -s - --write-kubeconfig-mode 644
|
||||
|
||||
# This is an arbitrary value that came up from local tests
|
||||
sleep 120s
|
||||
|
||||
# Download the kubectl binary into /usr/bin and remove /usr/local/bin/kubectl
|
||||
#
|
||||
# We need to do this to avoid hitting issues like:
|
||||
# ```sh
|
||||
# error: open /etc/rancher/k3s/k3s.yaml.lock: permission denied
|
||||
# ```
|
||||
# Which happens basically because k3s links `/usr/local/bin/kubectl`
|
||||
# to `/usr/local/bin/k3s`, and that does extra stuff that vanilla
|
||||
# `kubectl` doesn't do.
|
||||
ARCH=$(uname -m)
|
||||
if [ "${ARCH}" = "x86_64" ]; then
|
||||
ARCH=amd64
|
||||
fi
|
||||
kubectl_version=$(/usr/local/bin/k3s kubectl version --short 2>/dev/null | grep "Client Version" | sed -e 's/Client Version: //' -e 's/\+k3s1//')
|
||||
sudo curl -fL --progress-bar -o /usr/bin/kubectl https://storage.googleapis.com/kubernetes-release/release/${kubectl_version}/bin/linux/${ARCH}/kubectl
|
||||
sudo chmod +x /usr/bin/kubectl
|
||||
sudo rm -rf /usr/local/bin/kubectl
|
||||
|
||||
mkdir -p ~/.kube
|
||||
cp /etc/rancher/k3s/k3s.yaml ~/.kube/config
|
||||
}
|
||||
|
||||
function deploy_rke2() {
|
||||
curl -sfL https://get.rke2.io | sudo sh -
|
||||
|
||||
systemctl enable --now rke2-server.service
|
||||
|
||||
# This is an arbitrary value that came up from local tests
|
||||
sleep 120s
|
||||
|
||||
# Link the kubectl binary into /usr/bin
|
||||
sudo ln -sf /var/lib/rancher/rke2/bin/kubectl /usr/local/bin/kubectl
|
||||
|
||||
mkdir -p ~/.kube
|
||||
sudo cp /etc/rancher/rke2/rke2.yaml ~/.kube/config
|
||||
sudo chown ${USER}:${USER} ~/.kube/config
|
||||
}
|
||||
|
||||
function deploy_k8s() {
|
||||
echo "::group::Deploying ${KUBERNETES}"
|
||||
|
||||
case ${KUBERNETES} in
|
||||
k0s) deploy_k0s ;;
|
||||
k3s) deploy_k3s ;;
|
||||
rke2) deploy_rke2 ;;
|
||||
*) >&2 echo "${KUBERNETES} flavour is not supported"; exit 2 ;;
|
||||
esac
|
||||
|
||||
echo "::endgroup::"
|
||||
}
|
||||
|
Reference in New Issue
Block a user