From d7ee2cf17c50d4cbb068eda8311fc5daa596fe98 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Fri, 12 Jan 2024 12:18:38 -0500 Subject: [PATCH] ci-operator/config: document RHCOS layering trick a bit more We've had people ask multiple times what those Dockerfiles are doing, so let's add some more docs there. --- ci-operator/config/cri-o/cri-o/cri-o-cri-o-main.yaml | 10 ++++++++-- .../kubernetes/openshift-kubernetes-master.yaml | 10 ++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/ci-operator/config/cri-o/cri-o/cri-o-cri-o-main.yaml b/ci-operator/config/cri-o/cri-o/cri-o-cri-o-main.yaml index c329ad44adaf8..8b153d42edecb 100644 --- a/ci-operator/config/cri-o/cri-o/cri-o-cri-o-main.yaml +++ b/ci-operator/config/cri-o/cri-o/cri-o-cri-o-main.yaml @@ -14,8 +14,14 @@ build_root: tag: golang-1.21 images: - dockerfile_literal: | - # This uses the new rhel-coreos-9 base image - # https://github.com/openshift/enhancements/blob/master/enhancements/ocp-coreos-layering/ocp-coreos-layering.md + # We want to test the PR using the code from it. Now, this repo ships RPMs + # which are normally part of RHCOS. We need to make sure that RHCOS itself + # is updated with the freshly built RPMs from the PR run. To do this, we do a + # multi-stage build: the first stage downloads the RPMs that were just built + # (the `base-machine-with-rpms` contains the RPMs), and the second stage + # installs the RPMs into RHCOS (this uses the fact that RHCOS is now a native + # bootable container). + # See also: https://github.com/openshift/enhancements/blob/master/enhancements/ocp-coreos-layering/ocp-coreos-layering.md FROM quay.io/centos/centos:stream9 as build # Sadly rpm-ostree in rhel8 right now doesn't support e.g. `rpm-ostree upgrade openshift-hyperkube` # in a container https://github.com/coreos/rpm-ostree/issues/4034 diff --git a/ci-operator/config/openshift/kubernetes/openshift-kubernetes-master.yaml b/ci-operator/config/openshift/kubernetes/openshift-kubernetes-master.yaml index 09d76d2dfcbd2..fbd7753ce1820 100644 --- a/ci-operator/config/openshift/kubernetes/openshift-kubernetes-master.yaml +++ b/ci-operator/config/openshift/kubernetes/openshift-kubernetes-master.yaml @@ -88,8 +88,14 @@ images: - registry.svc.ci.openshift.org/openshift/origin-v4.0:machine-os-content to: machine-os-content - dockerfile_literal: | - # This uses the new rhel-coreos base image - # https://github.com/openshift/enhancements/blob/master/enhancements/ocp-coreos-layering/ocp-coreos-layering.md + # We want to test the PR using the code from it. Now, this repo ships RPMs + # which are normally part of RHCOS. We need to make sure that RHCOS itself + # is updated with the freshly built RPMs from the PR run. To do this, we do a + # multi-stage build: the first stage downloads the RPMs that were just built + # (the `base-machine-with-rpms` contains the RPMs), and the second stage + # installs the RPMs into RHCOS (this uses the fact that RHCOS is now a native + # bootable container). + # See also: https://github.com/openshift/enhancements/blob/master/enhancements/ocp-coreos-layering/ocp-coreos-layering.md FROM quay.io/centos/centos:stream9 as build # Sadly rpm-ostree in rhel8 right now doesn't support e.g. `rpm-ostree upgrade openshift-hyperkube` # in a container https://github.com/coreos/rpm-ostree/issues/4034