diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 23235569..50e2528b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -389,3 +389,81 @@ jobs: uses: docker/build-push-action@master with: context: . + + standalone-kubernetes: + runs-on: ubuntu-latest + steps: + - + name: Checkout + uses: actions/checkout@v3 + - + name: Uninstall moby + run: | + sudo apt-get purge -y '^moby-.*' containernetworking-plugins buildah podman + - + name: Install containerd + run: | + sudo apt-get update -y + sudo apt-get install -y --no-install-recommends --allow-downgrades containerd + - + name: Set up containerd + run: | + sudo mkdir -p /mnt/containerd + cat << EOF | sudo tee /etc/containerd/config.toml + version = 2 + root = "/mnt/containerd" + [plugins] + [plugins."io.containerd.grpc.v1.cri"] + [plugins."io.containerd.grpc.v1.cri".cni] + bin_dir = "/opt/cni/bin/" + conf_dir = "/etc/cni/net.d" + [plugins."io.containerd.internal.v1.opt"] + path = "/var/lib/containerd/opt" + EOF + sudo systemctl restart containerd + - + name: Install kubernetes + run: | + sudo curl -fsSLo /usr/share/keyrings/kubernetes-archive-keyring.gpg https://packages.cloud.google.com/apt/doc/apt-key.gpg + cat << EOF | sudo tee /etc/apt/sources.list.d/kubernetes.list + deb [signed-by=/usr/share/keyrings/kubernetes-archive-keyring.gpg] https://apt.kubernetes.io/ kubernetes-xenial main + EOF + sudo apt-get update -y + sudo apt-get install -y --no-install-recommends --allow-downgrades kubeadm + - + name: Bootstrap kubernetes + run: | + sudo kubeadm init --pod-network-cidr=192.168.0.0/16 --cri-socket=unix:///run/containerd/containerd.sock + mkdir -p $HOME/.kube + sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config + sudo chown $(id -u):$(id -g) $HOME/.kube/config + kubectl taint nodes --all node-role.kubernetes.io/master- + kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml + - + name: Check status + timeout-minutes: 15 + run: | + kubectl get --show-labels -o wide --all-namespaces all + kubectl wait --for condition=available --timeout=600s -n kube-system deployments --all + kubectl wait --for condition=ready --timeout=600s -n kube-system pods --all + kubectl get --show-labels -o wide nodes + kubectl get --show-labels -o wide -n kube-system deployments + kubectl get --show-labels -o wide -n kube-system daemonsets + kubectl get --show-labels -o wide --all-namespaces pods + - + name: Create Dockerfile + run: | + cat > ./Dockerfile <