Re: [EXTERNAL] - Re: Development Workflow
- From: Dan Nicholson <dbn endlessos org>
- To: Barrett Strausser <bstrausser locusrobotics com>
- Cc: Jonathan Lebon <jlebon redhat com>, "ostree-list gnome org" <ostree-list gnome org>
- Subject: Re: [EXTERNAL] - Re: Development Workflow
- Date: Thu, 3 Mar 2022 11:13:31 -0700
In your case, you most likely want ostree-test to be a VM that you
create from the ostree commit, although
https://salsa.debian.org/debian/ostree/-/blob/debian/latest/debian/ostree-boot-examples/README.md
has instructions for converting a running system to boot from an
ostree commit. I've never personally tried that, though.
In other words, rather than making the test VM start from a focal
image, you want to create your own image. This would come from the
commit you create, which itself could be based on focal. You need to
take the /sysroot you created and make it into an actual bootable
image. This part is rigorously undocumented, primarily because making
a bootable image is very platform and target specific.
However, here's something that could maybe work with a single
partition and an old school MBR partition table:
truncate -s 1G image
echo "start=2048, bootable" | sfdisk image
img_size=$(stat -c %s image)
offset=$((2048 * 512))
fs_size=$(((img_size - offset) / 1024))
fs_uuid=$(uuidgen)
mke2fs -F -t ext4 -d /sysroot -U $fs_uuid -E offset=$offset image $fs_size
grub-install image
qemu-img convert -O qcow2 image image.qcow2
I'm sure that won't quite work, but hopefully it gets you pointed in
the right direction.
--
Dan Nicholson | +1.206.437.0833 | Endless
On Wed, Mar 2, 2022 at 6:43 AM Barrett Strausser
<bstrausser locusrobotics com> wrote:
Thanks for both responses.
I think I am going to have to sit and invest the time to understand it more. The links and positive
feedback about approaches is helpful.
I do have a question about boot integration / boot integration testing that still isn't completely clear to
me.
The setup I have now is two virtual machines (ostree-build, ostree test). There are vagrant virtualbox
machines, both running ubuntu focal (that's my target in production)
I am building images, committing to repos and hosting the http server on ostree-build.
I am attempting to deploy on ostree-test.
On ostree-test, I appear to be do everything correctly but my deployment never "activates"
vagrant@ostree-test-1:~$ sudo ostree admin deploy upstream:os/ubuntu/x86/focal --sysroot=/sysroot
--os=ubuntu-focal
Copying /etc changes: 0 modified, 0 removed, 0 added
Bootloader updated; bootconfig swap: yes; deployment count change: 1
vagrant@ostree-test-1:~$ sudo ostree admin status --sysroot /sysroot
ubuntu-focal b079b283b79d0283aecf1391aba6f5900afbd5f39a89dbfc8313717db1e8487d.1
origin refspec: upstream:os/ubuntu/x86/focal
ubuntu-focal b079b283b79d0283aecf1391aba6f5900afbd5f39a89dbfc8313717db1e8487d.0
origin refspec: upstream:os/ubuntu/x86/focal
I have checked in /sysroot/boot/loader/entries and everything looks correct. What might I be missing?
My real questions are
On an existing mainstream distribution what is the result of running "ostree admin init-fs /sysroot". I get
that it creates the /sysroot, but are there other side-effects?
How does the /sysroot relate to /boot on the existing system. I think I might have a fundamental
misunderstanding of taking an existing system and turning it into an ostree managed one.
Thanks for the help
________________________________
From: Jonathan Lebon <jlebon redhat com>
Sent: Monday, February 28, 2022 9:34 AM
To: Barrett Strausser <bstrausser locusrobotics com>
Cc: ostree-list gnome org <ostree-list gnome org>
Subject: [EXTERNAL] - Re: Development Workflow
Hi Barrett,
On Sat, Feb 26, 2022 at 1:05 PM Barrett Strausser
<bstrausser locusrobotics com> wrote:
Hello All,
I am newly using OSTree, I'm able to create repos/make commits etc. However, I'm looking for input or
advice on best developer workflows after committing to a repo. Obviously, I can introduce hardware into
the loop but I'm looking for something more software oriented that could eventually be used in CI without
relying on bare-metal.
I recognize this is not purely an OSTree concern, but I figured the group would have good insights. At
the moment I'm trying to use some combination of qemu/libguestfs to create a test bed, but I'm wondering
what else folks are using. I am trying to work through the contents of
https://github.com/ostreedev/ostree/tree/main/tests to see what I can figure out as well.
For Fedora CoreOS and RHCOS at least, we indeed make heavy use of
qemu. Might be worth looking at the CI for the ostree repo,
specifically the `continuous-integration/jenkins/pr-merge` test. It
wraps https://github.com/coreos/coreos-assembler, which is a tool that
uses qemu for building and testing ostree-based OS images.
coreos-assembler is very opinionated of course, so might not be usable
as is to you. But if you're using OSTree for the OS, the main idea is
likely still applicable (pkgs/binaries -> OSTree commit -> OS images
-> QEMU tests).
CAUTION: This email originated from outside of the organization. Do not click links, open attachments or
respond unless you recognize the sender and know the content is safe.
_______________________________________________
ostree-list mailing list
ostree-list gnome org
https://mail.gnome.org/mailman/listinfo/ostree-list
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]