···
19
-
pauseImage = pkgs.dockerTools.streamLayeredImage {
19
+
pauseImage = pkgs.dockerTools.buildImage {
name = "test.local/pause";
22
-
contents = imageEnv;
22
+
copyToRoot = imageEnv;
···
78
+
images = [ pauseImage ];
···
121
+
images = [ pauseImage ];
serverAddr = "https://192.168.1.1:6443";
122
-
extraFlags = builtins.toString [
136
-
"test.local/pause:local"
125
+
"--disable coredns"
126
+
"--disable local-storage"
127
+
"--disable metrics-server"
128
+
"--disable servicelb"
129
+
"--disable traefik"
130
+
"--node-ip 192.168.1.3"
131
+
"--pause-image test.local/pause:local"
networking.firewall.allowedTCPPorts = [
···
161
+
images = [ pauseImage ];
serverAddr = "https://192.168.1.3:6443";
167
-
extraFlags = lib.concatStringsSep " " [
169
-
"test.local/pause:local"
164
+
"--pause-image test.local/pause:local"
165
+
"--node-ip 192.168.1.2"
networking.firewall.allowedTCPPorts = [ 6443 ];
···
189
-
machines = [server, server2, agent]
192
-
m.wait_for_unit("k3s")
194
-
is_aarch64 = "${toString pkgs.stdenv.hostPlatform.isAarch64}" == "1"
196
-
# wait for the agent to show up
197
-
server.wait_until_succeeds("k3s kubectl get node agent")
200
-
m.succeed("k3s check-config")
202
-
"${pauseImage} | k3s ctr image import -"
182
+
testScript = # python
205
-
server.succeed("k3s kubectl cluster-info")
206
-
# Also wait for our service account to show up; it takes a sec
207
-
server.wait_until_succeeds("k3s kubectl get serviceaccount default")
186
+
machines = [server, server2, agent]
188
+
m.wait_for_unit("k3s")
209
-
# Now create a pod on each node via a daemonset and verify they can talk to each other.
210
-
server.succeed("k3s kubectl apply -f ${networkTestDaemonset}")
211
-
server.wait_until_succeeds(f'[ "$(k3s kubectl get ds test -o json | jq .status.numberReady)" -eq {len(machines)} ]')
190
+
# wait for the agent to show up
191
+
server.wait_until_succeeds("k3s kubectl get node agent")
214
-
pods = server.succeed("k3s kubectl get po -o json | jq '.items[].metadata.name' -r").splitlines()
215
-
pod_ips = [server.succeed(f"k3s kubectl get po {name} -o json | jq '.status.podIP' -cr").strip() for name in pods]
194
+
m.succeed("k3s check-config")
217
-
# Verify each server can ping each pod ip
218
-
for pod_ip in pod_ips:
219
-
server.succeed(f"ping -c 1 {pod_ip}")
220
-
agent.succeed(f"ping -c 1 {pod_ip}")
196
+
server.succeed("k3s kubectl cluster-info")
197
+
# Also wait for our service account to show up; it takes a sec
198
+
server.wait_until_succeeds("k3s kubectl get serviceaccount default")
222
-
# Verify the pods can talk to each other
223
-
resp = server.wait_until_succeeds(f"k3s kubectl exec {pods[0]} -- socat TCP:{pod_ips[1]}:8000 -")
224
-
assert resp.strip() == "server"
225
-
resp = server.wait_until_succeeds(f"k3s kubectl exec {pods[1]} -- socat TCP:{pod_ips[0]}:8000 -")
226
-
assert resp.strip() == "server"
200
+
# Now create a pod on each node via a daemonset and verify they can talk to each other.
201
+
server.succeed("k3s kubectl apply -f ${networkTestDaemonset}")
202
+
server.wait_until_succeeds(f'[ "$(k3s kubectl get ds test -o json | jq .status.numberReady)" -eq {len(machines)} ]')
229
-
server.succeed("k3s kubectl delete -f ${networkTestDaemonset}")
205
+
pods = server.succeed("k3s kubectl get po -o json | jq '.items[].metadata.name' -r").splitlines()
206
+
pod_ips = [server.succeed(f"k3s kubectl get po {name} -o json | jq '.status.podIP' -cr").strip() for name in pods]
208
+
# Verify each server can ping each pod ip
209
+
for pod_ip in pod_ips:
210
+
server.succeed(f"ping -c 1 {pod_ip}")
211
+
server2.succeed(f"ping -c 1 {pod_ip}")
212
+
agent.succeed(f"ping -c 1 {pod_ip}")
213
+
# Verify the pods can talk to each other
215
+
resp = server.succeed(f"k3s kubectl exec {pod} -- socat TCP:{pod_ip}:8000 -")
216
+
assert resp.strip() == "server"
meta.maintainers = lib.teams.k3s.members;