Skip to content

Commit

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

# OKD-on-Fedora-CoreOS

## 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]

## Open Questions [optional]

1. This proposal potentially requires addition of non-Koji-built RPMs from OpenShift's Prow CI instance to Fedora CoreOS composes. Can we do this? If yes, how do we do this?
2. What is the specific list of operators that will go into OKD-on-FCoS?

Please see the Graduation Criteria section for more context on both open questions.

## Summary

A proposal to create components of an OKD variant that runs atop Fedora CoreOS and to use OpenShift's Prow instance to do so.

As part of the version 4 effort, the OKD working group has agreed to target Fedora CoreOS (FCoS) as the primary base operating system for builds of version 4 of the OKD Community Distribution that is powered by the OpenShift codebase.

This document proposes to incrementally add Prow CI jobs to create Fedora-based artifacts for use in OKD version 4.

## Motivation

Delivering continuous builds of version 4 of OKD, based on Fedora CoreOS.

### Goals

The broader goal is to create automated builds of all components needed for the OKD-on-FCoS effort, with a preference on running RPM build jobs in Fedora containers, and exclusively using RPMs from official Fedora repositories for Fedora CoreOS composes. Container artifacts from UBI based CI builds for OCP may be re-used, however artifacts that come from RHEL container based builds may not be re-used to build OKD.

### Non-Goals

The migration to Ignition Spec v3 is not part of this proposal.

## Proposal

In order to create automated builds of OKD-on-FCoS, OpenShift's Prow instance shall be used to run jobs to build all required components/artifacts in Fedora containers. The definitions of these jobs will live side by side with the already existing definitions for OCP jobs in the `openshift/release` repository, on the respective operators' repos. Operators that will not go into OKD can be disregarded from this effort.

### Graduation Criteria

Specifically, success of this proposal will be measured by the following:
- RPMs that are dependencies of OpenShift's codebase in the base OS are built continuously in a Fedora environment: `cri-o`, `openshift-hyperkube`, `openshift-clients`, `machine-config-daemon`
- **Open Question**: How are builds promoted from Prow CI to FCoS release composes?
- Possible alternative to Prow promotion: Automated Fedora Koji RPM builds with packit-service CI (would need implementation work)
- Fedora CoreOS composes that contain up-to-date versions of the aforementioned dependencies are built continuously.
- Fedora RPM based `machine-os-content` containers are built continuously, with promotion gating for each minor version release stream.
- All Operators that are part of OKD-on-FCoS are continuously available as either Fedora or UBI-based container images.
- **Open Question**: What is the specific list of operators that will go into OKD-on-FCoS?

## Infrastructure Needed [optional]

- Prow CI compute
- Storage and/or registries for CI artifacts (RPMs, machine-os-content containers, and operator containers)

0 comments on commit 185951a

Please sign in to comment.