Skip to content
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

MCO-280: extensions: Add container to serve repository with extensions #763

Merged
merged 1 commit into from
Jul 6, 2022

Conversation

jmarrero
Copy link
Member

@jmarrero jmarrero commented Mar 31, 2022

depends on: coreos/rpm-ostree#3562

This container will create a small service that will host the extensions rpms that we will be shipping. The idea is that this new container will be shipped alongside the machine-os and would provide a way for users layering extensions a way to do so without depending of connections outside of the cluster.

https://issues.redhat.com/browse/MCO-288

@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Mar 31, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Mar 31, 2022

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci openshift-ci bot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Mar 31, 2022
@cgwalters
Copy link
Member

Let's put all these files in an extensions/ subdirectory?

@jmarrero
Copy link
Member Author

jmarrero commented Apr 1, 2022

Let's put all these files in an extensions/ subdirectory?

That makes sense, I'll push that change today.

extensions/Dockerfile Outdated Show resolved Hide resolved
extensions/Dockerfile Show resolved Hide resolved
@cgwalters cgwalters changed the title extensions: Add container to serve repository with extensions MCO-280: extensions: Add container to serve repository with extensions Jun 13, 2022
@cgwalters
Copy link
Member

Cross-linking to https://issues.redhat.com/browse/MCO-288

I've been thinking about this one more, particularly in light of the discovery in coreos/coreos-assembler#2685 (comment)
Alongside that, a general problem we knew with Dockerfile approach here is that we're giving up on good "change detection".

I think combining those two facts pulls this back towards being something like cosa buildextend-extensions-container.

@jmarrero
Copy link
Member Author

Cross-linking to https://issues.redhat.com/browse/MCO-288

I've been thinking about this one more, particularly in light of the discovery in coreos/coreos-assembler#2685 (comment) Alongside that, a general problem we knew with Dockerfile approach here is that we're giving up on good "change detection".

I think combining those two facts pulls this back towards being something like cosa buildextend-extensions-container.

Closing this PR in favor of the above.

@jmarrero jmarrero closed this Jun 17, 2022
@cgwalters
Copy link
Member

Closing this PR in favor of the above.

Ideally though, we can reuse some or most of the code/approach here. We still need the webserver, etc. This was definitely not a lost effort!

I might have said we should keep the PR open as a reference and then rework it, but either way the code isn't lost.

Or alternatively...we could keep this all as is, but have a flow that updates meta.json after the "main" RHCOS build job. (Though, this gets into races unless we have a coordinator...needs some design)

@jmarrero
Copy link
Member Author

I understand that, but does it still make sense to have most of that code here? I would imagine we would want to move a good chunk of this to cosa?

@cgwalters
Copy link
Member

Joseph and I had a live chat about this. We're thinking we can:

  • Keep the code here
  • Add cosa buildextend-extensions-container that knows to build the Dockerfile in extensions/. This flow would either need to use the nested container stuff or (I think I like this better) do the build via KVM in the qemu image which we already have. Though this path will be implicitly testing podman.
  • This build must substitute the base RHCOS in Dockerfile to pull the base ostree container, and not from a registry.
  • This new extensions container needs to be appear in meta.json in the same way as the main one, see schema: Add entry for base-oscontainer coreos/coreos-assembler#2907. Probably change push-container to add cosa push-container --extensions or so?

@cgwalters cgwalters reopened this Jun 30, 2022
@cgwalters
Copy link
Member

Let's keep this open since I think we can likely reuse 95% of this work!

@jmarrero jmarrero force-pushed the machine-os-extensions branch 2 times, most recently from 574e822 to 6d274b8 Compare July 5, 2022 21:02
@jmarrero jmarrero marked this pull request as ready for review July 5, 2022 21:03
@openshift-ci openshift-ci bot removed the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Jul 5, 2022
@jmarrero
Copy link
Member Author

jmarrero commented Jul 5, 2022

This depends on coreos/rpm-ostree#3819

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jul 6, 2022
@openshift-ci openshift-ci bot removed the lgtm Indicates that a PR is ready to be merged. label Jul 6, 2022
@cgwalters
Copy link
Member

/lgtm

@openshift-ci openshift-ci bot added the lgtm Indicates that a PR is ready to be merged. label Jul 6, 2022
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jul 6, 2022

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cgwalters, jmarrero

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

The pull request process is described here

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

@openshift-ci
Copy link
Contributor

openshift-ci bot commented Jul 6, 2022

@jmarrero: all tests passed!

Full PR test history. Your PR dashboard.

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.

@openshift-ci openshift-ci bot merged commit 0db9ead into openshift:master Jul 6, 2022
jkyros added a commit to jkyros/machine-config-operator that referenced this pull request Jul 21, 2022
controllerconfig

The extensions for our layered/bootable `rhel-coreos` images are no
longer going to be contained within the image themselves. They will be a
separate container. See: openshift/os#763

This makes sure that, if present, the new extensions image gets pushed
through to controllerconfig and is available when merging
machineconfigs.
jkyros added a commit to jkyros/machine-config-operator that referenced this pull request Jul 21, 2022
controllerconfig

The extensions for our layered/bootable `rhel-coreos` images are no
longer going to be contained within the image themselves. They will be a
separate container. See: openshift/os#763

This makes sure that, if present, the new extensions image gets pushed
through to controllerconfig and is available when merging
machineconfigs.
jkyros added a commit to jkyros/machine-config-operator that referenced this pull request Jul 21, 2022
controllerconfig

The extensions for our layered/bootable `rhel-coreos` images are no
longer going to be contained within the image themselves. They will be a
separate container. See: openshift/os#763

This makes sure that, if present, the new extensions image gets pushed
through to controllerconfig and is available when merging
machineconfigs.
jkyros added a commit to jkyros/machine-config-operator that referenced this pull request Aug 11, 2022
controllerconfig

The extensions for our layered/bootable `rhel-coreos` images are no
longer going to be contained within the image themselves. They will be a
separate container. See: openshift/os#763

This makes sure that, if present, the new extensions image gets pushed
through to controllerconfig and is available when merging
machineconfigs.
jkyros added a commit to jkyros/machine-config-operator that referenced this pull request Aug 15, 2022
controllerconfig

The extensions for our layered/bootable `rhel-coreos` images are no
longer going to be contained within the image themselves. They will be a
separate container. See: openshift/os#763

This makes sure that, if present, the new extensions image gets pushed
through to controllerconfig and is available when merging
machineconfigs.
jkyros added a commit to jkyros/machine-config-operator that referenced this pull request Aug 15, 2022
The extensions for our layered/bootable `rhel-coreos` images are no
longer going to be contained within the image themselves. They will be a
separate container. See: openshift/os#763

This makes sure that, if present, the new extensions image gets pushed
through to controllerconfig and is available when merging
machineconfigs.
jkyros added a commit to jkyros/machine-config-operator that referenced this pull request Aug 30, 2022
For OCP layering, we're changing the way the extensions are retrieved --
they are present in their own separate container, intended to be run as
a service that serves up the RPM repo (see
openshift/os#763) for details.

This adds manifests for that extensions container deployment and the
service that will allow the nodes to connect to it.
jkyros added a commit to jkyros/machine-config-operator that referenced this pull request Aug 30, 2022
For OCP layering, we're changing the way the extensions are retrieved --
they are present in their own separate container, intended to be run as
a service that serves up the RPM repo (see
openshift/os#763) for details.

This adds manifests for that extensions container deployment and the
service that will allow the nodes to connect to it.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. lgtm Indicates that a PR is ready to be merged.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants