diff --git a/tools/packaging/kata-deploy/README.md b/tools/packaging/kata-deploy/README.md index da7cba6b33..938d7f83a7 100644 --- a/tools/packaging/kata-deploy/README.md +++ b/tools/packaging/kata-deploy/README.md @@ -1,9 +1,5 @@ # `kata-deploy` -* [Docker quick start](#docker-quick-start) - * [Install Kata and configure Docker](#install-kata-and-configure-docker) - * [Run a sample workload utilizing Kata containers](#run-a-sample-workload-utilizing-kata-containers) - * [Remove Kata](#remove-kata) * [Kubernetes quick start](#kubernetes-quick-start) * [Install Kata on a running Kubernetes cluster](#install-kata-on-a-running-kubernetes-cluster) * [Run a sample workload](#run-a-sample-workload) @@ -16,56 +12,11 @@ [`kata-deploy`](.) provides a Dockerfile, which contains all of the binaries and artifacts required to run Kata Containers, as well as reference DaemonSets, which can -be utilized to install Kata Containers for both Docker and on a running Kubernetes cluster. +be utilized to install Kata Containers on a running Kubernetes cluster. Note, installation through DaemonSets successfully installs `katacontainers.io/kata-runtime` on a node only if it uses either containerd or CRI-O CRI-shims. -## Docker quick start - -The `kata-deploy` container image makes use of a script, `kata-deploy-docker`, for installation of -Kata artifacts and configuration of Docker to utilize the runtime. The following volumes are required to be mounted -to aid in this: -- `/opt/kata`: this is where all Kata artifacts are installed on the system -- `/var/run/dbus`, `/run/systemd`: this is require for reloading the the Docker service -- `/etc/docker`: this is required for updating `daemon.json` in order to configure the Kata runtimes in Docker - - -### Install Kata and configure Docker - -To install: - -```sh -$ docker run -v /opt/kata:/opt/kata -v /var/run/dbus:/var/run/dbus -v /run/systemd:/run/systemd -v /etc/docker:/etc/docker -it katadocker/kata-deploy kata-deploy-docker install -``` - -Once complete, `/etc/docker/daemon.json` is updated or created to include the Kata runtimes: `kata-qemu` and `kata-fc`, for utilizing -QEMU and Firecracker, respectively, for the VM isolation layer. - -### Run a sample workload utilizing Kata containers - -Run a QEMU QEMU isolated Kata container: - -```sh -$ docker run --runtime=kata-qemu -itd alpine -``` - -Run a Firecracker isolated Kata container: - -```sh -$ docker run --runtime=kata-fc -itd alpine -``` - -### Remove Kata - -To uninstall: - -```sh -$ docker run -v /opt/kata:/opt/kata -v /var/run/dbus:/var/run/dbus -v /run/systemd:/run/systemd -v /etc/docker:/etc/docker -it katadocker/kata-deploy kata-deploy-docker remove -``` - -After completing, the original `daemon.json`, if it existed, is restored and all Kata artifacts from `/opt/kata` are removed. - ## Kubernetes quick start ### Install Kata on a running Kubernetes cluster diff --git a/tools/packaging/kata-deploy/scripts/kata-deploy-docker.sh b/tools/packaging/kata-deploy/scripts/kata-deploy-docker.sh deleted file mode 100755 index b7a72facdf..0000000000 --- a/tools/packaging/kata-deploy/scripts/kata-deploy-docker.sh +++ /dev/null @@ -1,123 +0,0 @@ -#!/usr/bin/env bash -# Copyright (c) 2019 Intel Corporation -# -# SPDX-License-Identifier: Apache-2.0 -# - -set -o errexit -set -o pipefail -set -o nounset - -conf_file="/etc/docker/daemon.json" -conf_file_backup="${conf_file}.bak" -snippet="${conf_file}.snip" -tmp_file="${conf_file}.tmp" - -# If we fail for any reason a message will be displayed -die() { - msg="$*" - echo "ERROR: $msg" >&2 - exit 1 -} - -function print_usage() { - echo "Usage: $0 [install/remove]" -} - -function install_artifacts() { - echo "copying kata artifacts onto host" - cp -a /opt/kata-artifacts/opt/kata/* /opt/kata/ - chmod +x /opt/kata/bin/* -} - -function configure_docker() { - echo "configuring docker" - - cat < "${tmp_file}" - mv "${tmp_file}" "${conf_file}" - rm "${snippet}" - else - mv "${snippet}" "${conf_file}" - fi - - systemctl daemon-reload - systemctl reload docker -} - -function remove_artifacts() { - echo "deleting kata artifacts" - rm -rf /opt/kata/ -} - -function cleanup_runtime() { - echo "cleanup docker" - rm -f "${conf_file}" - - if [ -f "${conf_file_backup}" ]; then - cp "${conf_file_backup}" "${conf_file}" - fi - systemctl daemon-reload - systemctl reload docker -} - -function main() { - # script requires that user is root - euid=`id -u` - if [[ $euid -ne 0 ]]; then - die "This script must be run as root" - fi - - action=${1:-} - if [ -z $action ]; then - print_usage - die "invalid arguments" - fi - - case $action in - install) - install_artifacts - configure_docker - ;; - remove) - cleanup_runtime - remove_artifacts - ;; - *) - echo invalid arguments - print_usage - ;; - esac -} - - -main $@