From a4b7484865439521e9bd62b5789fbfc91fa2df22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Thu, 9 Jun 2022 12:25:49 +0200 Subject: [PATCH 01/13] manifests: Split into common & RHEL 8.6 specific manifests --- manifest.yaml => common.yaml | 172 +----------------- extensions.yaml => rhel-8.6/extensions.yaml | 0 rhel-8.6/fedora-coreos-config | 1 + rhel-8.6/image.yaml | 1 + rhel-8.6/live | 1 + rhel-8.6/manifest.yaml | 187 ++++++++++++++++++++ rhel-8.6/overlay.d | 1 + 7 files changed, 194 insertions(+), 169 deletions(-) rename manifest.yaml => common.yaml (59%) rename extensions.yaml => rhel-8.6/extensions.yaml (100%) create mode 120000 rhel-8.6/fedora-coreos-config create mode 120000 rhel-8.6/image.yaml create mode 120000 rhel-8.6/live create mode 100644 rhel-8.6/manifest.yaml create mode 120000 rhel-8.6/overlay.d diff --git a/manifest.yaml b/common.yaml similarity index 59% rename from manifest.yaml rename to common.yaml index fa78aa8e1..ca7ebaa19 100644 --- a/manifest.yaml +++ b/common.yaml @@ -1,8 +1,3 @@ -rojig: - license: MIT - name: rhcos - summary: OpenShift 4 - # We inherit from Fedora CoreOS' base configuration include: - fedora-coreos-config/manifests/ignition-and-ostree.yaml @@ -14,16 +9,15 @@ include: # RHCOS owned packages - rhcos-packages.yaml +# Layers common to all versions of RHCOS and SCOS ostree-layers: - overlay/01fcos - overlay/02fcos-nouveau - overlay/05rhcos - overlay/06gcp-routes - - overlay/15rhcos-logrotate - overlay/15rhcos-tuned-bits - overlay/20platform-chrony - overlay/21dhcp-chrony - - overlay/25rhcos-azure-udev arch-include: x86_64: @@ -34,24 +28,6 @@ arch-include: - fedora-coreos-config/manifests/grub2-removals.yaml - fedora-coreos-config/manifests/bootupd.yaml -# See README.md -# and https://github.com/openshift/release/blob/master/core-services/release-controller/README.md#rpm-mirrors -repos: - - rhel-8-baseos - - rhel-8-appstream - - rhel-8-fast-datapath - - rhel-8-server-ose - -# https://bugzilla.redhat.com/show_bug.cgi?id=1938928 -rpmdb: bdb - -# We include hours/minutes to avoid version number reuse -automatic-version-prefix: "411.86." -# 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.11" - documentation: false initramfs-args: - "--no-hostonly" @@ -110,94 +86,6 @@ postprocess: # We're not using resolved yet rm -f /usr/lib/systemd/system/systemd-resolved.service - - # Enable tmp-on-tmpfs by default because we don't want to have things - # leak across reboots, it increases alignment with FCOS, and also fixes - # the Live ISO. First, verify that RHEL is still disabling. - grep -q '# RHEL-only: Disable /tmp on tmpfs' /usr/lib/systemd/system/basic.target - echo '# RHCOS-only: we follow the Fedora/upstream default' >> /usr/lib/systemd/system/basic.target - echo 'Wants=tmp.mount' >> /usr/lib/systemd/system/basic.target - - | - #!/usr/bin/env bash - set -xeo pipefail - - # Ensure that /etc/issue.d exists for console-login-helper-messages - # This can be removed once we rebase to RHEL 9 - install -d -m 0755 /etc/issue.d - - | - #!/usr/bin/env bash - set -xeo pipefail - - # Tweak /usr/lib/os-release - grep -v "OSTREE_VERSION" /etc/os-release > /usr/lib/os-release.rhel - OCP_RELEASE="4.11" - ( - . /etc/os-release - cat > /usr/lib/os-release < /usr/lib/system-release-cpe < /usr/lib/system-release < /usr/lib/issue < /etc/motd <= 15-1.el8' 'clevis-luks >= 15-1.el8' 'clevis-dracut >= 15-1.el8'" - - cryptsetup-reencrypt tpm2-tools + - clevis clevis-luks clevis-dracut + - tpm2-tools # Used to update PAM configuration to work with SSSD # https://bugzilla.redhat.com/show_bug.cgi?id=1774154 - authselect @@ -346,38 +214,6 @@ packages: # Upstream PR https://github.com/coreos/fedora-coreos-config/pull/786 - WALinuxAgent-udev -repo-packages: - # we always want the kernel from BaseOS - - repo: rhel-8-baseos - packages: - - kernel - # we want the one shipping in RHEL, not the equivalently versioned one in RHAOS - - repo: rhel-8-appstream - packages: - - nss-altfiles - - repo: rhel-8-server-ose - packages: - # Starting with 4.11, we are working with the Containers team to build - # certain container-tools RPMs in the RHAOS branches for RHCOS + RHEL - # worker nodes. - - conmon - - container-selinux - - containernetworking-plugins - - containers-common - - criu - - crun - - fuse-overlayfs - - podman - - runc - - skopeo - - slirp4netns - - toolbox - -modules: - enable: - # qemu-guest-agent - - virt:rhel - packages-x86_64: # Temporary add of open-vm-tools. Should be removed when containerized - open-vm-tools @@ -388,7 +224,6 @@ packages-x86_64: # rdma-core cleanly covers some key bare metal use cases - rdma-core - packages-ppc64le: - irqbalance - librtas @@ -396,7 +231,6 @@ packages-ppc64le: - ppc64-diag-rtas - rdma-core - remove-from-packages: - - filesystem - "/usr/share/backgrounds" diff --git a/extensions.yaml b/rhel-8.6/extensions.yaml similarity index 100% rename from extensions.yaml rename to rhel-8.6/extensions.yaml diff --git a/rhel-8.6/fedora-coreos-config b/rhel-8.6/fedora-coreos-config new file mode 120000 index 000000000..3ce9ade12 --- /dev/null +++ b/rhel-8.6/fedora-coreos-config @@ -0,0 +1 @@ +../fedora-coreos-config \ No newline at end of file diff --git a/rhel-8.6/image.yaml b/rhel-8.6/image.yaml new file mode 120000 index 000000000..73c5b0318 --- /dev/null +++ b/rhel-8.6/image.yaml @@ -0,0 +1 @@ +../image.yaml \ No newline at end of file diff --git a/rhel-8.6/live b/rhel-8.6/live new file mode 120000 index 000000000..6fd56fbe5 --- /dev/null +++ b/rhel-8.6/live @@ -0,0 +1 @@ +../live \ No newline at end of file diff --git a/rhel-8.6/manifest.yaml b/rhel-8.6/manifest.yaml new file mode 100644 index 000000000..bcae242f8 --- /dev/null +++ b/rhel-8.6/manifest.yaml @@ -0,0 +1,187 @@ +# Manifest for RHCOS based on RHEL 8.6 + +rojig: + license: MIT + name: rhcos + summary: OpenShift 4 + +variables: + distro: "rhel" + version: "8.6" + +# Include manifests common to all RHEL and CentOS Stream versions +include: + - ../common.yaml + +# Starting from here, everything should be specific to RHCOS based on RHEL 8.6 + +ostree-layers: + # Temporary logrotate service and timer units + - overlay/15rhcos-logrotate + - overlay/25rhcos-azure-udev + +# See README.md +# and https://github.com/openshift/release/blob/master/core-services/release-controller/README.md#rpm-mirrors +repos: + - rhel-8-baseos + - rhel-8-appstream + - rhel-8-fast-datapath + - rhel-8-server-ose + +# https://bugzilla.redhat.com/show_bug.cgi?id=1938928 +rpmdb: bdb + +# We include hours/minutes to avoid version number reuse +automatic-version-prefix: "412.86." +# 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.12" + +postprocess: + - | + #!/usr/bin/env bash + set -xeo pipefail + + # Tweak /usr/lib/os-release + grep -v "OSTREE_VERSION" /etc/os-release > /usr/lib/os-release.rhel + OCP_RELEASE="4.12" + ( + . /etc/os-release + cat > /usr/lib/os-release < /usr/lib/system-release-cpe < /usr/lib/system-release < /usr/lib/issue < /etc/motd <> /usr/lib/systemd/system/basic.target + echo 'Wants=tmp.mount' >> /usr/lib/systemd/system/basic.target + # Stop shipping a baked initiator name in the image; this should be generated + # at runtime. We have a service which does this + # (coreos-generate-iscsi-initiatorname.service) until it's done properly + # upstream (see https://bugzilla.redhat.com/show_bug.cgi?id=1493296). + - | + #!/usr/bin/env bash + set -xeuo pipefail + + # NB: we don't use -f here so we break when this is no longer needed + rm -v /etc/iscsi/initiatorname.iscsi + +# 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-proces script + - redhat-release + # RHEL7 compatibility + - compat-openssl10 + # SCOS package name does not include a version number + - openvswitch2.17 + +# Packages pinned to specific repos in RHCOS +repo-packages: + # we always want the kernel from BaseOS + - repo: rhel-8-baseos + packages: + - kernel + # we want the one shipping in RHEL, not the equivalently versioned one in RHAOS + - repo: rhel-8-appstream + packages: + - nss-altfiles + - repo: rhel-8-server-ose + packages: + # Starting with 4.11, we are working with the Containers team to build + # certain container-tools RPMs in the RHAOS branches for RHCOS + RHEL + # worker nodes. + - conmon + - container-selinux + - containernetworking-plugins + - containers-common + - criu + - crun + - fuse-overlayfs + - podman + - runc + - skopeo + - slirp4netns + - toolbox + +modules: + enable: + # qemu-guest-agent + - virt:rhel diff --git a/rhel-8.6/overlay.d b/rhel-8.6/overlay.d new file mode 120000 index 000000000..ac61c8821 --- /dev/null +++ b/rhel-8.6/overlay.d @@ -0,0 +1 @@ +../overlay.d/ \ No newline at end of file From 35cb8c1cb92b87a94ce5f06b224d6bc31c6a6ed0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Thu, 9 Jun 2022 12:27:28 +0200 Subject: [PATCH 02/13] Keep RHEL 8.6 based RHCOS as the default --- extensions.yaml | 1 + manifest.yaml | 3 +++ 2 files changed, 4 insertions(+) create mode 120000 extensions.yaml create mode 100644 manifest.yaml diff --git a/extensions.yaml b/extensions.yaml new file mode 120000 index 000000000..df0dd1aa6 --- /dev/null +++ b/extensions.yaml @@ -0,0 +1 @@ +rhel-8.6/extensions.yaml \ No newline at end of file diff --git a/manifest.yaml b/manifest.yaml new file mode 100644 index 000000000..63836df40 --- /dev/null +++ b/manifest.yaml @@ -0,0 +1,3 @@ +# Default RHEL version used to build RHCOS +include: + - rhel-8.6/manifest.yaml From ac52b3dc0e7e3e8ec67bea7a5f92e8f3be64d252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Fri, 10 Jun 2022 17:46:25 +0200 Subject: [PATCH 03/13] ci: Regroup tests in qemu & metal buckets - Only build the ostree aci container archive in the build step as it's the only artifact used for the layering test. - Group the remaining tests in two buckets: qemu & metal. - Disable the now uneeded tests. --- ci/prow-entrypoint.sh | 52 ++++++++++++++++--------------------------- 1 file changed, 19 insertions(+), 33 deletions(-) diff --git a/ci/prow-entrypoint.sh b/ci/prow-entrypoint.sh index c81d07523..eaee6d8f7 100755 --- a/ci/prow-entrypoint.sh +++ b/ci/prow-entrypoint.sh @@ -42,9 +42,11 @@ cosa_init() { cosa init --transient "${tmp_src}/os" } -# Do a cosa build & cosa build-extensions only +# Do a cosa build & cosa build-extensions only. # This is called both as part of the build phase and test phase in Prow thus we # can not do any kola testing in this function. +# We do not build the QEMU image here as we don't need it in the pure container +# test case. cosa_build() { # Grab the raw value of `mutate-os-release` and use sed to convert the value # to X-Y format @@ -61,32 +63,28 @@ cosa_build() { ls -alh "src/config/" curl -L "http://base-${ocpver_mut}-rhel${rhelver}.ocp.svc.cluster.local" -o "src/config/ocp.repo" - # Build RHCOS & extensions + # Fetch packages cosa fetch - cosa build + # Only build the ostree image by default + cosa build ostree + # Build extensions cosa buildextend-extensions } -# Make sure the image is at least booting before runnning expensive tests -kola_test_basic() { - cosa kola run basic -} - -kola_test_basic_scenarios() { +# Build QEMU image and run all kola tests +kola_test_qemu() { + cosa buildextend-qemu cosa kola --basic-qemu-scenarios -} - -kola_test_upgrade() { kola run-upgrade -b rhcos -v --find-parent-image --qemu-image-dir tmp/ --output-dir tmp/kola-upgrade -} - -kola_test_run() { cosa kola run --parallel 2 } +# Build metal, metal4k & live images and run kola tests kola_test_metal() { # Build metal + installer now so we can test them - cosa buildextend-metal && cosa buildextend-metal4k && cosa buildextend-live + cosa buildextend-metal + cosa buildextend-metal4k + cosa buildextend-live # Compress the metal and metal4k images now so we're testing # installs with the image format we ship @@ -158,30 +156,18 @@ main () { setup_user cosa_init cosa_build - kola_test_basic - kola_test_basic_scenarios + kola_test_qemu ;; "build-test-qemu-kola-all") setup_user cosa_init cosa_build - kola_test_basic - kola_test_run - ;; - "build-test-qemu-kola-upgrade") - setup_user - cosa_init - cosa_build - kola_test_basic - kola_test_upgrade - ;; - "build-test-qemu-kola-metal") - setup_user - cosa_init - cosa_build - kola_test_basic kola_test_metal ;; + "build-test-qemu-kola-upgrade" | "build-test-qemu-kola-metal") + echo "Disabled tests" + exit 0 + ;; *) echo "Unknown test name" exit 1 From 3b25f8186e89890aea7540ceb5919cc5be690e0c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Fri, 10 Jun 2022 17:48:27 +0200 Subject: [PATCH 04/13] ci: Make RHEL version explicit Prepare for testing multiple RHEL versions. --- ci/prow-entrypoint.sh | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/ci/prow-entrypoint.sh b/ci/prow-entrypoint.sh index eaee6d8f7..60e6102fa 100755 --- a/ci/prow-entrypoint.sh +++ b/ci/prow-entrypoint.sh @@ -6,6 +6,9 @@ set -xeuo pipefail # Global variables REDIRECTOR_URL="https://rhcos-redirector.apps.art.xq1c.p1.openshiftapps.com/art/storage/releases/" +# Default version of RHEL used to build RHCOS +RHELVER="rhel-8.6" + # This function is used to update the /etc/passwd file within the COSA container # at test-time. The need for this comes from the fact that OpenShift will run a # container with a randomized user ID by default to enhance security. Because @@ -28,6 +31,8 @@ setup_user() { whoami } +# Setup a new build directory with COSA init, selecting the version of RHEL or +# CentOS Stream that we want as a basis for RHCOS/SCOS. cosa_init() { # Always create a writable copy of the source repo tmp_src="$(mktemp -d)" @@ -39,7 +44,7 @@ cosa_init() { cd "$cosa_dir" # Setup source tree - cosa init --transient "${tmp_src}/os" + cosa init --transient "${tmp_src}/os" "${RHELVER}" } # Do a cosa build & cosa build-extensions only. @@ -57,11 +62,10 @@ cosa_build() { cosa buildfetch --url="${prev_build_url}" # Fetch the repos corresponding to the release we are building - rhelver=$(rpm-ostree compose tree --print-only src/config/manifest.yaml | jq -r '.["automatic-version-prefix"]' | cut -f2 -d.) - id - whoami - ls -alh "src/config/" - curl -L "http://base-${ocpver_mut}-rhel${rhelver}.ocp.svc.cluster.local" -o "src/config/ocp.repo" + if [[ "${RHELVER}" == "rhel-8.6" ]]; then + rhelver=$(rpm-ostree compose tree --print-only src/config/manifest.yaml | jq -r '.["automatic-version-prefix"]' | cut -f2 -d.) + curl -L "http://base-${ocpver_mut}-rhel${rhelver}.ocp.svc.cluster.local" -o "src/config/ocp.repo" + fi # Fetch packages cosa fetch @@ -152,13 +156,15 @@ main () { cosa_init cosa_build ;; - "build-test-qemu-kola-basic") + "build-test-qemu-kola-basic" | "rhcos-86-build-test-qemu") + RHELVER="rhel-8.6" setup_user cosa_init cosa_build kola_test_qemu ;; - "build-test-qemu-kola-all") + "build-test-qemu-kola-all" | "rhcos-86-build-test-metal") + RHELVER="rhel-8.6" setup_user cosa_init cosa_build From 717d737c338a35ed320db05da742683b6de61d19 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Fri, 10 Jun 2022 18:13:27 +0200 Subject: [PATCH 05/13] ci: Prepare test names Pre-create test names to be able to enable them in Prow before we merge the corresponding test code. --- ci/prow-entrypoint.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ci/prow-entrypoint.sh b/ci/prow-entrypoint.sh index 60e6102fa..f2a0cb9ce 100755 --- a/ci/prow-entrypoint.sh +++ b/ci/prow-entrypoint.sh @@ -170,7 +170,7 @@ main () { cosa_build kola_test_metal ;; - "build-test-qemu-kola-upgrade" | "build-test-qemu-kola-metal") + "build-test-qemu-kola-upgrade" | "build-test-qemu-kola-metal" | "rhcos-90-build-test-qemu" | "rhcos-90-build-test-metal" | "scos-9-build-test-qemu" | "scos-9-build-test-metal") echo "Disabled tests" exit 0 ;; From 3fc8237d171d3556ca7b322ed3588a1210a39c89 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Fri, 10 Jun 2022 18:18:57 +0200 Subject: [PATCH 06/13] ci: Remove Dockerfiles (moved to release) Keep Dockerfiles in openshift release to be able to test changes. See: https://docs.ci.openshift.org/docs/architecture/ci-operator/#build-root-image --- ci/Dockerfile | 24 -------------------- ci/Dockerfile.cosa-build | 34 ---------------------------- ci/Dockerfile.cosa-oci-archive | 10 -------- ci/Dockerfile.layering-test | 6 ----- ci/Dockerfile.machine-os-oci-content | 12 ---------- 5 files changed, 86 deletions(-) delete mode 100644 ci/Dockerfile delete mode 100644 ci/Dockerfile.cosa-build delete mode 100644 ci/Dockerfile.cosa-oci-archive delete mode 100644 ci/Dockerfile.layering-test delete mode 100644 ci/Dockerfile.machine-os-oci-content diff --git a/ci/Dockerfile b/ci/Dockerfile deleted file mode 100644 index 913096e1e..000000000 --- a/ci/Dockerfile +++ /dev/null @@ -1,24 +0,0 @@ -FROM registry.ci.openshift.org/ocp/builder:rhel-8-golang-1.17-openshift-4.10 AS builder -WORKDIR /go/src/github.com/openshift/os -COPY . . -# Prevent go mod from requiring a vendor directory. -ENV GOFLAGS=-mod=mod -# Compile our layering test binary for future use. -RUN go test -v -c -o layering_test ./tests/layering - -FROM registry.svc.ci.openshift.org/coreos/coreos-assembler:latest -WORKDIR /src -ENV COSA_DIR=/tmp/cosa -# Prow doesn't support emptydir for jobs today -ENV COSA_SKIP_OVERLAY=1 -COPY --from=builder /go/src/github.com/openshift/os/layering_test /usr/local/bin/layering_test -COPY . . -RUN mkdir -p "${COSA_DIR}" -# We need to make sure that root can read / write to the COSA_DIR so that -# when this container is actually run, we have permissions to read and -# write to the COSA_DIR to allow the Kola tests to run. -USER root -RUN chgrp -Rf root "${COSA_DIR}" && \ - chmod -Rf g+w "${COSA_DIR}" -USER builder -WORKDIR /tmp/cosa diff --git a/ci/Dockerfile.cosa-build b/ci/Dockerfile.cosa-build deleted file mode 100644 index 263fd28f7..000000000 --- a/ci/Dockerfile.cosa-build +++ /dev/null @@ -1,34 +0,0 @@ -# This stage actually builds the RHCOS OCI image. However, due to -# limitations within OpenShift CI, we need to do the following: -# 1. Disable KVM by using the COSA_NO_KVM env var. This is due to OpenShift -# CI using the default OpenShift Docker Build strategy, which precludes us -# from mounting /dev/kvm into the build context. -# 2. Due to a limitation in the version of Buildah that OpenShift Builds -# uses (at the time of this writing, it uses a v1.23.z version of Buildah), -# we cannot mount the build context into the container build (e.g., `RUN -# --mount=type=bind,rw=true,src=.,dst=/buildcontext,bind-propagation=shared -# `), which would allow it to mutate the build context. This is due to -# https://github.com/containers/buildah/pull/3548 not being present. -# For now, this necessitates passing this image into the cosa-build image -# build below to extract the OCI archive and inject it into the -# ImageStream. However, once the OpenShift CI system is upgraded to use -# OpenShift 4.11, we can create the RHCOS image in a single shot via this -# stage. -FROM build-test-qemu-img:latest -ENV COSA_DIR=/tmp/cosa -ENV COSA_SKIP_OVERLAY=1 -RUN mkdir -p "${COSA_DIR}" && \ - COSA_NO_KVM=1 /src/ci/prow-entrypoint.sh build && \ - rm -rf "${COSA_DIR}/cache" -# We need to make sure that root can read / write to the COSA_DIR so that -# when this container is actually run, we have permissions to read and -# write to the COSA_DIR to allow the Kola tests to run. -# Note: In Docker BuildKit, this would double the image size because this -# would create an additional layer. However, since OpenShift Image Builds -# use Buildah, this is eliminated because it squashes these layers -# together. -USER root -RUN chgrp -Rf root "${COSA_DIR}" && \ - chmod -Rf g+w "${COSA_DIR}" -USER builder -WORKDIR /tmp/cosa diff --git a/ci/Dockerfile.cosa-oci-archive b/ci/Dockerfile.cosa-oci-archive deleted file mode 100644 index 3e3ccd8a1..000000000 --- a/ci/Dockerfile.cosa-oci-archive +++ /dev/null @@ -1,10 +0,0 @@ -# We need the OCI archive to be somewhere with a predictable place with a constant -# path. However, the Kola tests expect the OCI archive to have the build -# number included in the filename. With that in mind, this image build will -# extract the RHCOS OCI archive from the cosa-build archive and place it in -# a constant path for extraction by the machine-os-oci-content image build. -FROM cosa-build:latest AS base -RUN /src/ci/simplify-ociarchive-path.sh - -FROM scratch -COPY --from=base /tmp/cosa/builds/latest/x86_64/rhcos.x86_64.ociarchive /tmp/cosa/builds/latest/x86_64/rhcos.x86_64.ociarchive diff --git a/ci/Dockerfile.layering-test b/ci/Dockerfile.layering-test deleted file mode 100644 index f761106b1..000000000 --- a/ci/Dockerfile.layering-test +++ /dev/null @@ -1,6 +0,0 @@ -# Create a slimmer Fedora-based image for the layering test binary. This is -# intended to make the startup of the OS layering test faster since we -# won't have to pull the larger build-test-qemu-img. -FROM build-test-qemu-img:latest AS base -FROM registry.ci.openshift.org/coreos/fedora:35 AS final -COPY --from=base /usr/local/bin/layering_test /usr/local/bin/layering_test diff --git a/ci/Dockerfile.machine-os-oci-content b/ci/Dockerfile.machine-os-oci-content deleted file mode 100644 index ddd831e61..000000000 --- a/ci/Dockerfile.machine-os-oci-content +++ /dev/null @@ -1,12 +0,0 @@ -# This extracts the OCI archive from the cosa-build image build, injects it -# into the build context, and then uses that OCI archive as this image. -# This makes use of the following: -# - OpenShift Image Builds allows one to pass in a path from another container -# image. It places this under /tmp/build/inputs/. See: -# https://github.com/openshift/builder/blob/37525a77fa07e26c420962dee47193d672ef0b35/pkg/build/builder/common.go#L72 -# - Buildah allows one to use oci-archive as a transport. See: -# https://www.redhat.com/sysadmin/7-transports-features -# - Utilizing the above features in concert with one another and using an -# absolute path to refer to the OCI archive in the build context allows us -# to "import" the OCI archive into the CI ImageStream. -FROM oci-archive:/tmp/build/inputs/magic/cosa/builds/latest/x86_64/rhcos.x86_64.ociarchive From 82035e5dd3a7abef7ade183a6e4b2ebf50dbecca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Fri, 10 Jun 2022 18:21:18 +0200 Subject: [PATCH 07/13] ci: Remove now unused scripts Those scripts have been merged into prow-entrypoint.sh. --- ci/build-test-qemu.sh | 2 -- ci/build-test.sh | 2 -- ci/prow-build-test-qemu.sh | 2 -- ci/prow-build.sh | 2 -- ci/set-openshift-user.sh | 2 -- ci/test-qemu-firmware-uefi.sh | 3 --- ci/test-qemu-kola-upgrade.sh | 3 --- ci/test-qemu-kola.sh | 3 --- ci/test-qemu-metal.sh | 3 --- ci/test-qemu-nvme.sh | 3 --- ci/validate.sh | 3 --- 11 files changed, 28 deletions(-) delete mode 100755 ci/build-test-qemu.sh delete mode 100755 ci/build-test.sh delete mode 100755 ci/prow-build-test-qemu.sh delete mode 100755 ci/prow-build.sh delete mode 100755 ci/set-openshift-user.sh delete mode 100755 ci/test-qemu-firmware-uefi.sh delete mode 100755 ci/test-qemu-kola-upgrade.sh delete mode 100755 ci/test-qemu-kola.sh delete mode 100755 ci/test-qemu-metal.sh delete mode 100755 ci/test-qemu-nvme.sh delete mode 100755 ci/validate.sh diff --git a/ci/build-test-qemu.sh b/ci/build-test-qemu.sh deleted file mode 100755 index bf82cc8bf..000000000 --- a/ci/build-test-qemu.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -true diff --git a/ci/build-test.sh b/ci/build-test.sh deleted file mode 100755 index bf82cc8bf..000000000 --- a/ci/build-test.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -true diff --git a/ci/prow-build-test-qemu.sh b/ci/prow-build-test-qemu.sh deleted file mode 100755 index bf82cc8bf..000000000 --- a/ci/prow-build-test-qemu.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -true diff --git a/ci/prow-build.sh b/ci/prow-build.sh deleted file mode 100755 index bf82cc8bf..000000000 --- a/ci/prow-build.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -true diff --git a/ci/set-openshift-user.sh b/ci/set-openshift-user.sh deleted file mode 100755 index bf82cc8bf..000000000 --- a/ci/set-openshift-user.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -true diff --git a/ci/test-qemu-firmware-uefi.sh b/ci/test-qemu-firmware-uefi.sh deleted file mode 100755 index 121d870dd..000000000 --- a/ci/test-qemu-firmware-uefi.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -xeuo -/src/ci/prow-entrypoint.sh "build-test-qemu-kola-basic" diff --git a/ci/test-qemu-kola-upgrade.sh b/ci/test-qemu-kola-upgrade.sh deleted file mode 100755 index 8e087b5a9..000000000 --- a/ci/test-qemu-kola-upgrade.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -xeuo -/src/ci/prow-entrypoint.sh "build-test-qemu-kola-upgrade" diff --git a/ci/test-qemu-kola.sh b/ci/test-qemu-kola.sh deleted file mode 100755 index 4d0df394a..000000000 --- a/ci/test-qemu-kola.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -xeuo -/src/ci/prow-entrypoint.sh "build-test-qemu-kola-all" diff --git a/ci/test-qemu-metal.sh b/ci/test-qemu-metal.sh deleted file mode 100755 index 8060b9a31..000000000 --- a/ci/test-qemu-metal.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -xeuo -/src/ci/prow-entrypoint.sh "build-test-qemu-kola-metal" diff --git a/ci/test-qemu-nvme.sh b/ci/test-qemu-nvme.sh deleted file mode 100755 index 2e06e2132..000000000 --- a/ci/test-qemu-nvme.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -xeuo -true diff --git a/ci/validate.sh b/ci/validate.sh deleted file mode 100755 index fdd4042c5..000000000 --- a/ci/validate.sh +++ /dev/null @@ -1,3 +0,0 @@ -#!/bin/bash -set -xeuo -./ci/prow-entrypoint.sh "validate" From c95c192c156617df24ebf266d548a65a64632ff5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Fri, 10 Jun 2022 18:24:26 +0200 Subject: [PATCH 08/13] ci: Clean-up test names --- ci/prow-entrypoint.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ci/prow-entrypoint.sh b/ci/prow-entrypoint.sh index f2a0cb9ce..cf0c51c9a 100755 --- a/ci/prow-entrypoint.sh +++ b/ci/prow-entrypoint.sh @@ -156,14 +156,14 @@ main () { cosa_init cosa_build ;; - "build-test-qemu-kola-basic" | "rhcos-86-build-test-qemu") + "rhcos-86-build-test-qemu") RHELVER="rhel-8.6" setup_user cosa_init cosa_build kola_test_qemu ;; - "build-test-qemu-kola-all" | "rhcos-86-build-test-metal") + "rhcos-86-build-test-metal") RHELVER="rhel-8.6" setup_user cosa_init From 50d4401920c0e4c91a59e3d251504455c315c2a9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Thu, 9 Jun 2022 12:33:56 +0200 Subject: [PATCH 09/13] Add manifests for RHEL 9.0 based RHCOS --- rhel-9.0/extensions.yaml | 62 +++++++++++++ rhel-9.0/fedora-coreos-config | 1 + rhel-9.0/image.yaml | 1 + rhel-9.0/live | 1 + rhel-9.0/manifest.yaml | 161 ++++++++++++++++++++++++++++++++++ rhel-9.0/overlay.d | 1 + 6 files changed, 227 insertions(+) create mode 100644 rhel-9.0/extensions.yaml create mode 120000 rhel-9.0/fedora-coreos-config create mode 120000 rhel-9.0/image.yaml create mode 120000 rhel-9.0/live create mode 100644 rhel-9.0/manifest.yaml create mode 120000 rhel-9.0/overlay.d diff --git a/rhel-9.0/extensions.yaml b/rhel-9.0/extensions.yaml new file mode 100644 index 000000000..f3e241d8a --- /dev/null +++ b/rhel-9.0/extensions.yaml @@ -0,0 +1,62 @@ +# RPMs as operating system extensions, distinct from the base ostree commit/image +# https://github.com/openshift/enhancements/blob/master/enhancements/rhcos/extensions.md +# and https://github.com/coreos/fedora-coreos-tracker/issues/401 + +repos: + - rhel-9-nfv + +extensions: + # https://github.com/coreos/fedora-coreos-tracker/issues/326 + usbguard: + packages: + - usbguard + kerberos: + packages: + - krb5-workstation + - libkadm5 + # https://github.com/kmods-via-containers/kmods-via-containers/issues/3 + # https://gitlab.cee.redhat.com/coreos/redhat-coreos/merge_requests/866 + # These are currently overlaid onto the host so that they can be bind-mounted + # into build containers... in the future they should be a `development` + # extension: https://github.com/openshift/machine-config-operator/pull/2143. + kernel-devel: + packages: + - kernel-devel + - kernel-headers + match-base-evr: kernel + # These are already in the base, so they're not OS extensions, but they're + # useful to have in RPM form to install in kmod build containers. + kernel: + kind: development + packages: + - kernel + - kernel-core + - kernel-modules + - kernel-modules-extra + match-base-evr: kernel + # GRPA-2822 + # https://github.com/openshift/machine-config-operator/pull/1330 + # https://github.com/openshift/enhancements/blob/master/enhancements/support-for-realtime-kernel.md + kernel-rt: + architectures: + - x86_64 + packages: + - kernel-rt-core + - kernel-rt-kvm + - kernel-rt-modules + - kernel-rt-modules-extra + - kernel-rt-devel + # https://github.com/openshift/machine-config-operator/pull/2456 + # https://github.com/openshift/enhancements/blob/master/enhancements/sandboxed-containers/sandboxed-containers-tech-preview.md + # GRPA-3123 + # - kata-containers (RHAOS) + sandboxed-containers: + architectures: + - x86_64 + modules: + enable: + - virt:rhel + repos: + - rhel-9-appstream + packages: + - kata-containers diff --git a/rhel-9.0/fedora-coreos-config b/rhel-9.0/fedora-coreos-config new file mode 120000 index 000000000..3ce9ade12 --- /dev/null +++ b/rhel-9.0/fedora-coreos-config @@ -0,0 +1 @@ +../fedora-coreos-config \ No newline at end of file diff --git a/rhel-9.0/image.yaml b/rhel-9.0/image.yaml new file mode 120000 index 000000000..73c5b0318 --- /dev/null +++ b/rhel-9.0/image.yaml @@ -0,0 +1 @@ +../image.yaml \ No newline at end of file diff --git a/rhel-9.0/live b/rhel-9.0/live new file mode 120000 index 000000000..6fd56fbe5 --- /dev/null +++ b/rhel-9.0/live @@ -0,0 +1 @@ +../live \ No newline at end of file diff --git a/rhel-9.0/manifest.yaml b/rhel-9.0/manifest.yaml new file mode 100644 index 000000000..d5a9cf7e0 --- /dev/null +++ b/rhel-9.0/manifest.yaml @@ -0,0 +1,161 @@ +# Manifest for RHCOS based on RHEL 9.0 + +rojig: + license: MIT + name: rhcos + summary: OpenShift 4 + +variables: + distro: "rhel" + version: "9.0" + +# Include manifests common to all RHEL and CentOS Stream versions +include: + - ../common.yaml + +# Starting from here, everything should be specific to RHCOS based on RHEL 9.0 + +# See README.md +# and https://github.com/openshift/release/blob/master/core-services/release-controller/README.md#rpm-mirrors +repos: + - rhel-9-baseos + - rhel-9-appstream + - rhel-9-fast-datapath + - rhel-9-server-ose + # Temporary for openvswitch-selinux-extra-policy + - rhel-8-fast-datapath + +# We include hours/minutes to avoid version number reuse +automatic-version-prefix: "412.90." +# 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.12" + +postprocess: + - | + #!/usr/bin/env bash + set -xeo pipefail + + # Tweak /usr/lib/os-release + grep -v "OSTREE_VERSION" /etc/os-release > /usr/lib/os-release.rhel + OCP_RELEASE="4.12" + ( + . /etc/os-release + cat > /usr/lib/os-release < /usr/lib/system-release-cpe < /usr/lib/system-release < /usr/lib/issue < /etc/motd <> /etc/crio/crio.conf < Date: Fri, 10 Jun 2022 18:25:56 +0200 Subject: [PATCH 10/13] ci: Enable RHCOS 9 testing --- ci/prow-entrypoint.sh | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/ci/prow-entrypoint.sh b/ci/prow-entrypoint.sh index cf0c51c9a..eb38bd211 100755 --- a/ci/prow-entrypoint.sh +++ b/ci/prow-entrypoint.sh @@ -65,6 +65,10 @@ cosa_build() { if [[ "${RHELVER}" == "rhel-8.6" ]]; then rhelver=$(rpm-ostree compose tree --print-only src/config/manifest.yaml | jq -r '.["automatic-version-prefix"]' | cut -f2 -d.) curl -L "http://base-${ocpver_mut}-rhel${rhelver}.ocp.svc.cluster.local" -o "src/config/ocp.repo" + elif [[ "${RHELVER}" == "rhel-9.0" ]]; then + # Temporary workaround until we have all packages for RHCOS 9 + curl -L "http://base-${ocpver_mut}-rhel86.ocp.svc.cluster.local" -o "src/config/ocp86.repo" + curl -L "http://base-${ocpver_mut}-rhel90.ocp.svc.cluster.local" -o "src/config/ocp90.repo" fi # Fetch packages @@ -170,7 +174,21 @@ main () { cosa_build kola_test_metal ;; - "build-test-qemu-kola-upgrade" | "build-test-qemu-kola-metal" | "rhcos-90-build-test-qemu" | "rhcos-90-build-test-metal" | "scos-9-build-test-qemu" | "scos-9-build-test-metal") + "rhcos-90-build-test-qemu") + RHELVER="rhel-9.0" + setup_user + cosa_init + cosa_build + kola_test_qemu + ;; + "rhcos-90-build-test-metal") + RHELVER="rhel-9.0" + setup_user + cosa_init + cosa_build + kola_test_metal + ;; + "disabled-test" | "scos-9-build-test-qemu" | "scos-9-build-test-metal") echo "Disabled tests" exit 0 ;; From 58d600e8440d472ddc2f3f85e2cce2b2574adbdc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Thu, 9 Jun 2022 12:38:18 +0200 Subject: [PATCH 11/13] Add manifests for SCOS --- c9s/extensions.yaml | 62 +++++++++++++++++ c9s/fedora-coreos-config | 1 + c9s/image.yaml | 1 + c9s/live | 1 + c9s/manifest.yaml | 142 +++++++++++++++++++++++++++++++++++++++ c9s/overlay.d | 1 + 6 files changed, 208 insertions(+) create mode 100644 c9s/extensions.yaml create mode 120000 c9s/fedora-coreos-config create mode 120000 c9s/image.yaml create mode 120000 c9s/live create mode 100644 c9s/manifest.yaml create mode 120000 c9s/overlay.d diff --git a/c9s/extensions.yaml b/c9s/extensions.yaml new file mode 100644 index 000000000..bc841d11c --- /dev/null +++ b/c9s/extensions.yaml @@ -0,0 +1,62 @@ +# RPMs as operating system extensions, distinct from the base ostree commit/image +# https://github.com/openshift/enhancements/blob/master/enhancements/rhcos/extensions.md +# and https://github.com/coreos/fedora-coreos-tracker/issues/401 + +repos: + - nfv + +extensions: + # https://github.com/coreos/fedora-coreos-tracker/issues/326 + usbguard: + packages: + - usbguard + kerberos: + packages: + - krb5-workstation + - libkadm5 + # https://github.com/kmods-via-containers/kmods-via-containers/issues/3 + # https://gitlab.cee.redhat.com/coreos/redhat-coreos/merge_requests/866 + # These are currently overlaid onto the host so that they can be bind-mounted + # into build containers... in the future they should be a `development` + # extension: https://github.com/openshift/machine-config-operator/pull/2143. + kernel-devel: + packages: + - kernel-devel + - kernel-headers + match-base-evr: kernel + # These are already in the base, so they're not OS extensions, but they're + # useful to have in RPM form to install in kmod build containers. + kernel: + kind: development + packages: + - kernel + - kernel-core + - kernel-modules + - kernel-modules-extra + match-base-evr: kernel + # GRPA-2822 + # https://github.com/openshift/machine-config-operator/pull/1330 + # https://github.com/openshift/enhancements/blob/master/enhancements/support-for-realtime-kernel.md + kernel-rt: + architectures: + - x86_64 + packages: + - kernel-rt-core + - kernel-rt-kvm + - kernel-rt-modules + - kernel-rt-modules-extra + - kernel-rt-devel + # https://github.com/openshift/machine-config-operator/pull/2456 + # https://github.com/openshift/enhancements/blob/master/enhancements/sandboxed-containers/sandboxed-containers-tech-preview.md + # GRPA-3123 + # - kata-containers (RHAOS) + sandboxed-containers: + architectures: + - x86_64 + modules: + enable: + - virt:rhel + repos: + - appstream + packages: + - kata-containers diff --git a/c9s/fedora-coreos-config b/c9s/fedora-coreos-config new file mode 120000 index 000000000..3ce9ade12 --- /dev/null +++ b/c9s/fedora-coreos-config @@ -0,0 +1 @@ +../fedora-coreos-config \ No newline at end of file diff --git a/c9s/image.yaml b/c9s/image.yaml new file mode 120000 index 000000000..73c5b0318 --- /dev/null +++ b/c9s/image.yaml @@ -0,0 +1 @@ +../image.yaml \ No newline at end of file diff --git a/c9s/live b/c9s/live new file mode 120000 index 000000000..6fd56fbe5 --- /dev/null +++ b/c9s/live @@ -0,0 +1 @@ +../live \ No newline at end of file diff --git a/c9s/manifest.yaml b/c9s/manifest.yaml new file mode 100644 index 000000000..923755378 --- /dev/null +++ b/c9s/manifest.yaml @@ -0,0 +1,142 @@ +# Manifest for CentOS Stream CoreOS (SCOS) + +rojig: + license: MIT + name: scos + summary: OKD 4 + +variables: + distro: "scos" + version: "9" + +# Include manifests common to all RHEL and CentOS Stream versions +include: + - ../common.yaml + +# Starting from here, everything should be specific to SCOS + +# CentOS Stream 9 repos + internal repos for now +repos: + - baseos + - appstream + # Temporarily inlcude internal repos and coprs + - rhel-8-server-ose + - walters-coreos-centos-stuff + +# We include hours/minutes to avoid version number reuse +automatic-version-prefix: "412.91." +# 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.12" + +postprocess: + - | + #!/usr/bin/env bash + set -xeo pipefail + + # Tweak /usr/lib/os-release + grep -v "OSTREE_VERSION" /etc/os-release > /usr/lib/os-release.stream + OCP_RELEASE="4.12" + ( + . /etc/os-release + cat > /usr/lib/os-release < /usr/lib/system-release-cpe < /usr/lib/system-release < /usr/lib/issue < /etc/motd <> /etc/crio/crio.conf < Date: Thu, 9 Jun 2022 12:38:44 +0200 Subject: [PATCH 12/13] Add C9S & COPR repos for SCOS --- c9s/c9s.repo | 27 +++++++++++++++++++++++ c9s/copr-walters-coreos-centos-stuff.repo | 10 +++++++++ 2 files changed, 37 insertions(+) create mode 100644 c9s/c9s.repo create mode 100644 c9s/copr-walters-coreos-centos-stuff.repo diff --git a/c9s/c9s.repo b/c9s/c9s.repo new file mode 100644 index 000000000..33f501fec --- /dev/null +++ b/c9s/c9s.repo @@ -0,0 +1,27 @@ +[baseos] +name=CentOS Stream 9 BaseOS +baseurl=http://mirror.stream.centos.org/9-stream/BaseOS/$basearch/os +# FIXME +gpgcheck=0 +enabled=1 + +[appstream] +name=CentOS Stream 9 AppStream +baseurl=http://mirror.stream.centos.org/9-stream/AppStream/$basearch/os +# FIXME +gpgcheck=0 +enabled=1 + +[nfv] +name=CentOS Stream 9 NFV +baseurl=http://mirror.stream.centos.org/9-stream/NFV/$basearch/os +# FIXME +gpgcheck=0 +enabled=1 + +[rt] +name=CentOS Stream 9 RT +baseurl=http://mirror.stream.centos.org/9-stream/RT/$basearch/os +# FIXME +gpgcheck=0 +enabled=1 diff --git a/c9s/copr-walters-coreos-centos-stuff.repo b/c9s/copr-walters-coreos-centos-stuff.repo new file mode 100644 index 000000000..797e081cd --- /dev/null +++ b/c9s/copr-walters-coreos-centos-stuff.repo @@ -0,0 +1,10 @@ +[walters-coreos-centos-stuff] +name=Copr repo for coreos-centos-stuff owned by walters +baseurl=https://download.copr.fedorainfracloud.org/results/walters/coreos-centos-stuff/fedora-34-$basearch/ +type=rpm-md +skip_if_unavailable=True +gpgcheck=1 +gpgkey=https://download.copr.fedorainfracloud.org/results/walters/coreos-centos-stuff/pubkey.gpg +repo_gpgcheck=0 +enabled=1 +enabled_metadata=1 From 1d8463db136edf1f781344ce3f2bca1adea63d1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timoth=C3=A9e=20Ravier?= Date: Fri, 10 Jun 2022 18:26:16 +0200 Subject: [PATCH 13/13] ci: Enable SCOS testing --- ci/prow-entrypoint.sh | 28 ++++++++++++++++++++++++---- 1 file changed, 24 insertions(+), 4 deletions(-) diff --git a/ci/prow-entrypoint.sh b/ci/prow-entrypoint.sh index eb38bd211..2083c3055 100755 --- a/ci/prow-entrypoint.sh +++ b/ci/prow-entrypoint.sh @@ -57,9 +57,12 @@ cosa_build() { # to X-Y format ocpver=$(rpm-ostree compose tree --print-only src/config/manifest.yaml | jq -r '.["mutate-os-release"]') ocpver_mut=$(rpm-ostree compose tree --print-only src/config/manifest.yaml | jq -r '.["mutate-os-release"]' | sed 's|\.|-|') - prev_build_url=${REDIRECTOR_URL}/rhcos-${ocpver}/ - # Fetch the previous build - cosa buildfetch --url="${prev_build_url}" + + # Currently disabled for SCOS as we don't have any previous builds + if [[ "${RHELVER}" != "c9s" ]]; then + # Fetch the previous build + cosa buildfetch --url="${REDIRECTOR_URL}/rhcos-${ocpver}/" + fi # Fetch the repos corresponding to the release we are building if [[ "${RHELVER}" == "rhel-8.6" ]]; then @@ -69,6 +72,9 @@ cosa_build() { # Temporary workaround until we have all packages for RHCOS 9 curl -L "http://base-${ocpver_mut}-rhel86.ocp.svc.cluster.local" -o "src/config/ocp86.repo" curl -L "http://base-${ocpver_mut}-rhel90.ocp.svc.cluster.local" -o "src/config/ocp90.repo" + elif [[ "${RHELVER}" == "c9s" ]]; then + # Temporary workarounds until we have all packages for SCOS + curl -L "http://base-${ocpver_mut}-rhel86.ocp.svc.cluster.local" -o "src/config/ocp86.repo" fi # Fetch packages @@ -188,7 +194,21 @@ main () { cosa_build kola_test_metal ;; - "disabled-test" | "scos-9-build-test-qemu" | "scos-9-build-test-metal") + "scos-9-build-test-qemu") + RHELVER="c9s" + setup_user + cosa_init + cosa_build + kola_test_qemu + ;; + "scos-9-build-test-metal") + RHELVER="c9s" + setup_user + cosa_init + cosa_build + kola_test_metal + ;; + "disabled-test") echo "Disabled tests" exit 0 ;;