@@ -50,11 +50,11 @@ jobs:
5050 unlink nix-envs || true
5151 nix build --show-trace --file . push --out-link nix-envs
5252 ./nix-envs/bin/push
53- - name : Build and push amd64 lix image
53+ - name : Build and push amd64 nix image
5454 run : |
55- unlink nix-lix || true
56- nix build --show-trace --file . lixImage .pushArch.x86_64-linux --out-link nix-lix
57- ./nix-lix /bin/push-lix -x86_64-linux
55+ unlink nix-nix || true
56+ nix build --show-trace --file . nixImage .pushArch.x86_64-linux --out-link nix-nix
57+ ./nix-nix /bin/push-nix -x86_64-linux
5858 build-arm64 :
5959 runs-on : ubuntu-24.04-arm
6060 steps :
@@ -71,11 +71,11 @@ jobs:
7171 unlink nix-envs || true
7272 nix build --show-trace --file . push --out-link nix-envs
7373 ./nix-envs/bin/push
74- - name : Build and push arm64 lix image
74+ - name : Build and push arm64 nix image
7575 run : |
76- unlink nix-lix || true
77- nix build --show-trace --file . lixImage .pushArch.aarch64-linux --out-link nix-lix
78- ./nix-lix /bin/push-lix -aarch64-linux
76+ unlink nix-nix || true
77+ nix build --show-trace --file . nixImage .pushArch.aarch64-linux --out-link nix-nix
78+ ./nix-nix /bin/push-nix -aarch64-linux
7979 build-manifests :
8080 needs : [build-amd64, build-arm64]
8181 runs-on : ubuntu-latest
@@ -88,11 +88,11 @@ jobs:
8888 nixbuild_key : ${{ secrets.NIXBUILD_KEY }}
8989 github_token : ${{ secrets.GITHUB_TOKEN }}
9090 cache_key : build-manifests
91- - name : Create lix multi-arch manifest
91+ - name : Create nix multi-arch manifest
9292 run : |
9393 unlink nix-manifest || true
94- nix build --show-trace --file . lixImage .pushManifest --out-link nix-manifest
95- ./nix-manifest/bin/push-lix -manifest
94+ nix build --show-trace --file . nixImage .pushManifest --out-link nix-manifest
95+ ./nix-manifest/bin/push-nix -manifest
9696 - name : Build and push scratch image
9797 run : |
9898 unlink nix-scratches || true
@@ -122,13 +122,13 @@ jobs:
122122 ./result/bin/kubenixDeploy --yes
123123 - name : Wait for nix-csi node daemonset
124124 run : |
125- kubectl rollout status daemonset -l app.kubernetes.io/component=node -n nixkube --timeout=60s
125+ kubectl rollout status daemonset -l app.kubernetes.io/component=node -n nixkube --timeout=180s
126126 - name : Wait for nix-csi cache pod
127127 run : |
128- kubectl wait --for=condition=ready pod -l app.kubernetes.io/component=cache -n nixkube --timeout=60s
128+ kubectl wait --for=condition=ready pod -l app.kubernetes.io/component=pynixd -n nixkube --timeout=180s
129129 - name : Wait for test workload
130130 run : |
131- kubectl wait --for=condition=complete job/flake-hello job/expr-hello job/path-hello job/nri-hello-ro job/nri-hello-rw -n nixkube --timeout=120s
131+ kubectl wait --for=condition=complete job/flake-hello job/expr-hello job/path-hello job/nri-hello-ro job/nri-hello-rw -n nixkube --timeout=300s
132132 - name : Validate success events
133133 run : |
134134 echo "=== Checking NixVolumeMount events ==="
@@ -151,7 +151,7 @@ jobs:
151151 - name : Delete jobs and verify CSI cleanup
152152 run : |
153153 kubectl delete job flake-hello expr-hello path-hello invalid-storepath-hello invalid-flake-hello invalid-expr-hello nri-hello-ro nri-hello-rw -n nixkube
154- kubectl wait --for=delete pod -l "job-name in (flake-hello,expr-hello,path-hello,invalid-storepath-hello,invalid-flake-hello,invalid-expr-hello,nri-hello-ro,nri-hello-rw)" -n nixkube --timeout=60s
154+ kubectl wait --for=delete pod -l "job-name in (flake-hello,expr-hello,path-hello,invalid-storepath-hello,invalid-flake-hello,invalid-expr-hello,nri-hello-ro,nri-hello-rw)" -n nixkube --timeout=120s
155155 - name : Validate error events
156156 run : |
157157 echo "=== Checking error events ==="
@@ -171,45 +171,58 @@ jobs:
171171 - name : Print node logs
172172 run : |
173173 echo "=== Node pod logs ==="
174- kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail -1
175- - name : Cluster state all
176- if : failure()
177- run : |
178- echo "=== Cluster state all ==="
179- kubectl get all -A || true
180- - name : Cluster state configmaps
181- if : failure()
182- run : |
183- echo "=== Cluster configmaps ==="
184- kubectl get configmaps -A || true
185- - name : Cluster state secrets
186- if : failure()
187- run : |
188- kubectl get secrets -A || true
189- - name : Cache
190- if : failure()
191- run : |
192- kubectl logs -l app.kubernetes.io/component=cache -n nixkube --tail -1 || true
193- kubectl describe pod -l app.kubernetes.io/component=cache -n nixkube || true
194- - name : Node
174+ kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail=50 --timestamps
175+ - name : Debug on failure
195176 if : failure()
196177 run : |
197- kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail -1 || true
178+ set -x
179+ echo "=== ALL PODS ==="
180+ kubectl get pods -A -o wide || true
181+
182+ echo "=== NIXKUBE PODS WIDE ==="
183+ kubectl get pods -o wide -n nixkube || true
184+
185+ echo "=== NODE POD DESCRIBE ==="
198186 kubectl describe pod -l app.kubernetes.io/component=node -n nixkube || true
199- - name : Init
200- if : failure()
201- run : |
202- kubectl logs -l app.kubernetes.io/component=init -n nixkube --tail -1 || true
203- - name : Events
204- if : failure()
205- run : |
206- kubectl get events -n nixkube --sort-by='.lastTimestamp'
207- - name : Troubleshoot with upterm
208- if : failure()
209- uses : owenthereal/action-upterm@main
210- with :
211- limit-access-to-actor : true
212- wait-timeout-minutes : 5
187+
188+ echo "=== CACHE POD DESCRIBE ==="
189+ kubectl describe pod -l app.kubernetes.io/component=pynixd -n nixkube || true
190+
191+ echo "=== INIT POD DESCRIBE ==="
192+ kubectl describe pod -l app.kubernetes.io/component=init -n nixkube || true
193+
194+ echo "=== NODE POD LOGS (with timestamps) ==="
195+ kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail=100 --timestamps || true
196+
197+ echo "=== NODE POD PREVIOUS LOGS ==="
198+ kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail=100 --timestamps --previous 2>/dev/null || echo "(no previous logs)"
199+
200+ echo "=== CACHE POD LOGS (with timestamps) ==="
201+ kubectl logs -l app.kubernetes.io/component=pynixd -n nixkube --tail=100 --timestamps || true
202+
203+ echo "=== CACHE POD PREVIOUS LOGS ==="
204+ kubectl logs -l app.kubernetes.io/component=pynixd -n nixkube --tail=100 --timestamps --previous 2>/dev/null || echo "(no previous logs)"
205+
206+ echo "=== INIT POD LOGS ==="
207+ kubectl logs -l app.kubernetes.io/component=init -n nixkube --tail=100 --timestamps || true
208+
209+ echo "=== INIT POD PREVIOUS LOGS ==="
210+ kubectl logs -l app.kubernetes.io/component=init -n nixkube --tail=100 --timestamps --previous 2>/dev/null || echo "(no previous logs)"
211+
212+ echo "=== CSI NODE INFO ==="
213+ kubectl get csinode -o wide || true
214+
215+ echo "=== VOLUME ATTACHMENTS ==="
216+ kubectl get volumeattachment -o wide || true
217+
218+ echo "=== PVCs ==="
219+ kubectl get pvc -A -o wide || true
220+
221+ echo "=== PVs ==="
222+ kubectl get pv -o wide || true
223+
224+ echo "=== EVENTS ==="
225+ kubectl get events -n nixkube --sort-by='.lastTimestamp' || true
213226 test-kind-nocache :
214227 needs : build-manifests
215228 runs-on : ubuntu-latest
@@ -233,41 +246,69 @@ jobs:
233246 ./result/bin/kubenixDeploy --yes
234247 - name : Wait for nix-csi node daemonset
235248 run : |
236- kubectl rollout status daemonset -l app.kubernetes.io/component=node -n nixkube --timeout=60s
249+ kubectl rollout status daemonset -l app.kubernetes.io/component=node -n nixkube --timeout=180s
237250 - name : Wait for test workload
238251 run : |
239- kubectl wait --for=condition=complete job/flake-hello job/expr-hello job/path-hello job/nri-hello-ro job/nri-hello-rw -n nixkube --timeout=120s
252+ kubectl wait --for=condition=complete job/flake-hello job/expr-hello job/path-hello job/nri-hello-ro job/nri-hello-rw -n nixkube --timeout=300s
240253 - name : Delete jobs and verify CSI cleanup
241254 run : |
242255 kubectl delete job flake-hello expr-hello path-hello nri-hello-ro nri-hello-rw -n nixkube
243- kubectl wait --for=delete pod -l "job-name in (flake-hello,expr-hello,path-hello,nri-hello-ro,nri-hello-rw)" -n nixkube --timeout=60s
256+ kubectl wait --for=delete pod -l "job-name in (flake-hello,expr-hello,path-hello,nri-hello-ro,nri-hello-rw)" -n nixkube --timeout=120s
244257 - name : Print node logs
245258 run : |
246259 echo "=== Node pod logs ==="
247- kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail -1
260+ kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail=50 --timestamps
248261 - name : Debug on failure
249262 if : failure()
250263 run : |
251- echo "=== Cluster state ==="
252- kubectl get all -A
264+ set -x
265+ echo "=== ALL PODS ==="
266+ kubectl get pods -A -o wide || true
253267
254- echo "=== Cache pod logs ==="
255- kubectl logs -l app.kubernetes.io/name=cache -n nixkube --tail -1 || true
268+ echo "=== NIXKUBE PODS WIDE ==="
269+ kubectl get pods -o wide -n nixkube || true
256270
257- echo "=== Node pod logs ==="
258- kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail -1 || true
271+ echo "=== NODE POD DESCRIBE ==="
272+ kubectl describe pod -l app.kubernetes.io/component=node -n nixkube || true
259273
260- echo "=== Init pod logs ==="
261- kubectl logs -l app.kubernetes.io/component=init -n nixkube --tail -1 || true
274+ echo "=== CACHE POD DESCRIBE ==="
275+ kubectl describe pod -l app.kubernetes.io/component=pynixd -n nixkube || true
262276
263- echo "=== Events ==="
264- kubectl get events -n nixkube --sort-by='.lastTimestamp'
265- - name : Troubleshoot with upterm
266- if : failure()
267- uses : owenthereal/action-upterm@main
268- with :
269- limit-access-to-actor : true
270- wait-timeout-minutes : 5
277+ echo "=== INIT POD DESCRIBE ==="
278+ kubectl describe pod -l app.kubernetes.io/component=init -n nixkube || true
279+
280+ echo "=== NODE POD LOGS (with timestamps) ==="
281+ kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail=100 --timestamps || true
282+
283+ echo "=== NODE POD PREVIOUS LOGS ==="
284+ kubectl logs -l app.kubernetes.io/component=node -n nixkube --tail=100 --timestamps --previous 2>/dev/null || echo "(no previous logs)"
285+
286+ echo "=== CACHE POD LOGS (with timestamps) ==="
287+ kubectl logs -l app.kubernetes.io/component=pynixd -n nixkube --tail=100 --timestamps || true
288+
289+ echo "=== CACHE POD PREVIOUS LOGS ==="
290+ kubectl logs -l app.kubernetes.io/component=pynixd -n nixkube --tail=100 --timestamps --previous 2>/dev/null || echo "(no previous logs)"
291+
292+ echo "=== INIT POD LOGS ==="
293+ kubectl logs -l app.kubernetes.io/component=init -n nixkube --tail=100 --timestamps || true
294+
295+ echo "=== INIT POD PREVIOUS LOGS ==="
296+ kubectl logs -l app.kubernetes.io/component=init -n nixkube --tail=100 --timestamps --previous 2>/dev/null || echo "(no previous logs)"
297+
298+ echo "=== CSI NODE INFO ==="
299+ kubectl get csinode -o wide || true
300+
301+ echo "=== VOLUME ATTACHMENTS ==="
302+ kubectl get volumeattachment -o wide || true
303+
304+ echo "=== PVCs ==="
305+ kubectl get pvc -A -o wide || true
306+
307+ echo "=== PVs ==="
308+ kubectl get pv -o wide || true
309+
310+ echo "=== EVENTS ==="
311+ kubectl get events -n nixkube --sort-by='.lastTimestamp' || true
271312 release :
272313 needs : [check, build-manifests, test-kind-cache, test-kind-nocache]
273314 runs-on : ubuntu-latest
0 commit comments