#!/usr/bin/env bash # Copyright (c) 2019 Intel Corporation # # SPDX-License-Identifier: Apache-2.0 # set -o errexit set -o pipefail set -o nounset crio_conf_file="/etc/crio/crio.conf" crio_conf_file_backup="${crio_conf_file}.bak" containerd_conf_file="/etc/containerd/config.toml" containerd_conf_file_backup="${containerd_conf_file}.bak" # 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/cleanup/reset]" } function get_container_runtime() { local runtime=$(kubectl describe node $NODE_NAME) if [ "$?" -ne 0 ]; then die "invalid node name" fi echo "$runtime" | awk -F'[:]' '/Container Runtime Version/ {print $2}' | tr -d ' ' } 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_cri_runtime() { case $1 in crio) configure_crio ;; containerd) configure_containerd ;; esac systemctl daemon-reload systemctl restart $1 } function configure_crio() { # Configure crio to use Kata: echo "Add Kata Containers as a supported runtime for CRIO:" # backup the CRIO.conf only if a backup doesn't already exist (don't override original) cp -n "$crio_conf_file" "$crio_conf_file_backup" cat <