[pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:40.569354031-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:40.569391231-05:00 == scripts on PATH + executable == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:40.571322600-05:00 ok: scripts/edge-selftest.sh: has shebang [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:40.573543439-05:00 warn: scripts/edge-selftest.sh: not tracked by git but +x on disk [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:40.577364566-05:00 ok: scripts/edge-selftest.sh: bash -n clean [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.441348288-05:00 ok: scripts/edge-selftest.sh: shellcheck clean [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.448240083-05:00 ok: scripts/edge-selftest.sh: runs (--help exit 0) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.449805342-05:00 ok: scripts/edge-selftest: has shebang [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.451698901-05:00 warn: scripts/edge-selftest: not tracked by git but +x on disk [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.453976800-05:00 ok: scripts/edge-selftest: bash -n clean [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.573328802-05:00 ok: scripts/edge-selftest: shellcheck clean [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.578081589-05:00 ok: scripts/edge-selftest: runs (--help exit 0) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.580232668-05:00 ok: roles/selftest installs to a PATH dir: /usr/local/sbin/edge-selftest [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.581520297-05:00 ok: roles/selftest copies the script to {{ selftest_bin }} [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.581593937-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.581601947-05:00 == console login hooks (profile.d) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.584060025-05:00 ok: image/overlay/etc/profile.d/01-edge-console-record.sh: bash -n clean [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.613346086-05:00 ok: image/overlay/etc/profile.d/01-edge-console-record.sh: shellcheck clean [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.614874575-05:00 ok: image/overlay/etc/profile.d/01-edge-console-record.sh: no bare exit (comments excluded) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.616111464-05:00 ok: image/overlay/etc/profile.d/01-edge-console-record.sh: guards non-interactive shells ($-) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.618815492-05:00 ok: image/overlay/etc/profile.d/zz-edge-selftest.sh: bash -n clean [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.659162566-05:00 ok: image/overlay/etc/profile.d/zz-edge-selftest.sh: shellcheck clean [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.660929725-05:00 ok: image/overlay/etc/profile.d/zz-edge-selftest.sh: no bare exit (comments excluded) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.662409874-05:00 ok: image/overlay/etc/profile.d/zz-edge-selftest.sh: guards non-interactive shells ($-) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.663737583-05:00 ok: banner: EDGE_SELFTEST_NOLOGIN opt-out present [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.665043093-05:00 ok: banner: disable-file opt-out present [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.666194842-05:00 ok: recorder: EDGE_CONSOLE_NORECORD opt-out present [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.667362201-05:00 ok: recorder: disable-file opt-out present [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.669551760-05:00 ok: EDGE_CONSOLE_RECORDING marker shared by recorder + banner [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.669628500-05:00 ok: serial console autologin overlay present (image/overlay/etc/systemd/system/serial-getty@ttyS0.service.d/autologin.conf) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.674107457-05:00 ok: banner report dir matches role selftest_report_dir (/var/log/edge-selftest) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:39:41.687718028-05:00 ok: tests/selftest-login.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:07.194581057-05:00 ok: tests/selftest-report-contract.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:07.413990073-05:00 ok: tests/selftest-login-pty.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:07.564994806-05:00 ok: tests/selftest-wrapper.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:07.655835029-05:00 ok: tests/console-record.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:08.007499453-05:00 ok: tests/selftest-firmware-fixtures.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:09.813007455-05:00 ok: tests/selftest-firmware-e2big.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:29.637413486-05:00 ok: tests/selftest-converge-defer.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.193151815-05:00 ok: tests/selftest-verify-keys-exist.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.272711464-05:00 ok: tests/vault-agent-template-render.sh passes [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.273913153-05:00 ok: image/overlay/usr/local/sbin/edge-selftest matches scripts/edge-selftest (v2 wrapper) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.275815551-05:00 warn: image/overlay/usr/local/sbin/edge-selftest: no git metadata (CI workspace) but +x on disk [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.275835651-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.275842691-05:00 == ansible packaged + works locally == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.277334239-05:00 ok: image/packages.list declares ansible-core (baked into the golden) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.278661048-05:00 ok: image/packages.list declares python3 (baked into the golden) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.279770487-05:00 ok: image/packages.list declares git (baked into the golden) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:32.596031265-05:00 ok: ansible present: ansible [core 2.21.2] [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.101066271-05:00 ok: ansible executes a module over the local connection [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.101095191-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.101100751-05:00 == playbooks: valid YAML + valid playbook syntax == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.135053126-05:00 ok: YAML parses: selftest.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.170251360-05:00 ok: YAML parses: selftest-release-gate.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.205771294-05:00 ok: YAML parses: roles/selftest/tasks/main.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.241803767-05:00 ok: YAML parses: roles/selftest/tasks/detect.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.284225253-05:00 ok: YAML parses: roles/selftest/tasks/native.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.326180170-05:00 ok: YAML parses: roles/selftest/defaults/main.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.372877103-05:00 ok: YAML parses: roles/selftest/tasks/tiers/boot.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.408850946-05:00 ok: YAML parses: roles/selftest/tasks/tiers/net.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.452504511-05:00 ok: YAML parses: roles/selftest/tasks/tiers/firmware.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.487236656-05:00 ok: YAML parses: roles/selftest/tasks/tiers/dns.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.538223443-05:00 ok: YAML parses: roles/selftest/tasks/tiers/mesh.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.596832653-05:00 ok: YAML parses: roles/selftest/tasks/tiers/converge.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.646113043-05:00 ok: YAML parses: roles/selftest/tasks/tiers/metrics.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:33.690078848-05:00 ok: YAML parses: roles/selftest/tasks/tiers/logs.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:34.048703341-05:00 warn: yamllint findings (non-fatal): [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:34.050097409-05:00 roles/selftest/tasks/tiers/boot.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:34.050110549-05:00 364:31 error trailing spaces (trailing-spaces) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:34.050114639-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:34.530419744-05:00 ok: ansible-playbook --syntax-check OK: selftest.yml [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:34.530517894-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:34.530524794-05:00 == site/role targeting groups (#247) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.457947375-05:00 ok: tests/site-role-groups.sh passes (subset-targeting contract, #247) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.457986155-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.457994765-05:00 == pki first-boot cert dirs (#334) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.521084349-05:00 ok: tests/pki-firstboot-cert-dirs.sh passes (bare-box cert-render contract, #334) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.521109439-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.521115069-05:00 == pki AppRole steady-state auth switch (#387) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.608004828-05:00 ok: tests/pki-approle-switch.sh passes (approle steady-state, cert retired, #387) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.608038008-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:36.608045358-05:00 == selftest boot tier: masked-unit gating (#399) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:37.932115189-05:00 ok: tests/selftest-boot-masked-units.sh passes (masked units excluded from failed_units, #399) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:37.932143829-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:37.932150249-05:00 == A/B slot completeness markers (edge#520/#484) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:38.217407728-05:00 ok: tests/slot-marker-completeness.sh passes (rollback completeness-marker contract, edge#520/#484) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:38.217439938-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:38.217444578-05:00 == synchronous first-boot converge (#356) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.357278718-05:00 ok: tests/firstboot-converge.sh passes (sync converge before readiness, #356) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.357300488-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.357306018-05:00 == active-firmware prompt (#361) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.380312093-05:00 ok: tests/firmware-prompt.sh passes (prompt reflects active firmware, #361) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.380380603-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.380386303-05:00 == per-container metrics collector (#395) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.452640313-05:00 ok: tests/container-metrics.sh passes (per-container metrics contract, #395) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.452738353-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:44.452744453-05:00 == config dispatcher: KNOWLEDGE k/v -> service configs (edge#458, retire-converge #449) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:46.732959003-05:00 ok: storeminder-config provisioned from Nexus PyPI (storeminder-config==0.1.6) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:48.549095811-05:00 ok: tests/config-dispatcher.sh passes (#884 shape, cron->OnCalendar, sts creds, forward-skew, validation gate, Mender exit-code contract) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:50.602271867-05:00 ok: tests/selftest-gate.sh passes (post-apply health gate: ordering, rollback teeth, timeout bound, skip semantics; edge#457) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:50.602298357-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:50.602302667-05:00 == manifest-driven S3 uploader units (edge#451, retire-converge #449) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:50.768639148-05:00 ok: tests/s3-uploader.sh passes (unit wiring, seam agreement, skip ladder, rclone flow, converge yield) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:50.768666758-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:50.768675948-05:00 == collector config seam (edge#478, retire-converge #449) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:51.860580030-05:00 ok: tests/collector-config.sh passes (config round-trip, skip-when-absent, oneshot no-reload, no-secret-in-world-readable-sink) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:51.860696439-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:40:51.860703279-05:00 == selftest logs round-trip tier (edge#394) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:41:07.297212278-05:00 ok: tests/selftest-logs-roundtrip.sh passes (emit->ship->index->confirm contract, edge#394) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:41:07.297231358-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:41:07.297237358-05:00 == selftest release gate (edge#504) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:41:51.816795123-05:00 ok: tests/selftest-release-gate.sh passes (round-trip escalation is a release blocker, edge#504) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:41:51.816917722-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:41:51.816924052-05:00 == hermetic obs round-trip fixture (edge#506) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:42:36.114436457-05:00 ok: tests/selftest-obs-fixture.sh passes (obs fixture + shape helpers + round-trip wiring, edge#506) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:42:36.114472737-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:42:36.114479957-05:00 == setup narrative + failure signatures (edge#421) == [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:42:36.177222086-05:00 ok: tests/setup-log.sh passes (narrative primitive contract, edge#421) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:42:36.427542952-05:00 ok: tests/setup-diagnose.sh passes (failure-signature catalogue, edge#421) [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:42:36.427578892-05:00 [pod/edge-main-validate-l6kfx-selftest-validate-pod/step-selftest-validate] 2026-08-17T16:42:36.427585782-05:00 edge-selftest-lint: all checks passed [pod/edge-main-validate-l6kfx-selftest-validate-pod/prepare] 2026-08-17T16:39:35.980695382-05:00 2026/08/17 21:39:35 Entrypoint initialization [pod/edge-main-validate-l6kfx-selftest-validate-pod/place-scripts] 2026-08-17T16:39:36.301004856-05:00 2026/08/17 21:39:36 Decoded script /tekton/scripts/script-0-mjdrt