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

Add "Build OKD-on-Fedora-CoreOS in Prow" proposal #78

Merged
merged 1 commit into from
Feb 11, 2021

Conversation

LorbusChris
Copy link
Member

@LorbusChris LorbusChris commented Oct 21, 2019

OKD is the OpenShift community distribution of Kubernetes.

As part of the version 4 effort, the OKD working group has decided to target Fedora CoreOS (FCOS) as the primary base operating system for OKD control plane and worker nodes.

This document contains a proposal to add missing FCOS support to key components (machine-config-operator and installer),
create OKD artifacts in OpenShift's Prow instance from the canonical OpenShift master and release branches alongside OCP CI artifacts,
and regularily create OKD release payloads from there.

Rendered

@openshift-ci-robot openshift-ci-robot added the size/M Denotes a PR that changes 30-99 lines, ignoring generated files. label Oct 21, 2019
@LorbusChris
Copy link
Member Author

I've updated the proposal to reflect the current status and the work left to get us to OKD 4 GA.

/cc @smarterclayton @miabbott @ashcrow @runcom @darkmuggle @vrutkovs @sdodson @crawford @abhinavdahiya @cgwalters


Support for an `fcos.json` to exist alongside `rhcos.json` for OS image references.

This could be enabled either via a build-time flag to produce seperate OKD installer artifacts, or an `fcos` or `okd` run-time flag to pass to the installer for it to provision Fedora CoreOS instead of RHEL CoreOS hosts (in that case it would default to contents of `rhcos.json`).
Copy link
Member

@vrutkovs vrutkovs May 19, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'd prefer the build-time flag, similar to libvirt approach:

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 from me. @abhinavdahiya, WDYT?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not rename rhcos.json to machine-os.json and make that the build time replacement instead?

Branches on “is okd” raise red flags for me - the imply OKD isn’t the same source.

The restriction to community operators can be handled dynamically in many cases (does the payload include the operator).

The pull secret is going to be relevant for some deployments no matter what - perhaps instead of making the check conditional we instead check whether the pull of the release image requires auth as a gate during pre validation (which has the side benefit of verifying the credentials)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bikeshed: bootimage.json

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why not rename rhcos.json to machine-os.json and make that the build time replacement instead?

Sounds good to me

Branches on “is okd” raise red flags for me - the imply OKD isn’t the same source.

We still need to branch on few options here - i.e. default SDN, Ignition v3 etc. IsOKD is not exposed externally, cannot be changed via config and being set on build time

The restriction to community operators can be handled dynamically in many cases (does the payload include the operator).

So instead of installer injecting operators we'd have to have a setting other operators would read?

we instead check whether the pull of the release image requires auth as a gate during pre validation

This check would happen in the installer, right?

@LorbusChris
Copy link
Member Author

Are there any blockers to this?

Copy link
Member

@vrutkovs vrutkovs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good, found few typos

enhancements/okd-on-fedora-coreos.md Outdated Show resolved Hide resolved
enhancements/okd-on-fedora-coreos.md Outdated Show resolved Hide resolved
enhancements/okd-on-fedora-coreos.md Outdated Show resolved Hide resolved
enhancements/okd-on-fedora-coreos.md Outdated Show resolved Hide resolved
enhancements/okd-on-fedora-coreos.md Outdated Show resolved Hide resolved
enhancements/okd-on-fedora-coreos.md Outdated Show resolved Hide resolved
@LorbusChris LorbusChris changed the title Add OKD-on-FCoS proposal Build OKD on Fedora CoreOS in Prow proposal Dec 17, 2020
@LorbusChris LorbusChris changed the title Build OKD on Fedora CoreOS in Prow proposal Add "Build OKD-on-Fedora-CoreOS in Prow" proposal Dec 21, 2020
@LorbusChris
Copy link
Member Author

@staebler I've added you to the reviewers from the Installer side.

Tl;dr the largest remaining piece of this is openshift/installer#4453.

@mjturek
Copy link

mjturek commented Jan 26, 2021

I'm interested in building for other architectures. I'm tasked with investigating OKD support for ppc64le.

After a conversation @vrutkovs and @LorbusChris, it seems the goal would be to do nightly builds of OKD on ppc64le in cadence with x86_64. This means we would need infrastructure where we could build these containers, and a release controller.

Can others weigh in on where we may be able to do this? Any input is welcome and appreciated!

@cgwalters
Copy link
Member

I think we'd want to ask either Fedora infra or CentOS infra about capacity for this - that's where the community ppc64le/s390x hardware is as far as I know.

@derekwaynecarr
Copy link
Member

the enhancement should be a statement of intent or direction, and so holding this out while the installer change is reviewed seems unnecessary. are there any further updates required, or we good to merge and iterate?

@LorbusChris
Copy link
Member Author

@derekwaynecarr I think this is good to merge.

Setting up OKD builds on alt arches is not part of this proposal, and can be done in a separate one if needed.

@russellb
Copy link
Member

russellb commented Feb 1, 2021

Merging based on the last comments from @derekwaynecarr and @LorbusChris

/approve
/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Feb 1, 2021
@openshift-ci-robot
Copy link

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: russellb, vrutkovs

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-robot openshift-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Feb 1, 2021
@vrutkovs
Copy link
Member

vrutkovs commented Feb 3, 2021

/refresh
/retest

@vrutkovs
Copy link
Member

vrutkovs commented Feb 3, 2021

/hold

Needs a few trailing spaces removed

@openshift-bot
Copy link

/retest

Please review the full test history for this PR and help us cut down flakes.

@openshift-ci-robot openshift-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Feb 3, 2021
@openshift-ci-robot openshift-ci-robot removed the lgtm Indicates that a PR is ready to be merged. label Feb 11, 2021
@LorbusChris
Copy link
Member Author

I've fixed the linter issues.

/hold cancel

@openshift-ci-robot openshift-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Feb 11, 2021
@russellb
Copy link
Member

/lgtm

@openshift-ci-robot openshift-ci-robot added the lgtm Indicates that a PR is ready to be merged. label Feb 11, 2021
@openshift-merge-robot openshift-merge-robot merged commit 99fc4b2 into openshift:master Feb 11, 2021
@darkmuggle
Copy link
Contributor

This enhancement was not approved and it's not implementable. Stakeholders (Installer, MCO, CoreOS, among others) have not agreed, nor have their reviews been obtained.

@russellb
Copy link
Member

This enhancement was not approved and it's not implementable. Stakeholders (Installer, MCO, CoreOS, among others) have not agreed, nor have their reviews been obtained.

This was merged primarily as a starting point to document the current reality (OKD does already exist ...) and make it easier to iterate on the doc. You should not interpret this as any big new decision. I've spoken with @vrutkovs about some updates needed here to better capture status and open questions and have asked him to tag you on the update.

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. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.
Projects
OKD4
  
In Progress
Development

Successfully merging this pull request may close these issues.

None yet