-
Notifications
You must be signed in to change notification settings - Fork 40
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[buildomat] Package all global zone tarballs into single tarball #2475
Conversation
#: "=/work/zones/*.tar.gz", | ||
#: ] | ||
#: | ||
#: [[publish]] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👀
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See: https://github.com/oxidecomputer/buildomat#configuration , under publish
specifically
I think this'll be necessary for the helios
repo to be able to "pick up these output artifacts" by a particular commit of Omicron
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm doing that work in oxidecomputer/helios#56
I think the artefact we want to produce here actually looks a lot more like a
I used this script to produce the archive above, based on CI bits from the latest omicron at time of writing: #!/bin/bash
set -o errexit
set -o pipefail
set -o xtrace
out="$PWD/omicron-gz.tar.gz"
#
# Create a temporary directory in which to work:
#
if ! dir=$(mktemp -d); then
exit 1
fi
trap 'cd /; rm -rf "$dir"' EXIT
#
# Grab package.tar.gz from a "helios / package" buildomat job in the omicron
# repository:
#
url='https://buildomat.eng.oxide.computer/wg/0/artefact'
url+='/01GTMSQ3YXVEERT7507JD5JHMR'
url+='/PC4GK7nwpbMpBW38aIYmpuxGZyGzLismlZVfoDYO5gt8FdTq'
url+='/01GTMSQFKEV7RCX1GJPR4TKFFW'
url+='/01GTMV6X38PK4DFWDKVMMAJCAS'
url+='/package.tar.gz'
curl -Lo "$dir/package.tar.gz" "$url"
#
# Unpack the archive so that we can pick out the bits we need:
#
mkdir -p "$dir/extract"
cd "$dir/extract"
tar xvfz "$dir/package.tar.gz"
mkdir -p "$dir/root/opt/oxide/sled-agent"
cd "$dir/root/opt/oxide/sled-agent"
tar xvfz "$dir/extract/out/omicron-sled-agent.tar"
mkdir -p "$dir/root/lib/svc/manifest/site"
mv pkg/manifest.xml "$dir/root/lib/svc/manifest/site/sled-agent.xml"
mkdir -p "$dir/root/opt/oxide/mg-ddm"
cd "$dir/root/opt/oxide/mg-ddm"
tar xvfz "$dir/extract/out/maghemite.tar"
echo '{"v":"1","t":"layer"}' > "$dir/oxide.json"
cd "$dir" && tar cvfz "$out" oxide.json root Then |
Sure thing, updated |
- Depends on #2475 - Ingests global zone packages, and places them in the ramdisk - Output of job: Helios image, which should be bootable on a Gimlet
My expectation is that we'll:
global-zone-packages.tar.gz
in thehelios
repoAdditionally, I made the list of artifacts a bit more explicit. Eventually we could parse the package manifest to access this info, but for now, I don't want to include any "intermediate" artifacts that shouldn't be installed on a system.