mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-07-31 15:25:26 +00:00
Merge pull request #4547 from GabyCT/topic/removeunuseddocker
packaging: Remove unused kata docker configure script
This commit is contained in:
commit
ad055235a5
@ -1,146 +0,0 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2019 Intel Corporation
|
||||
#
|
||||
# SPDX-License-Identifier: Apache-2.0
|
||||
#
|
||||
|
||||
# Description: Script to configure Docker for the static
|
||||
# version of Kata Containers.
|
||||
|
||||
[ -z "${DEBUG}" ] || set -x
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
docker_config_dir="/etc/docker"
|
||||
docker_config_file="${docker_config_file:-${docker_config_dir}/daemon.json}"
|
||||
|
||||
# The static version of Kata Containers is entirely contained within
|
||||
# this directory.
|
||||
readonly static_base_dir="/opt/kata"
|
||||
|
||||
# Path to runtime in static archive file
|
||||
readonly runtime_path="${static_base_dir}/bin/kata-runtime"
|
||||
|
||||
die()
|
||||
{
|
||||
local msg="$*"
|
||||
echo >&2 "ERROR: $msg"
|
||||
exit 1
|
||||
}
|
||||
|
||||
info()
|
||||
{
|
||||
local msg="$*"
|
||||
echo >&2 "INFO: $msg"
|
||||
}
|
||||
|
||||
configure_docker()
|
||||
{
|
||||
local file="$1"
|
||||
[ -z "$file" ] && die "need file"
|
||||
|
||||
mkdir -p "${docker_config_dir}"
|
||||
|
||||
if [ -e "$docker_config_file" ]
|
||||
then
|
||||
local today=$(date '+%Y-%m-%d')
|
||||
local backup="${docker_config_file}.${today}"
|
||||
|
||||
info "Backing up original Docker config file '$docker_config_file' to '$backup'"
|
||||
|
||||
sudo cp "${docker_config_file}" "${docker_config_file}.${today}"
|
||||
else
|
||||
# Create a minimal valid JSON document
|
||||
echo "{}" > "${docker_config_file}"
|
||||
fi
|
||||
|
||||
local config_files=$(tar tvf "$file" |\
|
||||
grep "/configuration-.*\.toml" |\
|
||||
grep -v -- '->' |\
|
||||
awk '{print $NF}' |\
|
||||
sed 's/^\.//g' || true)
|
||||
|
||||
[ -z "$config_files" ] && die "cannot find any configuration files in '$file'"
|
||||
|
||||
local config
|
||||
local -a runtimes
|
||||
|
||||
for config in $(echo "$config_files" | tr '\n' ' ')
|
||||
do
|
||||
local runtime
|
||||
runtime=$(echo "$config" |\
|
||||
awk -F \/ '{print $NF}' |\
|
||||
sed -e 's/configuration/kata/g' -e 's/\.toml//g')
|
||||
|
||||
runtimes+=("$runtime")
|
||||
|
||||
local result
|
||||
result=$(cat "$docker_config_file" |\
|
||||
jq \
|
||||
--arg config "$config" \
|
||||
--arg runtime "$runtime" \
|
||||
--arg runtime_path "$runtime_path" \
|
||||
'.runtimes[$runtime] = {path: $runtime_path, "runtimeArgs": ["--config", $config]}')
|
||||
|
||||
echo "$result" > "$docker_config_file"
|
||||
done
|
||||
|
||||
info "Validating $docker_config_file"
|
||||
|
||||
jq -S . "$docker_config_file" &>/dev/null
|
||||
|
||||
info "Restarting Docker to apply new configuration"
|
||||
|
||||
$chronic sudo systemctl restart docker
|
||||
|
||||
info "Docker configured for the following additional runtimes: ${runtimes[@]}"
|
||||
}
|
||||
|
||||
setup()
|
||||
{
|
||||
source "/etc/os-release" || source "/usr/lib/os-release"
|
||||
|
||||
# Used to manipulate $docker_config_file
|
||||
local pkg="jq"
|
||||
|
||||
case "$ID" in
|
||||
opensuse*) distro="opensuse" ;;
|
||||
*) distro="$ID" ;;
|
||||
esac
|
||||
|
||||
# Use chronic(1) if available
|
||||
chronic=
|
||||
command -v chronic && chronic=chronic
|
||||
|
||||
if command -v "$pkg" &>/dev/null
|
||||
then
|
||||
return 0
|
||||
fi
|
||||
|
||||
info "Cannot find $pkg command so installing package"
|
||||
|
||||
case "$distro" in
|
||||
centos|rhel) $chronic sudo -E yum -y install "$pkg" ;;
|
||||
debian|ubuntu) $chronic sudo -E apt-get --no-install-recommends install -y "$pkg" ;;
|
||||
fedora) $chronic sudo -E dnf -y install "$pkg" ;;
|
||||
opensuse|sles) $chronic sudo -E zypper -y install "$pkg" ;;
|
||||
*) die "do not know how to install command $pkg' for distro '$distro'" ;;
|
||||
esac
|
||||
}
|
||||
|
||||
main()
|
||||
{
|
||||
local file="$1"
|
||||
[ -z "$file" ] && die "need full path to Kata Containers static archive file"
|
||||
|
||||
echo "$file" | grep -q "^kata-static-.*\.tar.xz" || die "invalid file: '$file'"
|
||||
|
||||
[ $(id -u) -eq 0 ] || die "must be run as root"
|
||||
|
||||
setup
|
||||
|
||||
configure_docker "$file"
|
||||
}
|
||||
|
||||
main "$@"
|
Loading…
Reference in New Issue
Block a user