Skip to content

Commit 9cd196c

Browse files
[merge] merge main and conflict sauce
2 parents 0e22f72 + 8ce7e9a commit 9cd196c

243 files changed

Lines changed: 9351 additions & 1882 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.cargo/xtask.toml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,3 +50,12 @@ binary_allow_list = [
5050
"sled-agent",
5151
"sled-agent-sim",
5252
]
53+
54+
# libfmd_adm is the illumos Fault Management Daemon admin library, used by
55+
# sled-agent to collect FMD case/resource information for inventory.
56+
[libraries."libfmd_adm.so.1"]
57+
binary_allow_list = [
58+
"omicron-dev",
59+
"sled-agent",
60+
"sled-agent-sim",
61+
]

.github/buildomat/jobs/a4x2-deploy.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
#:
33
#: name = "a4x2-deploy"
44
#: variety = "basic"
5-
#: target = "lab-2.0-opte-0.31"
5+
#: target = "lab-3.0-opte-0.40"
66
#: output_rules = [
77
#: "/out/falcon/*.log",
88
#: "/out/falcon/*.err",
@@ -129,7 +129,7 @@ chmod +x a4x2
129129
# Install falcon base images
130130
#
131131
export FALCON_DATASET=cpool/falcon
132-
images="debian-11.0_0 helios-2.0_0"
132+
images="debian-11.0_0 helios-3.0_0"
133133
for img in $images; do
134134
file=$img.raw.xz
135135
curl -OL http://catacomb.eng.oxide.computer:12346/falcon/$file

.github/buildomat/jobs/deploy.sh

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,10 @@ _exit_trap() {
3333
local status=$?
3434
set +o errexit
3535

36+
# Restore the override opteadm from /tmp before debug-evidence
37+
# collection runs, in case anything earlier in this trap or any
38+
# downstream tooling has overwritten the installed binary. The
39+
# /tmp copy is saved by the OPTE_COMMIT install block below.
3640
if [[ "x$OPTE_COMMIT" != "x" ]]; then
3741
pfexec cp /tmp/opteadm /opt/oxide/opte/bin/opteadm
3842
fi
@@ -134,19 +138,6 @@ z_swadm () {
134138
pfexec zlogin oxz_switch /opt/oxide/dendrite/bin/swadm $@
135139
}
136140

137-
# only set this if you want to override the version of opte/xde installed by the
138-
# install_opte.sh script
139-
OPTE_COMMIT=""
140-
if [[ "x$OPTE_COMMIT" != "x" ]]; then
141-
curl -sSfOL https://buildomat.eng.oxide.computer/public/file/oxidecomputer/opte/module/$OPTE_COMMIT/xde
142-
pfexec rem_drv xde || true
143-
pfexec mv xde /kernel/drv/amd64/xde
144-
pfexec add_drv xde || true
145-
curl -sSfOL https://buildomat.eng.oxide.computer/public/file/oxidecomputer/opte/release/$OPTE_COMMIT/opteadm
146-
chmod +x opteadm
147-
cp opteadm /tmp/opteadm
148-
pfexec mv opteadm /opt/oxide/opte/bin/opteadm
149-
fi
150141

151142
#
152143
# XXX work around 14537 (UFS should not allow directories to be unlinked) which
@@ -197,6 +188,24 @@ ptime -m tar xvzf /input/package/work/package.tar.gz
197188
# shellcheck source=/dev/null
198189
source .github/buildomat/ci-env.sh
199190

191+
# Source the OPTE override (if any) from the canonical location and apply it.
192+
#
193+
# When set, download the xde driver and opteadm directly from buildomat and
194+
# swap them in. The deploy target is a ramdisk image without pkg(5), so we
195+
# use rem_drv/add_drv instead of the p5p approach used by install_opte.sh
196+
# and releng.
197+
source tools/opte_version_override
198+
if [[ "x$OPTE_COMMIT" != "x" ]]; then
199+
curl -sSfOL "https://buildomat.eng.oxide.computer/public/file/oxidecomputer/opte/module/$OPTE_COMMIT/xde"
200+
pfexec rem_drv xde || true
201+
pfexec mv xde /kernel/drv/amd64/xde
202+
pfexec add_drv xde || true
203+
curl -sSfOL "https://buildomat.eng.oxide.computer/public/file/oxidecomputer/opte/release/$OPTE_COMMIT/opteadm"
204+
chmod +x opteadm
205+
cp opteadm /tmp/opteadm
206+
pfexec mv opteadm /opt/oxide/opte/bin/opteadm
207+
fi
208+
200209
# Ask buildomat for the range of extra addresses that we're allowed to use, and
201210
# break them up into the ranges we need.
202211

.github/buildomat/jobs/package.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,7 @@ files=(
6060
target/release/xtask
6161
target/debug/bootstrap
6262
tests/*
63+
tools/opte_version
64+
tools/opte_version_override
6365
)
6466
ptime -m tar cvzf $WORK/package.tar.gz "${files[@]}" "${packages[@]}"

.github/workflows/check-opte-ver.yml

Lines changed: 19 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
name: check-opte-ver
22
on:
3+
# Run on every PR targeting main, regardless of which paths changed, as the
4+
# override file may have been set in an earlier commit on the branch. So,
5+
# we must check on every PR rather than only when tracked paths change.
36
pull_request:
4-
paths:
5-
- '.github/workflows/check-opte-ver.yml'
6-
- 'Cargo.toml'
7-
- 'tools/opte_version'
7+
branches: [main]
88
jobs:
99
check-opte-ver:
1010
runs-on: ubuntu-22.04
@@ -18,3 +18,18 @@ jobs:
1818
run: cargo install toml-cli@0.2.3
1919
- name: Check OPTE version and rev match
2020
run: ./tools/ci_check_opte_ver.sh
21+
22+
check-opte-override:
23+
runs-on: ubuntu-22.04
24+
steps:
25+
- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
26+
with:
27+
ref: ${{ github.event.pull_request.head.sha }} # see omicron#4461
28+
- name: Reject OPTE override on main
29+
run: |
30+
source tools/opte_version_override
31+
if [[ "x$OPTE_COMMIT" != "x" ]]; then
32+
echo "::error::OPTE_COMMIT is set in tools/opte_version_override."
33+
echo "::error::The OPTE override must be cleared before merging to main."
34+
exit 1
35+
fi

0 commit comments

Comments
 (0)