diff --git a/tools/osbuilder/Makefile b/tools/osbuilder/Makefile index 7f0addf8fd..25effc967e 100644 --- a/tools/osbuilder/Makefile +++ b/tools/osbuilder/Makefile @@ -9,7 +9,7 @@ ROOTFS_BUILDER := $(MK_DIR)/rootfs-builder/rootfs.sh INITRD_BUILDER := $(MK_DIR)/initrd-builder/initrd_builder.sh IMAGE_BUILDER := $(MK_DIR)/image-builder/image_builder.sh -DISTRO ?= centos +DISTRO ?= ubuntu BUILD_METHOD := distro BUILD_METHOD_LIST := distro dracut AGENT_INIT ?= no diff --git a/tools/osbuilder/README.md b/tools/osbuilder/README.md index 7890b72e49..b97839361e 100644 --- a/tools/osbuilder/README.md +++ b/tools/osbuilder/README.md @@ -80,8 +80,8 @@ filesystem components to generate an initrd. 3. When generating an image, the initrd is extracted to obtain the base rootfs for the image. -CentOS is the default distro for building the rootfs, to use a different one, you can set `DISTRO=`. -For example `make USE_DOCKER=true DISTRO=ubuntu rootfs` will make Ubuntu rootfs using Docker. +Ubuntu is the default distro for building the rootfs, to use a different one, you can set `DISTRO=alpine|clearlinux|debian|ubuntu`. +For example `make USE_DOCKER=true DISTRO=alpine rootfs` will make an Alpine rootfs using Docker. ### Rootfs creation @@ -209,9 +209,9 @@ of the the osbuilder distributions. > Note: this table is not relevant for the dracut build method, since it supports any Linux distribution and architecture where dracut is available. -| |Alpine |CentOS |Clear Linux |Debian/Ubuntu |Fedora |openSUSE | -|-- |-- |-- |-- |-- |-- |-- | -|**ARM64** |:heavy_check_mark:|:heavy_check_mark:| | |:heavy_check_mark:|:heavy_check_mark:| -|**PPC64le**|:heavy_check_mark:|:heavy_check_mark:| |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| -|**s390x** | | | |:heavy_check_mark:|:heavy_check_mark:| | -|**x86_64** |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| +| |Alpine |Clear Linux |Debian/Ubuntu | +|-- |-- |-- |-- | +|**ARM64** |:heavy_check_mark:| | | +|**PPC64le**|:heavy_check_mark:| |:heavy_check_mark:| +|**s390x** | | |:heavy_check_mark:| +|**x86_64** |:heavy_check_mark:|:heavy_check_mark:|:heavy_check_mark:| diff --git a/tools/osbuilder/dockerfiles/QAT/README.md b/tools/osbuilder/dockerfiles/QAT/README.md index 370eceb5e0..87730ebd78 100644 --- a/tools/osbuilder/dockerfiles/QAT/README.md +++ b/tools/osbuilder/dockerfiles/QAT/README.md @@ -8,10 +8,8 @@ To properly load the driver modules, systemd init must be used. It is not adequa to use the agent as the init. Because of this, alpine is not a valid base OS image to use. The following rootfs OS's have been tested with this Dockerfile. -* CentOS * Clear Linux -* Fedora -* SUSE +* Debian * Ubuntu The generated files will need to be copied and configured into your Kata Containers diff --git a/tools/osbuilder/rootfs-builder/README.md b/tools/osbuilder/rootfs-builder/README.md index fe3d1a8a22..71c92792ce 100644 --- a/tools/osbuilder/rootfs-builder/README.md +++ b/tools/osbuilder/rootfs-builder/README.md @@ -99,10 +99,10 @@ must be met: Example: ``` $ export USE_DOCKER=true - $ # build guest O/S rootfs based on fedora - $ ./rootfs-builder/rootfs.sh -r "${PWD}/fedora_rootfs" fedora + $ # build guest O/S rootfs based on debian + $ ./rootfs-builder/rootfs.sh -r "${PWD}/debian_rootfs" debian $ # build image based rootfs created above - $ ./image-builder/image_builder.sh "${PWD}/fedora_rootfs" + $ ./image-builder/image_builder.sh "${PWD}/debian_rootfs" ``` ## Adding support for a new guest OS @@ -180,7 +180,7 @@ To add additional packages, use one of the following methods: Example: ``` - $ EXTRA_PKGS="vim emacs" ./rootfs-builder/rootfs.sh -r ${PWD}/myrootfs fedora + $ EXTRA_PKGS="vim emacs" ./rootfs-builder/rootfs.sh -r ${PWD}/myrootfs debian ``` - Modify the variable `PACKAGES` in `rootfs-builder//config.sh`. diff --git a/tools/osbuilder/rootfs-builder/centos/Dockerfile.in b/tools/osbuilder/rootfs-builder/centos/Dockerfile.in deleted file mode 100644 index d05436e2a9..0000000000 --- a/tools/osbuilder/rootfs-builder/centos/Dockerfile.in +++ /dev/null @@ -1,40 +0,0 @@ -# -# Copyright (c) 2018 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 - -ARG IMAGE_REGISTRY=registry.centos.org -FROM ${IMAGE_REGISTRY}/centos:@OS_VERSION@ - -@SET_PROXY@ - -RUN yum -y update && yum install -y \ - autoconf \ - automake \ - binutils \ - chrony \ - coreutils \ - curl \ - gcc \ - gcc-c++ \ - git \ - glibc-common \ - glibc-devel \ - glibc-headers \ - glibc-static \ - glibc-utils \ - libseccomp \ - libseccomp-devel \ - libstdc++-devel \ - libstdc++-static \ - m4 \ - make \ - sed \ - tar \ - vim \ - which && \ - yum clean all - -# This will install the proper packages to build Kata components -@INSTALL_MUSL@ -@INSTALL_RUST@ diff --git a/tools/osbuilder/rootfs-builder/centos/config.sh b/tools/osbuilder/rootfs-builder/centos/config.sh deleted file mode 100644 index b0918614aa..0000000000 --- a/tools/osbuilder/rootfs-builder/centos/config.sh +++ /dev/null @@ -1,38 +0,0 @@ -# -# Copyright (c) 2018 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 - -OS_NAME="Centos" - -OS_VERSION=${OS_VERSION:-7} - -LOG_FILE="/var/log/yum-centos.log" - -MIRROR_LIST="http://mirrorlist.centos.org/?release=${OS_VERSION}&arch=${ARCH}&repo=os&container=container" - -# Aditional Repos -CENTOS_UPDATES_MIRROR_LIST="http://mirrorlist.centos.org/?release=${OS_VERSION}&arch=${ARCH}&repo=updates&container=container" - -CENTOS_EXTRAS_MIRROR_LIST="http://mirrorlist.centos.org/?release=${OS_VERSION}&arch=${ARCH}&repo=extras&container=container" - -CENTOS_PLUS_MIRROR_LIST="http://mirrorlist.centos.org/?release=${OS_VERSION}&arch=${ARCH}&repo=centosplus&container=container" - -GPG_KEY_URL="https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7" - -GPG_KEY_FILE="RPM-GPG-KEY-CentOS-7" - -PACKAGES="coreutils chrony" - -#Optional packages: -# systemd: An init system that will start kata-agent if kata-agent -# itself is not configured as init process. -[ "$AGENT_INIT" = "no" ] && PACKAGES+=" systemd" || true - -# Init process must be one of {systemd,kata-agent} -INIT_PROCESS=systemd -# List of zero or more architectures to exclude from build, -# as reported by `uname -m` -ARCH_EXCLUDE_LIST=() - -[ "$SECCOMP" = "yes" ] && PACKAGES+=" libseccomp" || true diff --git a/tools/osbuilder/rootfs-builder/centos/config_aarch64.sh b/tools/osbuilder/rootfs-builder/centos/config_aarch64.sh deleted file mode 100644 index b4f8ccf8d5..0000000000 --- a/tools/osbuilder/rootfs-builder/centos/config_aarch64.sh +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (c) 2018 ARM Limited -# -# SPDX-License-Identifier: Apache-2.0 - -# Base Repos -BASE_URL="http://mirror.centos.org/altarch/${OS_VERSION}/os/${ARCH}/" - -# Additional Repos -CENTOS_UPDATES_URL="http://mirror.centos.org/altarch/${OS_VERSION}/updates/${ARCH}/" - -CENTOS_EXTRAS_URL="http://mirror.centos.org/altarch/${OS_VERSION}/extras/${ARCH}/" - -CENTOS_PLUS_URL="http://mirror.centos.org/altarch/${OS_VERSION}/centosplus/${ARCH}/" - -GPG_KEY_ARCH_URL="http://mirror.centos.org/altarch/7/os/aarch64/RPM-GPG-KEY-CentOS-7" - -GPG_KEY_ARCH_FILE="RPM-GPG-KEY-CentOS-7-aarch64" diff --git a/tools/osbuilder/rootfs-builder/centos/config_ppc64le.sh b/tools/osbuilder/rootfs-builder/centos/config_ppc64le.sh deleted file mode 100644 index 035cfa8b58..0000000000 --- a/tools/osbuilder/rootfs-builder/centos/config_ppc64le.sh +++ /dev/null @@ -1,18 +0,0 @@ -# -# Copyright (c) 2018 IBM -# -# SPDX-License-Identifier: Apache-2.0 - -# Base Repos -BASE_URL="http://mirror.centos.org/altarch/${OS_VERSION}/os/${ARCH}/" - -# Additional Repos -CENTOS_UPDATES_URL="http://mirror.centos.org/altarch/${OS_VERSION}/updates/${ARCH}/" - -CENTOS_EXTRAS_URL="http://mirror.centos.org/altarch/${OS_VERSION}/extras/${ARCH}/" - -CENTOS_PLUS_URL="http://mirror.centos.org/altarch/${OS_VERSION}/centosplus/${ARCH}/" - -GPG_KEY_ARCH_URL="https://raw.githubusercontent.com/CentOS/sig-core-AltArch/master/centos-release-repo/centos-release-7/ppc/RPM-GPG-KEY-CentOS-SIG-AltArch-7-ppc64le" - -GPG_KEY_ARCH_FILE="RPM-GPG-KEY-CentOS-SIG-AltArch-7-ppc64le" diff --git a/tools/osbuilder/rootfs-builder/fedora/Dockerfile.in b/tools/osbuilder/rootfs-builder/fedora/Dockerfile.in deleted file mode 100644 index e566823ea7..0000000000 --- a/tools/osbuilder/rootfs-builder/fedora/Dockerfile.in +++ /dev/null @@ -1,43 +0,0 @@ -# -# Copyright (c) 2018 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 -ARG IMAGE_REGISTRY=registry.fedoraproject.org -FROM ${IMAGE_REGISTRY}/fedora:@OS_VERSION@ - -@SET_PROXY@ - -RUN dnf -y update && dnf install -y \ - autoconf \ - automake \ - binutils \ - chrony \ - coreutils \ - curl \ - gcc \ - gcc-c++ \ - git \ - glibc-common \ - glibc-devel \ - glibc-headers \ - glibc-static \ - glibc-utils \ - libseccomp \ - libseccomp-devel \ - libstdc++-devel \ - libstdc++-static \ - protobuf-compiler \ - m4 \ - make \ - pkgconfig \ - redhat-release \ - sed \ - systemd \ - tar \ - vim \ - which && \ - dnf clean all - -# This will install the proper packages to build Kata components -@INSTALL_MUSL@ -@INSTALL_RUST@ diff --git a/tools/osbuilder/rootfs-builder/fedora/config.sh b/tools/osbuilder/rootfs-builder/fedora/config.sh deleted file mode 100644 index 76cae407b1..0000000000 --- a/tools/osbuilder/rootfs-builder/fedora/config.sh +++ /dev/null @@ -1,23 +0,0 @@ -# -# Copyright (c) 2018 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 - -OS_NAME="Fedora" - -OS_VERSION=${OS_VERSION:-30} - -MIRROR_LIST="https://mirrors.fedoraproject.org/metalink?repo=fedora-${OS_VERSION}&arch=\$basearch" - -PACKAGES="coreutils chrony" - -#Optional packages: -# systemd: An init system that will start kata-agent if kata-agent -# itself is not configured as init process. -[ "$AGENT_INIT" = "no" ] && PACKAGES+=" systemd" || true - -# Init process must be one of {systemd,kata-agent} -INIT_PROCESS=systemd -ARCH_EXCLUDE_LIST=() - -[ "$SECCOMP" = "yes" ] && PACKAGES+=" libseccomp" || true diff --git a/tools/osbuilder/rootfs-builder/fedora/config_aarch64.sh b/tools/osbuilder/rootfs-builder/fedora/config_aarch64.sh deleted file mode 100644 index 42126f34c5..0000000000 --- a/tools/osbuilder/rootfs-builder/fedora/config_aarch64.sh +++ /dev/null @@ -1,10 +0,0 @@ -# -# Copyright (c) 2019 ARM Limited -# -# SPDX-License-Identifier: Apache-2.0 - -# image busybox will fail on fedora 30 rootfs image -# see https://github.com/kata-containers/osbuilder/issues/334 for detailed info -OS_VERSION="29" - -MIRROR_LIST="https://mirrors.fedoraproject.org/metalink?repo=fedora-${OS_VERSION}&arch=\$basearch" diff --git a/tools/osbuilder/rootfs-builder/gentoo/Dockerfile.in b/tools/osbuilder/rootfs-builder/gentoo/Dockerfile.in deleted file mode 100644 index e817d2ac83..0000000000 --- a/tools/osbuilder/rootfs-builder/gentoo/Dockerfile.in +++ /dev/null @@ -1,15 +0,0 @@ -# -# Copyright (c) 2020 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 - -ARG IMAGE_REGISTRY=docker.io -# stage3-amd64 image has only 'latest' tag so ignore DL3006 rule. -# hadolint ignore=DL3007 -FROM ${IMAGE_REGISTRY}/gentoo/stage3-amd64:latest - -# This dockerfile needs to provide all the componets need to build a rootfs -# Install any package need to create a rootfs (package manager, extra tools) - -# This will install the proper rust to build Kata components -@INSTALL_RUST@ diff --git a/tools/osbuilder/rootfs-builder/gentoo/config.sh b/tools/osbuilder/rootfs-builder/gentoo/config.sh deleted file mode 100644 index a3e0c53bb5..0000000000 --- a/tools/osbuilder/rootfs-builder/gentoo/config.sh +++ /dev/null @@ -1,22 +0,0 @@ -# This is a configuration file add extra variables to -# -# Copyright (c) 2020 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 -# be used by build_rootfs() from rootfs_lib.sh the variables will be -# loaded just before call the function. For more information see the -# rootfs-builder/README.md file. - -OS_VERSION=${OS_VERSION:-latest} -OS_NAME=${OS_NAME:-"gentoo"} - -# packages to be installed by default -PACKAGES="sys-apps/systemd sys-apps/coreutils net-misc/chrony" - -# Init process must be one of {systemd,kata-agent} -INIT_PROCESS=systemd -# List of zero or more architectures to exclude from build, -# as reported by `uname -m` -ARCH_EXCLUDE_LIST=( aarch64 ppc64le s390x ) - -[ "$SECCOMP" = "yes" ] && PACKAGES+=" sys-libs/libseccomp" || true diff --git a/tools/osbuilder/rootfs-builder/gentoo/rootfs_lib.sh b/tools/osbuilder/rootfs-builder/gentoo/rootfs_lib.sh deleted file mode 100644 index 0226bb2508..0000000000 --- a/tools/osbuilder/rootfs-builder/gentoo/rootfs_lib.sh +++ /dev/null @@ -1,210 +0,0 @@ -# Copyright (c) 2020 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 -# -# - Arguments -# rootfs_dir=$1 -# -# - Optional environment variables -# -# EXTRA_PKGS: Variable to add extra PKGS provided by the user -# -# BIN_AGENT: Name of the Kata-Agent binary -# -# REPO_URL: URL to distribution repository ( should be configured in -# config.sh file) -# -# Any other configuration variable for a specific distro must be added -# and documented on its own config.sh -# -# - Expected result -# -# rootfs_dir populated with rootfs pkgs -# It must provide a binary in /sbin/init -# -gentoo_portage_container=gentoo_portage -gentoo_local_portage_dir="${HOME}/gentoo-$(date +%s)" - -build_rootfs() { - # Mandatory - local ROOTFS_DIR=$1 - - # In case of support EXTRA packages, use it to allow - # users to add more packages to the base rootfs - local EXTRA_PKGS=${EXTRA_PKGS:-} - - # Populate ROOTFS_DIR - # Must provide /sbin/init and /bin/${BIN_AGENT} - check_root - mkdir -p "${ROOTFS_DIR}" - - # trim whitespace - PACKAGES=$(echo $PACKAGES |xargs ) - EXTRA_PKGS=$(echo $EXTRA_PKGS |xargs) - - # extra packages are added to packages and finally passed to debootstrap - if [ "${EXTRA_PKGS}" = "" ]; then - echo "no extra packages" - else - PACKAGES="${PACKAGES} ${EXTRA_PKGS}" - fi - - local packageuseconf="/etc/portage/package.use/user" - local makeconf="/etc/portage/make.conf" - local systemd_optimizations=( - acl - -apparmor - -audit - cgroup-hybrid - -cryptsetup - -curl - -dns-over-tls - -gcrypt - -gnuefi - -homed - -http - -hwdb - -idn - -importd - kmod - -lz4 - -lzma - -nat - -pkcs11 - -policykit - -pwquality - -qrcode - -repart - -resolvconf - sysv-utils - -test - -xkb - -zstd - ) - - local packages_optimizations=( - -abi_x86_32 - -abi_x86_x32 - -debug - -doc - -examples - multicall - -ncurses - -nls - -selinux - systemd - -udev - -unicode - -X - ) - - local compiler_optimizations=( - -O3 - -fassociative-math - -fasynchronous-unwind-tables - -feliminate-unused-debug-types - -fexceptions - -ffat-lto-objects - -fno-semantic-interposition - -fno-signed-zeros - -fno-trapping-math - -fstack-protector - -ftree-loop-distribute-patterns - -m64 - -mtune=skylake - --param=ssp-buffer-size=32 - -pipe - -Wl,--copy-dt-needed-entries - -Wp,-D_REENTRANT - -Wl,--enable-new-dtags - -Wl,-sort-common - -Wl,-z -Wl,now - -Wl,-z -Wl,relro - ) - - local build_dependencies=( - dev-vcs/git - ) - - local conflicting_packages=( - net-misc/netifrc sys-apps/sysvinit - sys-fs/eudev sys-apps/openrc - virtual/service-manager - ) - - # systemd optimizations - echo "sys-apps/systemd ${systemd_optimizations[*]}" >> ${packageuseconf} - echo "MAKEOPTS=\"-j$(nproc)\"" >> ${makeconf} - - # Packages optimizations - echo "USE=\"${packages_optimizations[*]}\"" >> ${makeconf} - - # compiler optimizations - echo "CFLAGS=\"${compiler_optimizations[*]}\"" >> ${makeconf} - echo 'CXXFLAGS="${CFLAGS}"' >> ${makeconf} - - # remove conflicting packages - emerge -Cv $(echo "${conflicting_packages[*]}") - - # Get the latest systemd portage profile and set it - systemd_profile=$(profile-config list | grep stable | grep -E "[[:digit:]]/systemd" | xargs | cut -d' ' -f2) - profile-config set "${systemd_profile}" - - # Install build dependencies - emerge --newuse $(echo "${build_dependencies[*]}") - - quickpkg --include-unmodified-config=y "*/*" - - # Install needed packages excluding conflicting packages - ROOT=${ROOTFS_DIR} emerge --exclude "$(echo "${conflicting_packages[*]}")" --newuse -k ${PACKAGES} - - pushd ${ROOTFS_DIR} - - # systemd will need this library - cp /usr/lib/gcc/x86_64-pc-linux-gnu/*/libgcc_s.so* lib64/ - - # Clean up the rootfs. there are things that we don't need - rm -rf etc/{udev,X11,kernel,runlevels,terminfo,init.d} - rm -rf var/lib/{gentoo,portage} - rm -rf var/{db,cache} - rm -rf usr/share/* - rm -rf usr/lib/{udev,gconv,kernel} - rm -rf usr/{include,local} - rm -rf usr/lib64/gconv - rm -rf lib/{udev,gentoo} - - # Make sure important directories exist in the rootfs - ln -s ../run var/run - mkdir -p proc opt sys dev home root - - popd -} - -before_starting_container() { - gentoo_portage_image="gentoo/portage" - - if [ "${OS_VERSION}" = "latest" ];then - ${container_engine} pull "${gentoo_portage_image}:latest" - OS_VERSION=$(docker image inspect -f {{.Created}} ${gentoo_portage_image} | cut -dT -f1 | sed 's|-||g') - else - ${container_engine} pull "${gentoo_portage_image}:${OS_VERSION}" - fi - - # create portage volume and container - ${container_engine} create -v /usr/portage --name "${gentoo_portage_container}" "${gentoo_portage_image}" /bin/true -} - -after_stopping_container() { - # Get the list of volumes - volumes="" - for i in $(seq $(${container_engine} inspect -f "{{len .Mounts}}" "${gentoo_portage_container}")); do - volumes+="$(${container_engine} inspect -f "{{(index .Mounts $((i-1))).Name}}" "${gentoo_portage_container}") " - done - - # remove portage container - ${container_engine} rm -f "${gentoo_portage_container}" - sudo rm -rf "${gentoo_local_portage_dir}" - - # remove portage volumes - ${container_engine} volume rm -f ${volumes} -} diff --git a/tools/osbuilder/rootfs-builder/rootfs.sh b/tools/osbuilder/rootfs-builder/rootfs.sh index ce17ba6cf5..ca804b91d1 100755 --- a/tools/osbuilder/rootfs-builder/rootfs.sh +++ b/tools/osbuilder/rootfs-builder/rootfs.sh @@ -516,10 +516,6 @@ EOT mkdir -p "${ROOTFS_DIR}/etc" case "${distro}" in - "gentoo") - chrony_conf_file="${ROOTFS_DIR}/etc/chrony/chrony.conf" - chrony_systemd_service="${ROOTFS_DIR}/lib/systemd/system/chronyd.service" - ;; "ubuntu" | "debian") echo "I am ubuntu or debian" chrony_conf_file="${ROOTFS_DIR}/etc/chrony/chrony.conf" diff --git a/tools/osbuilder/rootfs-builder/suse/Dockerfile.in b/tools/osbuilder/rootfs-builder/suse/Dockerfile.in deleted file mode 100644 index b86086a7df..0000000000 --- a/tools/osbuilder/rootfs-builder/suse/Dockerfile.in +++ /dev/null @@ -1,20 +0,0 @@ -# -# Copyright (c) 2018 SUSE LLC -# -# SPDX-License-Identifier: Apache-2.0 - -ARG IMAGE_REGISTRY=docker.io -#suse: docker image to be used to create a rootfs -#@OS_VERSION@: Docker image version to build this dockerfile -FROM ${IMAGE_REGISTRY}/opensuse/leap:15.0 - -# This dockerfile needs to provide all the componets need to build a rootfs -# Install any package need to create a rootfs (package manager, extra tools) - -COPY install-packages.sh config.sh / -# RUN commands -RUN chmod +x /install-packages.sh; /install-packages.sh - -# This will install the proper packages to build Kata components -@INSTALL_MUSL@ -@INSTALL_RUST@ diff --git a/tools/osbuilder/rootfs-builder/suse/config.sh b/tools/osbuilder/rootfs-builder/suse/config.sh deleted file mode 100644 index 1ab7402bfc..0000000000 --- a/tools/osbuilder/rootfs-builder/suse/config.sh +++ /dev/null @@ -1,58 +0,0 @@ -# -# Copyright (c) 2018 SUSE LLC -# -# SPDX-License-Identifier: Apache-2.0 - -# May also be "Tumbleweed" -OS_DISTRO="Leap" - -# Leave this empty for distro "Tumbleweed" -OS_VERSION=${OS_VERSION:-15.0} - -OS_IDENTIFIER="$OS_DISTRO${OS_VERSION:+:$OS_VERSION}" - -# Extra packages to install in the rootfs -PACKAGES="systemd coreutils libudev1" - -# http or https -REPO_TRANSPORT="https" - -# Can specify an alternative domain -REPO_DOMAIN="download.opensuse.org" - -# Init process must be one of {systemd,kata-agent} -INIT_PROCESS=systemd -# List of zero or more architectures to exclude from build, -# as reported by `uname -m` -ARCH_EXCLUDE_LIST=() - -############################################################################### -# -# NOTE: you probably dont need to edit things below this -# - -SUSE_URL_BASE="${REPO_TRANSPORT}://${REPO_DOMAIN}" -SUSE_PATH_OSS="/distribution/${OS_DISTRO,,}/$OS_VERSION/repo/oss" -SUSE_PATH_UPDATE="/update/${OS_DISTRO,,}/$OS_VERSION/oss" - -arch="$(uname -m)" -case "$arch" in - x86_64) - REPO_URL_PORT="" - ;; - ppc|ppc64le) - REPO_URL_PORT="/ports/ppc" - ;; - aarch64) - REPO_URL_PORT="/ports/aarch64" - ;; - *) - die "Unsupported architecture: $arch" - ;; -esac -SUSE_FULLURL_OSS="${SUSE_URL_BASE}${REPO_URL_PORT}${SUSE_PATH_OSS}" -SUSE_FULLURL_UPDATE="${SUSE_URL_BASE}${SUSE_PATH_UPDATE}" - -if [ -z "${REPO_URL:-}" ]; then - REPO_URL="$SUSE_FULLURL_OSS" -fi diff --git a/tools/osbuilder/rootfs-builder/suse/config.xml b/tools/osbuilder/rootfs-builder/suse/config.xml deleted file mode 100644 index a921475296..0000000000 --- a/tools/osbuilder/rootfs-builder/suse/config.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - SUSE - mvedovati@suse.com - openSUSE rootfs for Kata Containers guest vm - - - 1.0.0 - zypper - en_US - us - true - - - - - - - - - - - - - - - - - - - - - - diff --git a/tools/osbuilder/rootfs-builder/suse/install-packages.sh b/tools/osbuilder/rootfs-builder/suse/install-packages.sh deleted file mode 100644 index 2652df1c98..0000000000 --- a/tools/osbuilder/rootfs-builder/suse/install-packages.sh +++ /dev/null @@ -1,49 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2018 SUSE LLC -# -# SPDX-License-Identifier: Apache-2.0 - -set -euo pipefail - -source config.sh - -removeRepos=(repo-non-oss repo-update-non-oss repo-oss repo-update) - -for r in ${removeRepos[@]}; do - zypper --non-interactive removerepo $r -done - -zypper --non-interactive addrepo ${SUSE_FULLURL_OSS} osbuilder-oss -zypper --non-interactive addrepo ${SUSE_FULLURL_UPDATE} osbuilder-update - - -# Workaround for zypper slowdowns observed when running inside -# a container: see https://github.com/openSUSE/zypper/pull/209 -# The fix is upstream but it will take a while before landing -# in Leap -ulimit -n 1024 -zypper --non-interactive refresh -zypper --non-interactive install --no-recommends --force-resolution \ - autoconf \ - automake \ - binutils \ - coreutils \ - curl \ - gcc \ - gcc-c++ \ - git \ - glibc-devel \ - glibc-devel-static \ - glibc-utils \ - libstdc++-devel \ - linux-glibc-devel \ - m4 \ - make \ - python3-kiwi \ - sed \ - tar \ - vim \ - which -zypper --non-interactive clean --all - diff --git a/tools/osbuilder/rootfs-builder/suse/rootfs_lib.sh b/tools/osbuilder/rootfs-builder/suse/rootfs_lib.sh deleted file mode 100644 index 216f90a2f4..0000000000 --- a/tools/osbuilder/rootfs-builder/suse/rootfs_lib.sh +++ /dev/null @@ -1,76 +0,0 @@ -# -# Copyright (c) 2018 SUSE LLC -# -# SPDX-License-Identifier: Apache-2.0 - -# - Arguments -# rootfs_dir=$1 -# -# - Optional environment variables -# -# EXTRA_PKGS: Variable to add extra PKGS provided by the user -# -# BIN_AGENT: Name of the Kata-Agent binary -# -# REPO_URL: URL to distribution repository ( should be configured in -# config.sh file) -# -# Any other configuration variable for a specific distro must be added -# and documented on its own config.sh -# -# - Expected result -# -# rootfs_dir populated with rootfs pkgs -# It must provide a binary in /sbin/init -# -# Note: For some distros, the build_rootfs() function provided in scripts/lib.sh -# will suffice. If a new distro is introduced with a special requirement, -# then, a rootfs_builder//rootfs_lib.sh file should be created -# using this template. - -build_rootfs() { - # Mandatory - local ROOTFS_DIR=$1 - - #Name of the Kata-Agent binary - local BIN_AGENT=${BIN_AGENT} - - # In case of support EXTRA packages, use it to allow - # users add more packages to the base rootfs - local EXTRA_PKGS=${EXTRA_PKGS:-} - - #PATH where files this script is placed - #Use it to refer to files in the same directory - #Exmaple: ${CONFIG_DIR}/foo - local CONFIG_DIR=${CONFIG_DIR} - - # Populate ROOTFS_DIR - # Must provide /sbin/init and /bin/${BIN_AGENT} - if [ -e "$ROOTFS_DIR" ] && ! [ -z "$(ls -A $ROOTFS_DIR)" ]; then - echo "ERROR: $ROOTFS_DIR is not empty" - exit 1 - fi - - local addPackages="" - for p in $PACKAGES $EXTRA_PKGS; do - addPackages+=" --add-package=$p" - done - - # set-repo format: - # man kiwi::system::build for details - local setRepo=" --set-repo $REPO_URL,rpm-md,$OS_IDENTIFIER,99,false,false" - - # Workaround for zypper slowdowns observed when running inside - # a container: see https://github.com/openSUSE/zypper/pull/209 - # The fix is upstream but it will take a while before landing - # in Leap - ulimit -n 1024 - kiwi system prepare \ - --description $CONFIG_DIR \ - --allow-existing-root \ - --root $ROOTFS_DIR \ - $addPackages \ - $setRepo - install -d $ROOTFS_DIR/lib/systemd - ln -s /usr/lib/systemd/systemd $ROOTFS_DIR/lib/systemd/systemd -} diff --git a/versions.yaml b/versions.yaml index c60f334ae1..aed5dc1a9b 100644 --- a/versions.yaml +++ b/versions.yaml @@ -120,7 +120,7 @@ assets: name: "ubuntu" version: "latest" ppc64le: - name: "centos" + name: "ubuntu" version: "latest" s390x: name: "ubuntu"