-
Notifications
You must be signed in to change notification settings - Fork 109
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
stages/ostree.deploy.container: allow deploying from container #1402
stages/ostree.deploy.container: allow deploying from container #1402
Conversation
Marking as draft since this builds on top of #1399 (IOW only review the last two commits). |
43fb6c6
to
290de7c
Compare
defb5bf
to
ae894fa
Compare
One thing we will lose vs current FCOS-and-derivatives is https://github.com/coreos/fedora-coreos-tracker/blob/main/internals/README-internals.md#aleph-version right? We are actually planning potentially grow at least test-level dependencies on this for OCP as part of bootimage update work. (A while ago I did openshift/machine-config-operator#2994 which is currently just informative) I think we'll just have to keep this in mind? But maybe it would make sense to have an aleph stage. Incidentally, bootc has its own aleph which has less stuff basically for the same reason as here - the input is a container image. |
Indeed. I would look at this PR as the start. There's a whole host of other things that need to be tidied up or added (one example is a bootupd stage) that will get unlocked after this merges. |
Not to go too far off but...as I've been thinking about things here I would like to consider that we add a (If for example I want to change the default for my OS installs from xfs to ext4 or so, that'd just be flipping https://github.com/containers/bootc/blob/c9f224cbb2d3fc3040410125c234c30e8b322cb9/lib/src/install/00-defaults.toml#L3 in a drop-in in my container build) The reason I mention this is because |
I'd like to keep the scope of this to be small if we can and focus on the EPIC we're currently working on. Maybe open an issue to this for the next EPIC in this OSBuild series? |
Yeah this merged! #1399 Ref #1402 (comment) Is there anything we can do to test or move this forward? Happy to help! |
ae894fa
to
f742e5e
Compare
Did a new upload here with some fixes and rebased on top of latest main branch. I don't know if we want the last commit in this patchset to merge in (cc @achilleas-k). |
f742e5e
to
89e893f
Compare
Looking at the stage in its final form here I'm starting to wonder if it would be a better idea to split it into a separate one |
@dustymabe had a chat with some people from the team and we've agreed that it makes more sense in terms of osbuild's design for this to be a separate stage. Like I mentioned yesterday:
Also, as a correction to my previous comment, the name for the new stage should be |
Sound good @achilleas-k, we'll try to accommodate. |
89e893f
to
961d070
Compare
OK. We added a new push here that creates a new |
961d070
to
1e8776a
Compare
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.
This is great. It's much easier to read and understand the stage now that it's its own thing.
I have a couple of inline comments but also one more general one: since the org.osbuild.ostree.deploy
stage isn't affected by this PR, can you revert the changes to it to avoid any confusion?
I'd also like the git history to be cleaned up to only have the introduction of the new stage and tests.
Thanks!
My preference is that we keep the changes to the I honestly prefer keeping the code in a single stage, but if we have to break them out preserving this diff-able ability I think makes it easier to manage. WDYT?
Yes. We can simplify things here. The reason we didn't squash to begin with: I was thinking maybe we keep the git history around in case we change our minds in the future and want the |
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
A new image functions called coreosImage() that requires a container source and creates a qcow2 image from a CoreOS ostree container. Based on the example manifest added in osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
A new image functions called coreosImage() that requires a container source and creates a qcow2 image from a CoreOS ostree container. Based on the example manifest added in osbuild/osbuild#1402
So testing this via a Silverblue Asahi Remix I'm working on, it fails at this point:
it's probably more correct to report this in the ostree space, but just leaving it here for awareness. |
(BTW, I would just use |
Thanks I'll try that. |
A new image functions called coreosImage() that requires a container source and creates a qcow2 image from a CoreOS ostree container. Based on the example manifest added in osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
A new image functions called coreosImage() that requires a container source and creates a qcow2 image from a CoreOS ostree container. Based on the example manifest added in osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
A new image functions called coreosImage() that requires a container source and creates a qcow2 image from a CoreOS ostree container. Based on the example manifest added in osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
A new image functions called coreosImage() that requires a container source and creates a qcow2 image from a CoreOS ostree container. Based on the example manifest added in osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. Also added tests for the validators for options and inputs. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. Also added tests for the validators for options and inputs. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. Also added tests for the validators for options and inputs. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. Also added tests for the validators for options and inputs. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. Also added tests for the validators for options and inputs. See osbuild/osbuild#1402
Creates an org.osbuild.ostree.deploy.container stage. Validates the options with a regular expression that matches the schema. Takes a container as input. Validates the length of the input references to be exactly 1. See osbuild/osbuild#1402
A new image functions called coreosImage() that requires a container source and creates a qcow2 image from a CoreOS ostree container. Based on the example manifest added in osbuild/osbuild#1402
The ostree.deploy stage now accepts either a ostree input:
or a containers input:
In the containers input case we will run
ostree container image deploy
wheras for ostree commits input we will continue to executeostree admin deploy
.Co-authored-by: Dusty Mabe dusty@dustymabe.com and Luke Yang @lukewarmtemp