@norskvideo/ctl-dev-kit 0.2.17 → 0.2.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/conventions/integration.yml +33 -0
- package/package.json +1 -1
|
@@ -178,6 +178,39 @@ jobs:
|
|
|
178
178
|
echo "NORSK_RUNNER_OWNS_DOCKER=true" >> "$GITHUB_ENV"
|
|
179
179
|
fi
|
|
180
180
|
|
|
181
|
+
# Integration needs this host's docker to be able to create a network: the
|
|
182
|
+
# harness makes norsk-net and a network per instance. On 2026-10-02
|
|
183
|
+
# ashton-nuc's filter table had lost DOCKER-ISOLATION-STAGE-2, so every
|
|
184
|
+
# create failed with "Chain 'DOCKER-ISOLATION-STAGE-2' does not exist" --
|
|
185
|
+
# and commentary, probe and playout each ran a FULL integration suite on it
|
|
186
|
+
# and reported the result as test failures, 18 and 72 chain errors deep in
|
|
187
|
+
# their logs. The same host took four of that night's norsk image jobs down
|
|
188
|
+
# the same way. Nothing said "this machine's docker is broken".
|
|
189
|
+
#
|
|
190
|
+
# The chain is not readable without root on these runners, so this asserts
|
|
191
|
+
# the capability instead: create a throwaway network, remove it. One step,
|
|
192
|
+
# its own name, so the jobs API attributes the failure to it rather than to
|
|
193
|
+
# whatever composite step happened to be running.
|
|
194
|
+
- name: Check this host's docker can still create a network
|
|
195
|
+
run: |
|
|
196
|
+
set -uo pipefail
|
|
197
|
+
net="preflight-${{ github.run_id }}-${{ github.run_attempt }}-$RANDOM"
|
|
198
|
+
if err=$(docker network create "$net" 2>&1); then
|
|
199
|
+
docker network rm "$net" >/dev/null 2>&1 || true
|
|
200
|
+
echo "docker can create networks on $(hostname) -- ok"
|
|
201
|
+
exit 0
|
|
202
|
+
fi
|
|
203
|
+
echo "::error::docker on this runner cannot create a network, so every container this suite starts would silently not exist -- the tests would fail for a reason that is not theirs. Host: $(hostname). Fix: \`sudo systemctl restart docker\` on that machine (it rebuilds the DOCKER/DOCKER-ISOLATION iptables chains), then re-run."
|
|
204
|
+
echo "$err"
|
|
205
|
+
echo "--- docker0 (a subnet other than 172.17.0.1/16 means it was re-addressed) ---"
|
|
206
|
+
ip -br addr show docker0 2>/dev/null || true
|
|
207
|
+
echo "--- networks and their subnets ---"
|
|
208
|
+
for n in $(docker network ls --format '{{.Name}}' 2>/dev/null); do
|
|
209
|
+
printf '%-28s ' "$n"
|
|
210
|
+
docker network inspect "$n" --format '{{range .IPAM.Config}}{{.Subnet}} {{end}}' 2>/dev/null || echo
|
|
211
|
+
done
|
|
212
|
+
exit 1
|
|
213
|
+
|
|
181
214
|
# `product add --image` publishes the control plane on 127.0.0.1:14321. The
|
|
182
215
|
# daemon means to reap it on shutdown (daemon.ts, model B) but only does so
|
|
183
216
|
# gracefully, and this workflow cancels its own superseded runs -- a killed
|