Skip to content

[opte, deps] better support for unpublished xde via tools/opte_version_override#10384

Open
zeeshanlakhani wants to merge 1 commit intomainfrom
zl/opte-version-override
Open

[opte, deps] better support for unpublished xde via tools/opte_version_override#10384
zeeshanlakhani wants to merge 1 commit intomainfrom
zl/opte-version-override

Conversation

@zeeshanlakhani
Copy link
Copy Markdown
Collaborator

OPTE has both a userland (oxide-vpc, opte-ioctl) pinned in Cargo.toml and a kernel module (xde) installed via the helios pkg repo. When the two need to be tested in lockstep before xde lands in a helios build, the existing override logic did not capture all requirements and swapping in an unpublished build was not seamless, particularly on CI. This builds out the override mechanism around the existing tools/opte_version_override stub.

Includes:

  • install_opte.sh, deploy.sh, and releng image builds source tools/opte_version_override and, when OPTE_COMMIT is set, install from the buildomat-published p5p (or curl + rem_drv/add_drv on the deploy ramdisk, which has no pkg(5)) instead of the helios pkg repo.
  • package.sh tarballs tools/opte_version_override so that downstream jobs read the same value.
  • check-opte-ver.yml adds a check-opte-override job that fails any PR targeting main with a non-empty OPTE_COMMIT, so the override can't accidentally leak on main.
  • ci_check_opte_ver.sh now enforces OPTE_COMMIT == Cargo dependency rev so kernel/userland ABI drift surfaces at PR time.

The default is OPTE_COMMIT="", which doesn't apply this override logic.

We also fix a stale "expected lab-opte-0.$API_VER" error message in ci_check_opte_ver.sh. The check itself uses "lab-2.0-opte-0.$API_VER".

This work was extracted from multicast work that (at times) has needed an unpublished xde for kernel-side multicast integration(s).

…ride

OPTE has both a userland (oxide-vpc, opte-ioctl) pinned in Cargo.toml and a kernel
module (xde) installed via the helios pkg repo. When the two need to be tested
in lockstep before xde lands in a helios build, the existing override logic did
not capture all requirements and swapping in an unpublished build was not seamless,
particularly on CI. This builds out the override mechanism around the existing
`tools/opte_version_override` stub.

Includes:

- install_opte.sh, deploy.sh, and releng image builds source `tools/opte_version_override`
  and, when OPTE_COMMIT is set, install from the buildomat-published p5p (or curl +
  rem_drv/add_drv on the deploy ramdisk, which has no pkg(5)) instead of the helios pkg repo.
- package.sh tarballs `tools/opte_version_override` so that downstream jobs read the same
  value.
- check-opte-ver.yml adds a check-opte-override job that fails any PR targeting main
  with a non-empty OPTE_COMMIT, so the override can't accidentally leak on main.
- ci_check_opte_ver.sh now enforces OPTE_COMMIT == Cargo dependency rev so
  kernel/userland ABI drift surfaces at PR time.

The default is OPTE_COMMIT="", which doesn't apply this override logic.

We also fix a stale "expected lab-opte-0.$API_VER" error message in
ci_check_opte_ver.sh. The check itself uses "lab-2.0-opte-0.$API_VER".

This work was extracted from multicast work that (at times) has needed an
unpublished xde for kernel-side multicast integration(s).
@zeeshanlakhani zeeshanlakhani changed the title [opte] better support for unpublished xde via tools/opte_version_override [opte, deps] better support for unpublished xde via tools/opte_version_override May 6, 2026
@zeeshanlakhani zeeshanlakhani requested a review from taspelund May 6, 2026 05:21
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