Skip to content

Commit

Permalink
Add "Build OKD-on-FCOS in Prow" proposal
Browse files Browse the repository at this point in the history
  • Loading branch information
LorbusChris committed Dec 21, 2020
1 parent 5029985 commit 175dc17
Showing 1 changed file with 90 additions and 0 deletions.
90 changes: 90 additions & 0 deletions enhancements/okd-on-fedora-coreos-in-prow.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
---
title: Build OKD-on-Fedora-CoreOS in Prow
authors:
- "@LorbusChris"
reviewers:
- "@abhinavdahiya"
- "@ashcrow"
- "@cgwalters"
- "@crawford"
- "@darkmuggle"
- "@miabbott"
- "@runcom"
- "@sdodson"
- "@smarterclayton"
- "@staebler"
- "@vrutkovs"
approvers:
creation-date: 2019-10-21
last-updated: 2020-12-17
status: provisional|implementable|implemented|deferred|rejected|withdrawn|replaced
see-also:
replaces:
superseded-by:
---

# Build OKD-on-Fedora-CoreOS in Prow

## Release Signoff Checklist

- [ ] Enhancement is `implementable`
- [ ] Design details are appropriately documented from clear requirements
- [ ] Test plan is defined
- [ ] Graduation criteria for dev preview, tech preview, GA
- [ ] User-facing documentation is created in [openshift/docs]

## Summary

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,
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.

## Motivation

The OKD Working Group wants to deliver a community variant of OpenShift on top of Fedora CoreOS
that is released off of the latest OpenShift stable release branch in a rolling manner,
and provides the ability to update. An update release payload for OKD encapsulates a new release of the underlying operating system
as well as new releases of the cluster components.

### Goals

The goals are to achieve OKD 4 builds in Prow, based on Fedora CoreOS and the current OpenShift codebase, and promotion of rolling releases from there,
as well as facilitation of community participation, adoption, feedback and knowledge sharing.

### Non-Goals

This enhancement does not concern itself with the releases of optional operators for OKD via OperatorHub.

## Proposal

This is a proposal to:
- Build OKD artifacts in OpenShift's Prow instance from the canonical OpenShift master branch and at least the latest release branch for continuous testing.
- Release OKD payloads built in and promoted from Prow from the latest release branch regularly, i.e. every 2 weeks.
- Support Fedora CoreOS as base OS in key OpenShift componentes (`machine-config-operator` and `installer`) so OKD releases can be made without requiring forked codebases.
- Provide easy-to-access ways for community members to participate:
- by providing a repository with bug report templates
- by encouraging and directing community contributors to send patches and bug fixes directly to the upstream OpenShift codebase
- create documentation and share knowledge about OKD

### Graduation Criteria

- [x] [OKD repository](https://github.com/openshift/okd/) exists for community issue and bug triage, and development tracking.
- [x] The UBI-based container images for all components in the release payload are shared between OKD and OCP for testing in Prow (with a few exceptions, see below)
- [x] OKD build and release jobs are added to `openshift/release`
- [x] Fedora RPM- and FCOS ostree-based `machine-os-content` container images are built continuously from the [`openshift/okd-machine-os`](https://github.com/openshift/okd-machine-os/) repository, with promotion gating for each minor version release stream.
- [x] Mirror OKD release payloads from the internal registry to quay.io
- [x] Support and end-to-end CI testing is added for running `machine-config-operator`, and the `machine-config-daemon` on FCOS-based OKD clusters.
- [x] `machine-config-operator` sources do not require a fork to be built for OKD
- [x] Support and end-to-end CI testing is added for building OKD installer binaries
- [ ] `openshift-install` sources do not require a fork to be built for OKD: ([Pull Request](https://github.com/openshift/installer/pull/4453))
- [x] All container images that are part of `cluster-samples` and `marketplace` operators are continuously available as either Fedora, CentOS or UBI-based container images.
- [ ] All container images that are part of `baremetal-operator` are continuously available as either Fedora, CentOS or UBI-based container images. ([okd#197](https://github.com/openshift/okd/issues/197), [ironic-image#123](https://github.com/openshift/ironic-image/pull/123), [ironic-ipa-downloader#56](https://github.com/openshift/ironic-image/pull/123))

## Infrastructure Needed [optional]

- Limited Prow CI compute on all platforms for end-to-end testing
- Storage and/or registries for CI artifacts (RPMs, machine-os-content containers, and operator containers)

0 comments on commit 175dc17

Please sign in to comment.