Skip to content

Commit

Permalink
Make c9s and rhel-9.4 variants be pure C9S/RHEL 9.4 content
Browse files Browse the repository at this point in the history
This is the second step now in this switcheroo dance (see previous
commit). We make the `c9s` and `rhel-9.4` variants contain only C9S/
RHEL 9.4 content and then make the `okd-c9s` and `ocp-rhel-9.4` variants
inherit from those and add the OCP-specific stuff.
  • Loading branch information
jlebon committed May 24, 2024
1 parent 2474419 commit 4e09d27
Show file tree
Hide file tree
Showing 8 changed files with 61 additions and 230 deletions.
7 changes: 5 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,16 @@ To support building both a RHEL-based and a CentOS Stream-based CoreOS, the
coreos-assembler concept of [variants] is used. The following variants are
supported:

- `rhel-9.4`: Clone of `ocp-rhel-9.4` for now.
- `rhel-9.4`: RHEL 9.4-based CoreOS; without OpenShift components.
- `ocp-rhel-9.4`: RHEL 9.4-based CoreOS; including OpenShift components.
- `c9s`: Clone of `okd-c9s` for now.
- `c9s`: CentOS Stream-based CoreOS, without OKD components.
- `okd-c9s`: CentOS Stream-based CoreOS, including OpenShift components. This
currently includes some packages from RHEL because not all packages required
by OpenShift are provided in CentOS Stream.

In the future, the `ocp-*` variants will be removed. Instead, OpenShift
components will be layered by deriving from the `rhel-9.4`/`c9s` images.

The default variant is `ocp-rhel-9.4`.

## Reporting issues
Expand Down
15 changes: 15 additions & 0 deletions common.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,21 @@ conditional-include:
documentation: false

postprocess:
# Mark the OS as of the CoreOS variant.
# XXX: should be part of a centos/redhat-release subpackage instead
- |
#!/usr/bin/bash
set -euo pipefail
cat >> /usr/lib/os-release <<EOF
VARIANT=CoreOS
VARIANT_ID=coreos
EOF
# And put "CoreOS" in NAME and PRETTY_NAME
sed -i -e 's/^NAME="\(.*\)"/NAME="\1 CoreOS"/' /usr/lib/os-release
. /usr/lib/os-release
sed -i -e "s/^PRETTY_NAME=.*/PRETTY_NAME=\"$NAME $VERSION\"/" /usr/lib/os-release
# TEMPORARY: Create /etc/vmware-tools/tools.conf to ensure RHCOS shows up properly in VMWare
# See https://jira.coreos.com/browse/RHCOS-258
- |
Expand Down
111 changes: 8 additions & 103 deletions manifest-c9s.yaml
Original file line number Diff line number Diff line change
@@ -1,123 +1,28 @@
# Manifest for CentOS Stream CoreOS (SCOS)
# Manifest for CentOS Stream CoreOS 9

rojig:
license: MIT
name: scos
summary: OKD 4
summary: CentOS Stream CoreOS 9

variables:
osversion: "c9s"

# Include manifests common to all RHEL and CentOS Stream versions and manifest
# common to RHEL 9 & C9S variants
# Include manifests common to all RHEL and CentOS Stream versions
include:
- common.yaml
- packages-openshift.yaml
- overrides-c9s.yaml

# Starting from here, everything should be specific to SCOS

# CentOS Stream 9 repos + internal repos for now
repos:
- c9s-baseos
- c9s-appstream
# CentOS Extras Common repo for SIG RPM GPG keys
- c9s-extras-common
# CentOS NFV SIG repo for openvswitch
- c9s-sig-nfv
# CentOS Cloud SIG repo for cri-o, cri-tools and conmon-rs
- c9s-sig-cloud-okd
# Include RHCOS 9 repo for oc, hyperkube
- rhel-9.4-server-ose-4.17

# We include hours/minutes to avoid version number reuse
automatic-version-prefix: "417.9.<date:%Y%m%d%H%M>"
# This ensures we're semver-compatible which OpenShift wants
automatic-version-suffix: "-"
# Keep this is sync with the version in postprocess
mutate-os-release: "4.17"

postprocess:
- |
#!/usr/bin/env bash
set -xeo pipefail

# Tweak /usr/lib/os-release
grep -v -e "OSTREE_VERSION" -e "OPENSHIFT_VERSION" /etc/os-release > /usr/lib/os-release.stream
(
. /etc/os-release
cat > /usr/lib/os-release <<EOF
NAME="${NAME} CoreOS"
ID="scos"
ID_LIKE="rhel fedora"
VERSION="${OSTREE_VERSION}"
VERSION_ID="${OPENSHIFT_VERSION}"
VARIANT="CoreOS"
VARIANT_ID=coreos
PLATFORM_ID="${PLATFORM_ID}"
PRETTY_NAME="${NAME} CoreOS ${OSTREE_VERSION}"
ANSI_COLOR="${ANSI_COLOR}"
CPE_NAME="${CPE_NAME}::coreos"
HOME_URL="${HOME_URL}"
DOCUMENTATION_URL="https://docs.okd.io/latest/welcome/index.html"
BUG_REPORT_URL="https://access.redhat.com/labs/rhir/"
REDHAT_BUGZILLA_PRODUCT="OpenShift Container Platform"
REDHAT_BUGZILLA_PRODUCT_VERSION="${OPENSHIFT_VERSION}"
REDHAT_SUPPORT_PRODUCT="OpenShift Container Platform"
REDHAT_SUPPORT_PRODUCT_VERSION="${OPENSHIFT_VERSION}"
OPENSHIFT_VERSION="${OPENSHIFT_VERSION}"
OSTREE_VERSION="${OSTREE_VERSION}"
EOF
)
rm -f /etc/os-release
ln -s ../usr/lib/os-release /etc/os-release
# Eventually we should try to build these images as part of the c9s composes.
# In that case, the versioning should instead be exactly the same as the pungi
# compose ID.
automatic-version-prefix: "9.<date:%Y%m%d%H%M>"

# Tweak /etc/system-release, /etc/system-release-cpe & /etc/redhat-release
(
. /etc/os-release
cat > /usr/lib/system-release-cpe <<EOF
${CPE_NAME}
EOF
cat > /usr/lib/system-release <<EOF
${NAME} release ${VERSION_ID}
EOF
rm -f /etc/system-release-cpe /etc/system-release /etc/redhat-release
ln -s /usr/lib/system-release-cpe /etc/system-release-cpe
ln -s /usr/lib/system-release /etc/system-release
ln -s /usr/lib/system-release /etc/redhat-release
)
mutate-os-release: "9"

# Tweak /usr/lib/issue
cat > /usr/lib/issue <<EOF
\S \S{VERSION_ID}
EOF
rm -f /etc/issue /etc/issue.net
ln -s /usr/lib/issue /etc/issue
ln -s /usr/lib/issue /etc/issue.net
# Packages that are only in SCOS and not in RHCOS or that have special
# constraints that do not apply to RHCOS
packages:
# We include the generic release package and tweak the os-release info in a
# post-proces script
- centos-stream-release
# RPM GPG keys for CentOS SIG repos
- centos-release-cloud-common
- centos-release-nfv-common
- centos-release-virt-common

# Packages pinned to specific repos in SCOS 9
repo-packages:
# We always want the kernel from BaseOS
- repo: c9s-baseos
packages:
- kernel
- repo: c9s-appstream
packages:
# We want the one shipping in C9S, not the equivalently versioned one in RHAOS
- nss-altfiles
# Use the new containers/toolbox
- toolbox
# The one shipping in C9S is temporarily lower versioned, so be explicit
# https://github.com/openshift/os/issues/1505
- containers-common
28 changes: 9 additions & 19 deletions manifest-ocp-rhel-9.4.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,23 @@
# Manifest for RHCOS based on RHEL 9.4
# Manifest for OCP node based on RHEL 9.4
# Note: this manifest is temporary; in the future, OCP components will be layered instead.

rojig:
license: MIT
name: rhcos
summary: OpenShift 4
summary: OpenShift 4.17

variables:
osversion: "rhel-9.4"

# Include manifests common to all RHEL and CentOS Stream versions and manifest
# common to RHEL 9 & C9S variants
include:
- common.yaml
- manifest-rhel-9.4.yaml
- packages-openshift.yaml

# Starting from here, everything should be specific to RHCOS based on RHEL 9.4 content

# Additional repos we need for OCP components
repos:
- rhel-9.4-baseos
- rhel-9.4-appstream
- rhel-9.4-fast-datapath
# Include RHCOS 9 repo for oc, kubelet
- rhel-9.4-server-ose-4.17

# We include hours/minutes to avoid version number reuse
Expand All @@ -40,15 +37,15 @@ postprocess:
(
. /etc/os-release
cat > /usr/lib/os-release <<EOF
NAME="${NAME} CoreOS"
NAME="${NAME}"
ID="rhcos"
ID_LIKE="rhel fedora"
VERSION="${OSTREE_VERSION}"
VERSION_ID="${OPENSHIFT_VERSION}"
VARIANT="CoreOS"
VARIANT_ID=coreos
VARIANT="${VARIANT}"
VARIANT_ID=${VARIANT_ID}
PLATFORM_ID="${PLATFORM_ID}"
PRETTY_NAME="${NAME} CoreOS ${OSTREE_VERSION}"
PRETTY_NAME="${NAME} ${OSTREE_VERSION}"
ANSI_COLOR="${ANSI_COLOR}"
CPE_NAME="${CPE_NAME}::coreos"
HOME_URL="${HOME_URL}"
Expand Down Expand Up @@ -89,13 +86,6 @@ postprocess:
ln -s /usr/lib/issue /etc/issue
ln -s /usr/lib/issue /etc/issue.net
# Packages that are only in RHCOS and not in SCOS or that have special
# constraints that do not apply to SCOS
packages:
# We include the generic release package and tweak the os-release info in a
# post-process script
- redhat-release

# Packages pinned to specific repos in RHCOS 9
repo-packages:
- repo: rhel-9.4-appstream
Expand Down
29 changes: 9 additions & 20 deletions manifest-okd-c9s.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,20 @@
# Manifest for CentOS Stream CoreOS (SCOS)
# Manifest for OKD node based on CentOS Stream CoreOS 9
# Note: this manifest is temporary; in the future, OKD components will be layered instead.

rojig:
license: MIT
name: scos
summary: OKD 4
summary: OKD 4.17

variables:
osversion: "c9s"

# Include manifests common to all RHEL and CentOS Stream versions and manifest
# common to RHEL 9 & C9S variants
include:
- common.yaml
- manifest-c9s.yaml
- packages-openshift.yaml
- overrides-c9s.yaml

# Starting from here, everything should be specific to SCOS

# CentOS Stream 9 repos + internal repos for now
# Additional repos we need for OKD components
repos:
- c9s-baseos
- c9s-appstream
# CentOS Extras Common repo for SIG RPM GPG keys
- c9s-extras-common
# CentOS NFV SIG repo for openvswitch
Expand All @@ -47,15 +41,15 @@ postprocess:
(
. /etc/os-release
cat > /usr/lib/os-release <<EOF
NAME="${NAME} CoreOS"
NAME="${NAME}"
ID="scos"
ID_LIKE="rhel fedora"
VERSION="${OSTREE_VERSION}"
VERSION_ID="${OPENSHIFT_VERSION}"
VARIANT="CoreOS"
VARIANT_ID=coreos
VARIANT="${VARIANT}"
VARIANT_ID=${VARIANT_ID}
PLATFORM_ID="${PLATFORM_ID}"
PRETTY_NAME="${NAME} CoreOS ${OSTREE_VERSION}"
PRETTY_NAME="${NAME} ${OSTREE_VERSION}"
ANSI_COLOR="${ANSI_COLOR}"
CPE_NAME="${CPE_NAME}::coreos"
HOME_URL="${HOME_URL}"
Expand Down Expand Up @@ -95,12 +89,7 @@ postprocess:
ln -s /usr/lib/issue /etc/issue
ln -s /usr/lib/issue /etc/issue.net
# Packages that are only in SCOS and not in RHCOS or that have special
# constraints that do not apply to RHCOS
packages:
# We include the generic release package and tweak the os-release info in a
# post-proces script
- centos-stream-release
# RPM GPG keys for CentOS SIG repos
- centos-release-cloud-common
- centos-release-nfv-common
Expand Down
Loading

0 comments on commit 4e09d27

Please sign in to comment.