Skip to content

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

Merged
zeeshanlakhani merged 3 commits into
mainfrom
zl/opte-version-override
May 19, 2026
Merged

[opte, deps] better support for unpublished xde via tools/opte_version_override#10384
zeeshanlakhani merged 3 commits into
mainfrom
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
@zeeshanlakhani zeeshanlakhani self-assigned this May 7, 2026
@zeeshanlakhani zeeshanlakhani force-pushed the zl/opte-version-override branch from 4caf5dc to 9c02919 Compare May 8, 2026 02:09
Copy link
Copy Markdown
Contributor

@FelixMcFelix FelixMcFelix left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Glad to see this pulled out of #10070. Just a few nits from me.

Comment thread .github/buildomat/jobs/deploy.sh Outdated
# swap them in. The deploy target is a ramdisk image without pkg(5), so we
# use rem_drv/add_drv instead of the p5p approach used by install_opte.sh
# and releng.
# shellcheck source=/dev/null
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nit: vestigial shellcheck?

Comment thread dev-tools/releng/src/main.rs Outdated
Includes:
- deploy.sh: drop vestigial `shellcheck source=/dev/null` directive
- releng: update `download_opte_p5p` to take refes and clone internally
@zeeshanlakhani zeeshanlakhani merged commit 8ce7e9a into main May 19, 2026
18 checks passed
@zeeshanlakhani zeeshanlakhani deleted the zl/opte-version-override branch May 19, 2026 02:37
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.

2 participants