Skip to content

ci: add OCE compliance test (DHCP VIVSO discovery + install)#1126

Open
bhouse-nexthop wants to merge 1 commit into
opencomputeproject:onie-modernization-2026from
bhouse-nexthop:bhouse.oce-compliance
Open

ci: add OCE compliance test (DHCP VIVSO discovery + install)#1126
bhouse-nexthop wants to merge 1 commit into
opencomputeproject:onie-modernization-2026from
bhouse-nexthop:bhouse.oce-compliance

Conversation

@bhouse-nexthop

@bhouse-nexthop bhouse-nexthop commented Jul 9, 2026

Copy link
Copy Markdown

What this adds

ci: add OCE compliance test (DHCP VIVSO discovery + install) — a new CI gate that runs ONIE's own OCE (ONIE Compliance Environment, contrib/oce) against the freshly built kvm_x86_64 image, exercising the real OCP discovery path end-to-end:

  • New oce-test job chained after install-test (build → boot-test → install-test → oce-test), so it runs against the same validated image.
  • Boots ONIE headless with an L2 tap (not user-mode SLIRP), stands up the OCP discovery service backends (DHCP incl. VIVSO/opt-125, TFTP, HTTP), and has OCE drive discovery → fetch → full install (and updater mode for the relevant tests), asserting success over the serial console.
  • workflow_dispatch gains an oce_scope input: default (a fast representative subset, also what push/PR runs) or full (the entire OCE installer+updater sweep).
  • Harness: emulation/ci-oce-test.sh.

@bhouse-nexthop bhouse-nexthop force-pushed the bhouse.oce-compliance branch from 52147f0 to d463d29 Compare July 9, 2026 19:29
@bhouse-nexthop bhouse-nexthop marked this pull request as draft July 9, 2026 19:46
bhouse-nexthop added a commit to bhouse-nexthop/onie that referenced this pull request Jul 9, 2026
Squashed content of PR opencomputeproject#1126, pulled in as a dependency.

Signed-off-by: Brad House <bhouse@nexthop.ai>
bhouse-nexthop added a commit to bhouse-nexthop/onie that referenced this pull request Jul 10, 2026
Squashed content of PR opencomputeproject#1126, pulled in as a dependency.

Signed-off-by: Brad House <bhouse@nexthop.ai>
bhouse-nexthop added a commit to bhouse-nexthop/onie that referenced this pull request Jul 13, 2026
Squashed content of PR opencomputeproject#1126, pulled in as a dependency.

Signed-off-by: Brad House <bhouse@nexthop.ai>
Add a CI job that runs ONIE's own OCE (ONIE Compliance Environment,
contrib/oce/test-onie.py) compliance suite against the kvm_x86_64 image,
headless under QEMU.

The existing install-test job hands ONIE the installer URL directly
(install_url= on the kernel command line), which bypasses discovery.
This job exercises the real OCP discovery path instead: OCE stands up an
isc-dhcp-server advertising the ONIE VIVSO vendor option (DHCP option
125) and an nginx HTTP server, and ONIE must DHCP, read the VIVSO
installer URL from the lease, and fetch and install the image itself.
The harness asserts each step from the serial console (DHCP lease,
service discovery, the VIVSO URL fetch, and "NOS install successful").

OCE provides only the server side -- it does not drive or detect the DUT
(its hands/pdu power-control modules are stubs) -- so the harness
(emulation/ci-oce-test.sh) embeds ONIE on a disk, starts OCE's services,
boots ONIE in OS-install mode, and watches the serial console.  OCE
requires L2 connectivity to the DUT (test-onie.py validates that the DUT
address is in the host interface's subnet), so the VM runs on a tap
interface rather than user-mode SLIRP.  isc-dhcp-server is confined by
AppArmor to system paths, so the generated dhcpd config and leases are
placed under /etc/dhcp and /var/lib/dhcp rather than weakening the
profile.

This job is stacked on the python2-to-3 port because contrib/oce is
python3 only after that change, and the GitHub runner is python3.

Signed-off-by: Brad House <bhouse@nexthop.ai>
@bhouse-nexthop bhouse-nexthop force-pushed the bhouse.oce-compliance branch from d463d29 to 5f9e62c Compare July 13, 2026 20:40
@bhouse-nexthop bhouse-nexthop marked this pull request as ready for review July 13, 2026 21:33
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant