From 8cb4238b4681f7a5752ebffd43d7cc3520324171 Mon Sep 17 00:00:00 2001 From: "James O. D. Hunt" Date: Mon, 12 Jun 2023 09:24:09 +0100 Subject: [PATCH] packaging: Remove snap package Nobody has volunteered to maintain the (currently broken) snap build, so remove it. Fixes: #6769. Signed-off-by: James O. D. Hunt --- .github/workflows/snap-release.yaml | 53 ------ .github/workflows/snap.yaml | 37 ---- README.md | 2 - docs/install/README.md | 22 --- ...ers-3.0-rust-runtime-installation-guide.md | 3 - docs/install/snap-installation-guide.md | 82 --------- snap/local/README.md | 101 ----------- snap/local/snap-common.sh | 114 ------------ snap/snapcraft.yaml | 170 ------------------ src/runtime/README.md | 2 - tools/packaging/.gitignore | 2 - tools/packaging/Makefile | 10 +- tools/packaging/README.md | 4 - tools/packaging/kernel/README.md | 3 +- 14 files changed, 2 insertions(+), 603 deletions(-) delete mode 100644 .github/workflows/snap-release.yaml delete mode 100644 .github/workflows/snap.yaml delete mode 100644 docs/install/snap-installation-guide.md delete mode 100644 snap/local/README.md delete mode 100644 snap/local/snap-common.sh delete mode 100644 snap/snapcraft.yaml diff --git a/.github/workflows/snap-release.yaml b/.github/workflows/snap-release.yaml deleted file mode 100644 index 4a12ce8d7500..000000000000 --- a/.github/workflows/snap-release.yaml +++ /dev/null @@ -1,53 +0,0 @@ -name: Release Kata in snapcraft store -on: - push: - tags: - - '[0-9]+.[0-9]+.[0-9]+*' - -env: - SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.snapcraft_token }} - -jobs: - release-snap: - runs-on: ubuntu-20.04 - steps: - - name: Check out Git repository - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Install Snapcraft - run: | - # Required to avoid snapcraft install failure - sudo chown root:root / - - # "--classic" is needed for the GitHub action runner - # environment. - sudo snap install snapcraft --classic - - # Allow other parts to access snap binaries - echo /snap/bin >> "$GITHUB_PATH" - - - name: Build snap - run: | - # Removing man-db, workflow kept failing, fixes: #4480 - sudo apt -y remove --purge man-db - sudo apt-get update - sudo apt-get install -y git git-extras - kata_url="https://github.com/kata-containers/kata-containers" - latest_version=$(git ls-remote --tags ${kata_url} | egrep -o "refs.*" | egrep -v "\-alpha|\-rc|{}" | egrep -o "[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+" | sort -V -r | head -1) - current_version="$(echo ${GITHUB_REF} | cut -d/ -f3)" - # Check semantic versioning format (x.y.z) and if the current tag is the latest tag - if echo "${current_version}" | grep -q "^[[:digit:]]\+\.[[:digit:]]\+\.[[:digit:]]\+$" && echo -e "$latest_version\n$current_version" | sort -C -V; then - # Current version is the latest version, build it - snapcraft snap --debug --destructive-mode - fi - - - name: Upload snap - run: | - snap_version="$(echo ${GITHUB_REF} | cut -d/ -f3)" - snap_file="kata-containers_${snap_version}_amd64.snap" - # Upload the snap if it exists - if [ -f ${snap_file} ]; then - snapcraft upload --release=stable ${snap_file} - fi diff --git a/.github/workflows/snap.yaml b/.github/workflows/snap.yaml deleted file mode 100644 index ac163fa2ece0..000000000000 --- a/.github/workflows/snap.yaml +++ /dev/null @@ -1,37 +0,0 @@ -name: snap CI -on: - pull_request: - types: - - opened - - synchronize - - reopened - - edited - paths-ignore: [ '**.md', '**.png', '**.jpg', '**.jpeg', '**.svg', '/docs/**' ] - -jobs: - test: - runs-on: ubuntu-20.04 - steps: - - name: Check out - if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} - uses: actions/checkout@v3 - with: - fetch-depth: 0 - - - name: Install Snapcraft - if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} - run: | - # Required to avoid snapcraft install failure - sudo chown root:root / - - # "--classic" is needed for the GitHub action runner - # environment. - sudo snap install snapcraft --classic - - # Allow other parts to access snap binaries - echo /snap/bin >> "$GITHUB_PATH" - - - name: Build snap - if: ${{ !contains(github.event.pull_request.labels.*.name, 'force-skip-ci') }} - run: | - snapcraft snap --debug --destructive-mode diff --git a/README.md b/README.md index 05933bb5823d..b531251943c3 100644 --- a/README.md +++ b/README.md @@ -146,8 +146,6 @@ The table below lists the remaining parts of the project: Kata Containers is now [available natively for most distributions](docs/install/README.md#packaged-installation-methods). -However, packaging scripts and metadata are still used to generate [snap](snap/local) and GitHub releases. See -the [components](#components) section for further details. ## Glossary of Terms diff --git a/docs/install/README.md b/docs/install/README.md index 8a86bc7c87c2..5fb1c3a03aef 100644 --- a/docs/install/README.md +++ b/docs/install/README.md @@ -19,7 +19,6 @@ Packaged installation methods uses your distribution's native package format (su |------------------------------------------------------|----------------------------------------------------------------------------------------------|-------------------|-----------------------------------------------------------------------------------------------| | [Using kata-deploy](#kata-deploy-installation) | The preferred way to deploy the Kata Containers distributed binaries on a Kubernetes cluster | **No!** | Best way to give it a try on kata-containers on an already up and running Kubernetes cluster. | | [Using official distro packages](#official-packages) | Kata packages provided by Linux distributions official repositories | yes | Recommended for most users. | -| ~~[Using snap](#snap-installation)~~ | ~~Easy to install~~ | ~~yes~~ | **Snap is unmaintained!** ~~Good alternative to official distro packages.~~ | | [Automatic](#automatic-installation) | Run a single command to install a full system | **No!** | For those wanting the latest release quickly. | | [Manual](#manual-installation) | Follow a guide step-by-step to install a working system | **No!** | For those who want the latest release with more control. | | [Build from source](#build-from-source-installation) | Build the software components manually | **No!** | Power users and developers only. | @@ -42,27 +41,6 @@ Kata packages are provided by official distribution repositories for: | [CentOS](centos-installation-guide.md) | 8 | | [Fedora](fedora-installation-guide.md) | 34 | -### Snap Installation - -> **WARNING:** -> -> The Snap package method is **unmaintained** and only provides an old -> version of Kata Containers: -> The [latest Kata Containers snap](https://snapcraft.io/kata-containers) -> provides Kata Containers -> [version 2.4.2](https://github.com/kata-containers/kata-containers/releases/tag/2.4.2) -> but the latest stable Kata Containers release at the time of writing is -> [version 3.1.0](https://github.com/kata-containers/kata-containers/releases/tag/3.1.0). -> -> We recommend strongly that you switch to an alternative Kata Containers installation method. -> -> See: https://github.com/kata-containers/kata-containers/issues/6769 -> for further details. - -~~The snap installation is available for all distributions which support `snapd`.~~ - -~~[Use snap](snap-installation-guide.md) to install Kata Containers from https://snapcraft.io. ~~ - ### Automatic Installation [Use `kata-manager`](/utils/README.md) to automatically install a working Kata Containers system. diff --git a/docs/install/kata-containers-3.0-rust-runtime-installation-guide.md b/docs/install/kata-containers-3.0-rust-runtime-installation-guide.md index 4cfcb392d453..bb1732292c37 100644 --- a/docs/install/kata-containers-3.0-rust-runtime-installation-guide.md +++ b/docs/install/kata-containers-3.0-rust-runtime-installation-guide.md @@ -26,7 +26,6 @@ architectures: |------------------------------------------------------|----------------------------------------------------------------------------------------------|-------------------|-----------------------------------------------------------------------------------------------|----------- | | [Using kata-deploy](#kata-deploy-installation) | The preferred way to deploy the Kata Containers distributed binaries on a Kubernetes cluster | **No!** | Best way to give it a try on kata-containers on an already up and running Kubernetes cluster. | Yes | | [Using official distro packages](#official-packages) | Kata packages provided by Linux distributions official repositories | yes | Recommended for most users. | No | -| [Using snap](#snap-installation) | Easy to install | yes | Good alternative to official distro packages. | No | | [Automatic](#automatic-installation) | Run a single command to install a full system | **No!** | For those wanting the latest release quickly. | No | | [Manual](#manual-installation) | Follow a guide step-by-step to install a working system | **No!** | For those who want the latest release with more control. | No | | [Build from source](#build-from-source-installation) | Build the software components manually | **No!** | Power users and developers only. | Yes | @@ -36,8 +35,6 @@ architectures: Follow the [`kata-deploy`](../../tools/packaging/kata-deploy/README.md). ### Official packages `ToDo` -### Snap Installation -`ToDo` ### Automatic Installation `ToDo` ### Manual Installation diff --git a/docs/install/snap-installation-guide.md b/docs/install/snap-installation-guide.md deleted file mode 100644 index acf2e637e7ad..000000000000 --- a/docs/install/snap-installation-guide.md +++ /dev/null @@ -1,82 +0,0 @@ -# Kata Containers snap package - -> **WARNING:** -> -> The Snap package method is **unmaintained** and only provides an old -> version of Kata Containers: -> The [latest Kata Containers snap](https://snapcraft.io/kata-containers) -> provides Kata Containers -> [version 2.4.2](https://github.com/kata-containers/kata-containers/releases/tag/2.4.2) -> but the latest stable Kata Containers release at the time of writing is -> [version 3.1.0](https://github.com/kata-containers/kata-containers/releases/tag/3.1.0). -> -> We recommend strongly that you switch to an alternative Kata Containers installation method. -> -> See: https://github.com/kata-containers/kata-containers/issues/6769 -> for further details. - -## Install Kata Containers - -Kata Containers can be installed in any Linux distribution that supports -[snapd](https://docs.snapcraft.io/installing-snapd). - -Run the following command to install **Kata Containers**: - -> **WARNING:** -> -> The Snap package method is **unmaintained** and only provides an old -> version of Kata Containers: -> The [latest Kata Containers snap](https://snapcraft.io/kata-containers) -> provides Kata Containers -> [version 2.4.2](https://github.com/kata-containers/kata-containers/releases/tag/2.4.2) -> but the latest stable Kata Containers release at the time of writing is -> [version 3.1.0](https://github.com/kata-containers/kata-containers/releases/tag/3.1.0). -> -> We recommend strongly that you switch to an alternative Kata Containers installation method. -> -> See: https://github.com/kata-containers/kata-containers/issues/6769 -> for further details. - -```sh -$ sudo snap install kata-containers --stable --classic -``` - -## Configure Kata Containers - -By default Kata Containers snap image is mounted at `/snap/kata-containers` as a -read-only file system, therefore default configuration file can not be edited. -Fortunately Kata Containers supports loading a configuration file from another -path than the default. - -```sh -$ sudo mkdir -p /etc/kata-containers -$ sudo cp /snap/kata-containers/current/usr/share/defaults/kata-containers/configuration.toml /etc/kata-containers/ -$ $EDITOR /etc/kata-containers/configuration.toml -``` - -## Integration with shim v2 Container Engines - -The Container engine daemon (`cri-o`, `containerd`, etc) needs to be able to find the -`containerd-shim-kata-v2` binary to allow Kata Containers to be created. -Run the following command to create a symbolic link to the shim v2 binary. - -```sh -$ sudo ln -sf /snap/kata-containers/current/usr/bin/containerd-shim-kata-v2 /usr/local/bin/containerd-shim-kata-v2 -``` - -Once the symbolic link has been created and the engine daemon configured, `io.containerd.kata.v2` -can be used as runtime. - -Read the following documents to know how to run Kata Containers 2.x with `containerd`. - -* [How to use Kata Containers and Containerd](../how-to/containerd-kata.md) -* [Install Kata Containers with containerd](./container-manager/containerd/containerd-install.md) - - -## Remove Kata Containers snap package - -Run the following command to remove the Kata Containers snap: - -```sh -$ sudo snap remove kata-containers -``` diff --git a/snap/local/README.md b/snap/local/README.md deleted file mode 100644 index 4b449ef177de..000000000000 --- a/snap/local/README.md +++ /dev/null @@ -1,101 +0,0 @@ -# Kata Containers snap image - -This directory contains the resources needed to build the Kata Containers -[snap][1] image. - -## Initial setup - -Kata Containers can be installed in any Linux distribution that supports -[snapd](https://docs.snapcraft.io/installing-snapd). For this example, we -assume Ubuntu as your base distro. -```sh -$ sudo apt-get --no-install-recommends install -y apt-utils ca-certificates snapd snapcraft -``` - -## Install snap - -You can install the Kata Containers snap from the [snapcraft store][8] or by running the following command: - -```sh -$ sudo snap install kata-containers --classic -``` - -## Build and install snap image - -Run the command below which will use the packaging Makefile to build the snap image: - -```sh -$ make -C tools/packaging snap -``` - -> **Warning:** -> -> By default, `snapcraft` will create a clean virtual machine -> environment to build the snap in using the `multipass` tool. -> -> However, `multipass` is silently disabled when `--destructive-mode` is -> used. -> -> Since building the Kata Containers package currently requires -> `--destructive-mode`, the snap will be built using the host -> environment. To avoid parts of the build auto-detecting additional -> features to enable (for example for QEMU), we recommend that you -> only run the snap build in a minimal host environment. - -To install the resulting snap image, snap must be put in [classic mode][3] and the -security confinement must be disabled (`--classic`). Also since the resulting snap -has not been signed the verification of signature must be omitted (`--dangerous`). - -```sh -$ sudo snap install --classic --dangerous "kata-containers_${version}_${arch}.snap" -``` - -Replace `${version}` with the current version of Kata Containers and `${arch}` with -the system architecture. - -## Configure Kata Containers - -By default Kata Containers snap image is mounted at `/snap/kata-containers` as a -read-only file system, therefore default configuration file can not be edited. -Fortunately [`kata-runtime`][4] supports loading a configuration file from another -path than the default. - -```sh -$ sudo mkdir -p /etc/kata-containers -$ sudo cp /snap/kata-containers/current/usr/share/defaults/kata-containers/configuration.toml /etc/kata-containers/ -$ $EDITOR /etc/kata-containers/configuration.toml -``` - -## Integration with docker and Kubernetes - -The path to the runtime provided by the Kata Containers snap image is -`/snap/kata-containers/current/usr/bin/kata-runtime`. You should use it to -run Kata Containers with [docker][9] and [Kubernetes][10]. - -## Remove snap - -You can remove the Kata Containers snap by running the following command: - -```sh -$ sudo snap remove kata-containers -``` - -## Limitations - -The [miniOS image][2] is not included in the snap image as it is not possible for -QEMU to open a guest RAM backing store on a read-only filesystem. Fortunately, -you can start Kata Containers with a Linux initial RAM disk (initrd) that is -included in the snap image. If you want to use the miniOS image instead of initrd, -then a new configuration file can be [created](#configure-kata-containers) -and [configured][7]. - -[1]: https://docs.snapcraft.io/snaps/intro -[2]: ../../docs/design/architecture/README.md#root-filesystem-image -[3]: https://docs.snapcraft.io/reference/confinement#classic -[4]: https://github.com/kata-containers/kata-containers/tree/main/src/runtime#configuration -[5]: https://docs.docker.com/engine/reference/commandline/dockerd -[6]: ../../docs/install/docker/ubuntu-docker-install.md -[7]: ../../docs/Developer-Guide.md#configure-to-use-initrd-or-rootfs-image -[8]: https://snapcraft.io/kata-containers -[9]: ../../docs/Developer-Guide.md#run-kata-containers-with-docker -[10]: ../../docs/Developer-Guide.md#run-kata-containers-with-kubernetes diff --git a/snap/local/snap-common.sh b/snap/local/snap-common.sh deleted file mode 100644 index 0a2a18e1519c..000000000000 --- a/snap/local/snap-common.sh +++ /dev/null @@ -1,114 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright (c) 2022 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 - -# Description: Idempotent script to be sourced by all parts in a -# snapcraft config file. - -set -o errexit -set -o nounset -set -o pipefail - -# XXX: Bash-specific code. zsh doesn't support this option and that *does* -# matter if this script is run sourced... since it'll be using zsh! ;) -[ -n "$BASH_VERSION" ] && set -o errtrace - -[ -n "${DEBUG:-}" ] && set -o xtrace - -die() -{ - echo >&2 "ERROR: $0: $*" -} - -[ -n "${SNAPCRAFT_STAGE:-}" ] ||\ - die "must be sourced from a snapcraft config file" - -snap_yq_version=3.4.1 - -snap_common_install_yq() -{ - export yq="${SNAPCRAFT_STAGE}/bin/yq" - - local yq_pkg - yq_pkg="github.com/mikefarah/yq" - - local yq_url - yq_url="https://${yq_pkg}/releases/download/${snap_yq_version}/yq_${goos}_${goarch}" - curl -o "${yq}" -L "${yq_url}" - chmod +x "${yq}" -} - -# Function that should be called for each snap "part" in -# snapcraft.yaml. -snap_common_main() -{ - # Architecture - arch="$(uname -m)" - - case "${arch}" in - aarch64) - goarch="arm64" - qemu_arch="${arch}" - ;; - - ppc64le) - goarch="ppc64le" - qemu_arch="ppc64" - ;; - - s390x) - goarch="${arch}" - qemu_arch="${arch}" - ;; - - x86_64) - goarch="amd64" - qemu_arch="${arch}" - ;; - - *) die "unsupported architecture: ${arch}" ;; - esac - - dpkg_arch=$(dpkg --print-architecture) - - # golang - # - # We need the O/S name in golang format, but since we don't - # know if the godeps part has run, we don't know if golang is - # available yet, hence fall back to a standard system command. - goos="$(go env GOOS &>/dev/null || true)" - [ -z "$goos" ] && goos=$(uname -s|tr '[A-Z]' '[a-z]') - - export GOROOT="${SNAPCRAFT_STAGE}" - export GOPATH="${GOROOT}/gopath" - export GO111MODULE="auto" - - mkdir -p "${GOPATH}/bin" - export PATH="${GOPATH}/bin:${PATH}" - - # Proxy - export http_proxy="${http_proxy:-}" - export https_proxy="${https_proxy:-}" - - # Binaries - mkdir -p "${SNAPCRAFT_STAGE}/bin" - - export PATH="$PATH:${SNAPCRAFT_STAGE}/bin" - - # YAML query tool - export yq="${SNAPCRAFT_STAGE}/bin/yq" - - # Kata paths - export kata_dir=$(printf "%s/src/github.com/%s/%s" \ - "${GOPATH}" \ - "${SNAPCRAFT_PROJECT_NAME}" \ - "${SNAPCRAFT_PROJECT_NAME}") - - export versions_file="${kata_dir}/versions.yaml" - - [ -n "${yq:-}" ] && [ -x "${yq:-}" ] || snap_common_install_yq -} - -snap_common_main diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml deleted file mode 100644 index 4bbb8e0f17a0..000000000000 --- a/snap/snapcraft.yaml +++ /dev/null @@ -1,170 +0,0 @@ -name: kata-containers -website: https://github.com/kata-containers/kata-containers -summary: Build lightweight VMs that seamlessly plug into the containers ecosystem -description: | - Kata Containers is an open source project and community working to build a - standard implementation of lightweight Virtual Machines (VMs) that feel and - perform like containers, but provide the workload isolation and security - advantages of VMs -confinement: classic -adopt-info: metadata -base: core20 - -parts: - metadata: - plugin: nil - prime: - - -* - build-packages: - - git - - git-extras - override-pull: | - source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - - version="9999" - - if echo "${GITHUB_REF:-}" | grep -q -E "^refs/tags"; then - version=$(echo ${GITHUB_REF:-} | cut -d/ -f3) - git checkout ${version} - fi - - snapcraftctl set-grade "stable" - snapcraftctl set-version "${version}" - - mkdir -p $(dirname ${kata_dir}) - ln -sf $(realpath "${SNAPCRAFT_STAGE}/..") ${kata_dir} - - docker: - after: [metadata] - plugin: nil - prime: - - -* - build-packages: - - ca-certificates - - containerd - - curl - - gnupg - - lsb-release - - runc - override-build: | - source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - - curl -fsSL https://download.docker.com/linux/ubuntu/gpg |\ - sudo gpg --batch --yes --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg - distro_codename=$(lsb_release -cs) - echo "deb [arch=${dpkg_arch} signed-by=/usr/share/keyrings/docker-archive-keyring.gpg] https://download.docker.com/linux/ubuntu ${distro_codename} stable" |\ - sudo tee /etc/apt/sources.list.d/docker.list > /dev/null - sudo apt-get -y update - sudo apt-get -y install docker-ce docker-ce-cli containerd.io - - echo "Unmasking docker service" - sudo -E systemctl unmask docker.service || true - sudo -E systemctl unmask docker.socket || true - echo "Adding $USER into docker group" - sudo -E gpasswd -a $USER docker - echo "Starting docker" - # docker may fail to start using "fd://" in docker.service - sudo sed -i 's/fd:\/\//unix:\/\//g' /lib/systemd/system/docker.service - sudo systemctl daemon-reload - sudo -E systemctl start docker || true - - image: - after: [docker] - plugin: nil - override-build: | - source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - - cd "${SNAPCRAFT_PROJECT_DIR}" - sudo -E NO_TTY=true make rootfs-image-tarball - - tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-rootfs-image.tar.xz" - - tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}" - - - sudo -E NO_TTY=true make rootfs-initrd-tarball - - tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-rootfs-initrd.tar.xz" - - tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}" - - - runtime: - after: [docker] - plugin: nil - override-build: | - source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - - cd "${SNAPCRAFT_PROJECT_DIR}" - sudo -E NO_TTY=true make shim-v2-tarball - - tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-shim-v2.tar.xz" - - tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}" - - mkdir -p "${SNAPCRAFT_PART_INSTALL}/usr/bin" - ln -sf "${SNAPCRAFT_PART_INSTALL}/opt/kata/bin/containerd-shim-kata-v2" "${SNAPCRAFT_PART_INSTALL}/usr/bin/containerd-shim-kata-v2" - ln -sf "${SNAPCRAFT_PART_INSTALL}/opt/kata/bin/kata-runtime" "${SNAPCRAFT_PART_INSTALL}/usr/bin/kata-runtime" - ln -sf "${SNAPCRAFT_PART_INSTALL}/opt/kata/bin/kata-collect-data.sh" "${SNAPCRAFT_PART_INSTALL}/usr/bin/kata-collect-data.sh" - - kernel: - after: [docker] - plugin: nil - override-build: | - source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - - cd "${SNAPCRAFT_PROJECT_DIR}" - sudo -E NO_TTY=true make kernel-tarball - - tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-kernel.tar.xz" - - tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}" - - qemu: - plugin: make - after: [docker] - override-build: | - source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - - cd "${SNAPCRAFT_PROJECT_DIR}" - sudo -E NO_TTY=true make qemu-tarball - - tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-qemu.tar.xz" - - tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}" - - virtiofsd: - plugin: nil - after: [docker] - override-build: | - source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - - cd "${SNAPCRAFT_PROJECT_DIR}" - sudo -E NO_TTY=true make virtiofsd-tarball - - tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-virtiofsd.tar.xz" - - tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}" - - cloud-hypervisor: - plugin: nil - after: [docker] - override-build: | - source "${SNAPCRAFT_PROJECT_DIR}/snap/local/snap-common.sh" - - if [ "${arch}" == "aarch64" ] || [ "${arch}" == "x86_64" ]; then - cd "${SNAPCRAFT_PROJECT_DIR}" - sudo -E NO_TTY=true make cloud-hypervisor-tarball - - tarfile="${SNAPCRAFT_PROJECT_DIR}/tools/packaging/kata-deploy/local-build/build/kata-static-cloud-hypervisor.tar.xz" - - tar -xvJpf "${tarfile}" -C "${SNAPCRAFT_PART_INSTALL}" - fi - -apps: - runtime: - command: usr/bin/kata-runtime - shim: - command: usr/bin/containerd-shim-kata-v2 - collect-data: - command: usr/bin/kata-collect-data.sh diff --git a/src/runtime/README.md b/src/runtime/README.md index c8aeec0ce791..d2290e20037a 100644 --- a/src/runtime/README.md +++ b/src/runtime/README.md @@ -32,8 +32,6 @@ to work seamlessly with both Docker and Kubernetes respectively. ## Download and install -[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/kata-containers) - See the [installation guides](../../docs/install/README.md) available for various operating systems. diff --git a/tools/packaging/.gitignore b/tools/packaging/.gitignore index 82abc0533949..2a056e4ba7dd 100644 --- a/tools/packaging/.gitignore +++ b/tools/packaging/.gitignore @@ -1,7 +1,6 @@ *.img *.initrd *.sha256 -*.snap *.tar.gz *.tar.xz *.gz @@ -13,7 +12,6 @@ debian.series parts/ prime/ sha256sums.asc -snap/.snapcraft/ stage/ typescript kata-linux-* diff --git a/tools/packaging/Makefile b/tools/packaging/Makefile index f8444e8f16f2..4bd1e0334216 100644 --- a/tools/packaging/Makefile +++ b/tools/packaging/Makefile @@ -8,13 +8,11 @@ MK_DIR :=$(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))) SED := sed YQ := $(MK_DIR)/yq -SNAPCRAFT_FILE := ../../snap/snapcraft.yaml VERSIONS_YAML_FILE := ../../versions.yaml VERSION_FILE := ../../VERSION export MK_DIR export YQ -export SNAPCRAFT_FILE export VERSION_FILE export VERSIONS_YAML_FILE @@ -25,10 +23,4 @@ test-static-build: $(YQ): @bash -c "source scripts/lib.sh; install_yq $${MK_DIR}" -snap: $(YQ) - @if [ "$$(cat $(VERSION_FILE))" != "$$($(YQ) r $(SNAPCRAFT_FILE) version)" ]; then \ - >&2 echo "Warning: $(SNAPCRAFT_FILE) version is different to upstream $(VERSION_FILE) file"; \ - fi - snapcraft -d --destructive-mode - -.PHONY: test-static-build snap +.PHONY: test-static-build diff --git a/tools/packaging/README.md b/tools/packaging/README.md index 8a31c0a80fa1..b1c7ae594602 100644 --- a/tools/packaging/README.md +++ b/tools/packaging/README.md @@ -12,10 +12,6 @@ Kata build artifacts are available within a container image, created by a [`kata-deploy`](kata-deploy), which make installation of Kata Containers in a running Kubernetes Cluster very straightforward. -## Build a snap package - -See [the snap documentation](../../snap/local). - ## Build static binaries See [the static build documentation](static-build). diff --git a/tools/packaging/kernel/README.md b/tools/packaging/kernel/README.md index 5c8580a68067..32aa7a9e2cc6 100644 --- a/tools/packaging/kernel/README.md +++ b/tools/packaging/kernel/README.md @@ -9,8 +9,7 @@ automates the process to build a kernel for Kata Containers. The `build-kernel.sh` script requires an installed Golang version matching the [component build requirements](../../../docs/Developer-Guide.md#requirements-to-build-individual-components). It also requires [yq](https://github.com/mikefarah/yq) version 3.4.1 -> **Hint**: `snap install yq --channel=v3/stable` \ -> **or** `go install github.com/mikefarah/yq/v3@latest` +> **Hint**: `go install github.com/mikefarah/yq/v3@latest` The Linux kernel scripts further require a few packages (flex, bison, and libelf-dev)