Skip to content

Commit b093039

Browse files
committed
Add test
1 parent d995247 commit b093039

File tree

5 files changed

+112
-0
lines changed

5 files changed

+112
-0
lines changed

.github/workflows/test.yaml

Lines changed: 84 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,84 @@
1+
name: Test
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
branches:
9+
- main
10+
11+
workflow_dispatch:
12+
13+
jobs:
14+
test:
15+
# https://docs.github.com/en/actions/using-jobs/using-concurrency
16+
concurrency:
17+
group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}-${{ matrix.kube-version }}
18+
cancel-in-progress: true
19+
20+
# https://docs.github.com/en/actions/using-jobs/using-a-matrix-for-your-jobs
21+
strategy:
22+
fail-fast: false
23+
matrix:
24+
kube-release:
25+
- 1.23
26+
27+
continue-on-error: false
28+
runs-on: ubuntu-latest
29+
steps:
30+
- uses: actions/checkout@v3
31+
32+
- name: Install conntrack
33+
run: |
34+
sudo apt update
35+
sudo apt install -y conntrack
36+
37+
# Install Kubernetes use apt source with specified version
38+
- name: Install Kubernetes
39+
run: |
40+
sudo snap install kubelet --channel=${{ matrix.kube-release }}/stable --classic
41+
sudo snap install kubectl --channel=${{ matrix.kube-release }}/stable --classic
42+
sudo snap install kubeadm --channel=${{ matrix.kube-release }}/stable --classic
43+
wget -O crictl-linux-amd64.tar.gz https://github.com/kubernetes-sigs/cri-tools/releases/download/v${{ matrix.kube-release }}.0/crictl-v${{ matrix.kube-release }}.0-linux-amd64.tar.gz && \
44+
sudo tar zxvf crictl-linux-amd64.tar.gz -C /usr/local/bin && \
45+
rm -f crictl-linux-amd64.tar.gz
46+
47+
- name: Swap off
48+
run: |
49+
sudo swapoff -a
50+
sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab
51+
52+
- name: Start Kubelet
53+
run: |
54+
sudo mkdir /etc/systemd/system/kubelet.service.d/
55+
sudo cp ./test/etc/systemd/system/kubelet.service.d/10-kubeadm.conf /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
56+
sudo sed -i "s#/usr/bin#/snap/bin#" /etc/systemd/system/kubelet.service.d/10-kubeadm.conf
57+
sudo cp ./test/etc/systemd/system/kubelet.service /etc/systemd/system/kubelet.service
58+
sudo cp ./test/var/lib/kubelet/kubeadm-flags.env /var/lib/kubelet/kubeadm-flags.env
59+
sudo cp ./test/var/lib/kubelet/config.yaml /var/lib/kubelet/config.yaml
60+
sudo systemctl daemon-reload
61+
sudo systemctl enable kubelet --now
62+
sleep 2
63+
sudo systemctl status kubelet || journalctl -xe -u kubelet || true
64+
65+
- name: Initialize Kubernetes
66+
run: |
67+
sudo kubeadm init || {
68+
journalctl -xeu kubelet
69+
exit 1
70+
}
71+
72+
- name: Setup kubeconfig
73+
run: |
74+
mkdir -p $HOME/.kube
75+
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
76+
sudo chown $(id -u):$(id -g) $HOME/.kube/config
77+
78+
- name: Get pods
79+
run: |
80+
kubectl get pods -o wide --all-namespaces
81+
82+
- name: Get nodes
83+
run: |
84+
kubectl get nodes -o wide
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
[Unit]
2+
Description=kubelet: The Kubernetes Node Agent
3+
Documentation=https://kubernetes.io/docs/home/
4+
Wants=network-online.target
5+
After=network-online.target
6+
7+
[Service]
8+
ExecStart=/usr/bin/kubelet
9+
Restart=always
10+
StartLimitInterval=0
11+
RestartSec=10
12+
13+
[Install]
14+
WantedBy=multi-user.target
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# Note: This dropin only works with kubeadm and kubelet v1.11+
2+
[Service]
3+
Environment="KUBELET_KUBECONFIG_ARGS=--bootstrap-kubeconfig=/etc/kubernetes/bootstrap-kubelet.conf --kubeconfig=/etc/kubernetes/kubelet.conf"
4+
Environment="KUBELET_CONFIG_ARGS=--config=/var/lib/kubelet/config.yaml"
5+
# This is a file that "kubeadm init" and "kubeadm join" generates at runtime, populating the KUBELET_KUBEADM_ARGS variable dynamically
6+
EnvironmentFile=-/var/lib/kubelet/kubeadm-flags.env
7+
# This is a file that the user can use for overrides of the kubelet args as a last resort. Preferably, the user should use
8+
# the .NodeRegistration.KubeletExtraArgs object in the configuration files instead. KUBELET_EXTRA_ARGS should be sourced from this file.
9+
EnvironmentFile=-/etc/default/kubelet
10+
ExecStart=
11+
ExecStart=/usr/bin/kubelet $KUBELET_KUBECONFIG_ARGS $KUBELET_CONFIG_ARGS $KUBELET_KUBEADM_ARGS $KUBELET_EXTRA_ARGS

test/var/lib/kubelet/config.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
apiVersion: kubelet.config.k8s.io/v1beta1
2+
kind: KubeletConfiguration
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
KUBELET_KUBEADM_ARGS=""

0 commit comments

Comments
 (0)