Skip to content

WIP: build: Add support for "variants"#1459

Closed
cgwalters wants to merge 1 commit intocoreos:mainfrom
cgwalters:build-variants
Closed

WIP: build: Add support for "variants"#1459
cgwalters wants to merge 1 commit intocoreos:mainfrom
cgwalters:build-variants

Conversation

@cgwalters
Copy link
Copy Markdown
Member

My immediate goal here is to change
https://github.com/cgwalters/centos-coreos-stream-config
into something more like "openshift/coreos-config" that
can be built in multiple ways.

We'd have rhcos and cscos as "build variants". And
actually while we're here potentially rhbasecos which would
be "just stuff from RHEL".

Another use case for this is the "alternative desktops" for
Silverblue.

And yet another use case is something like a "debug" build
for FCOS where e.g. we swap in kernel-debug and potentially
turn on other userspace debugging too.

My immediate goal here is to change
https://github.com/cgwalters/centos-coreos-stream-config
into something more like "openshift/coreos-config" that
can be built in multiple ways.

We'd have `rhcos` and `cscos` as "build variants".  And
actually while we're here potentially `rhbasecos` which would
be "just stuff from RHEL".

Another use case for this is the "alternative desktops" for
Silverblue.

And yet another use case is something like a "debug" build
for FCOS where e.g. we swap in `kernel-debug` and potentially
turn on other userspace debugging too.
@openshift-ci-robot
Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cgwalters

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@cgwalters
Copy link
Copy Markdown
Member Author

And another use case: I've been thinking lately that it would simplify a whole bunch of things if for RHCOS we split up "bootimage build" and "oscontainer build'. Once the bootstrap node pivots then in fact I think we could have the bootimage just be RHEL - we keep kubelet and the other bits in the oscontainer. This would make OCP/RHCOS operate the same way OKD/FCOS does.

It'd also solve various "source of truth" problems where we push to both a registry and S3 - for the oscontainer the registry should be canonical.

@cgwalters
Copy link
Copy Markdown
Member Author

Once the bootstrap node pivots then in fact I think we could have the bootimage just be RHEL - we keep kubelet and the other bits in the oscontainer. This would make OCP/RHCOS operate the same way OKD/FCOS does.

(Though this conflicts somewhat with the live ISO containing kubelet, but there's no reason we can't do live layering eventually)

@cgwalters
Copy link
Copy Markdown
Member Author

Yet another obvious use case: rather than having e.g. git branches for e.g. rhel-8.1 and rhel-8.2, keep them in the same tree and make them build variants.

This gets into a whole interesting topic around the representation of the fedora-coreos-config branches and whether we should instead just use git master and have testing-devel/ and next/ etc. as subdirectories. Adding this feature doesn't require switching obviously, but it's at least interesting to think about. I am pretty sure it'll work well for RHCOS at least.

cgwalters added a commit to cgwalters/coreos-assembler that referenced this pull request May 22, 2020
Prep for variant builds:
coreos#1459

This way variant builds can simply use separate filenames rather
than redundantly specifying the name in the `rojig` section (which
was always awkward to start with).
cgwalters added a commit to cgwalters/coreos-assembler that referenced this pull request May 22, 2020
Prep for variant builds:
coreos#1459

This way variant builds can simply use separate filenames rather
than redundantly specifying the name in the `rojig` section (which
was always awkward to start with).
cgwalters added a commit to cgwalters/fedora-coreos-config that referenced this pull request May 22, 2020
coreos/coreos-assembler#1459 is
going to add support for more convenient multiple builds.

Here the `name` is derived simply from the name of the manifest file.
We use the summary for cloud uploads, so that moves to `image.yaml`.
@jlebon
Copy link
Copy Markdown
Member

jlebon commented May 25, 2020

And yet another use case is something like a "debug" build
for FCOS where e.g. we swap in kernel-debug and potentially
turn on other userspace debugging too.

Hmm, how would this work? rpm-ostree treefile merges extend lists, which means that e.g. to swap out kernel for kernel-debug would require changing the way we inherit things since it's part of bootable-rpm-ostree.yaml which is at the bottom of the inclusion tree.

cgwalters added a commit to cgwalters/openshift-coreos-config that referenced this pull request Jun 1, 2020
Until coreos/coreos-assembler#1459 or
something like that lands, let's have this repository default
to RHCOS sources.
@openshift-ci-robot
Copy link
Copy Markdown

@cgwalters: PR needs rebase.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

@openshift-ci
Copy link
Copy Markdown

openshift-ci Bot commented Feb 2, 2022

@cgwalters: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/images befd3b0 link true /test images
ci/prow/rhcos befd3b0 link true /test rhcos

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@travier
Copy link
Copy Markdown
Member

travier commented Jan 25, 2023

Closing this one as we have merged variant support in #2934

@travier travier closed this Jan 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants