Skip to content

Commit

Permalink
Ability to override versions of containerd/runc
Browse files Browse the repository at this point in the history
  • Loading branch information
dims committed Feb 9, 2020
1 parent acd286d commit da024f9
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 11 deletions.
7 changes: 7 additions & 0 deletions cluster/gce/config-default.sh
Expand Up @@ -101,6 +101,13 @@ if [[ "${CONTAINER_RUNTIME}" == "containerd" ]]; then
LOAD_IMAGE_COMMAND=${KUBE_LOAD_IMAGE_COMMAND:-ctr -n=k8s.io images import}
fi

# Ability to inject custom versions (Ubuntu OS images ONLY)
# if KUBE_UBUNTU_INSTALL_CONTAINERD_VERSION or KUBE_UBUNTU_INSTALL_RUNC_VERSION
# is set to empty then we do not override the version(s) and just
# use whatever is in the default installation of containerd package
UBUNTU_INSTALL_CONTAINERD_VERSION=${KUBE_UBUNTU_INSTALL_CONTAINERD_VERSION:-}
UBUNTU_INSTALL_RUNC_VERSION=${KUBE_UBUNTU_INSTALL_RUNC_VERSION:-}

# MASTER_EXTRA_METADATA is the extra instance metadata on master instance separated by commas.
MASTER_EXTRA_METADATA=${KUBE_MASTER_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}}
# MASTER_EXTRA_METADATA is the extra instance metadata on node instance separated by commas.
Expand Down
7 changes: 7 additions & 0 deletions cluster/gce/config-test.sh
Expand Up @@ -107,6 +107,13 @@ if [[ "${CONTAINER_RUNTIME}" == "containerd" ]]; then
LOAD_IMAGE_COMMAND=${KUBE_LOAD_IMAGE_COMMAND:-ctr -n=k8s.io images import}
fi

# Ability to inject custom versions (Ubuntu OS images ONLY)
# if KUBE_UBUNTU_INSTALL_CONTAINERD_VERSION or KUBE_UBUNTU_INSTALL_RUNC_VERSION
# is set to empty then we do not override the version(s) and just
# use whatever is in the default installation of containerd package
UBUNTU_INSTALL_CONTAINERD_VERSION=${KUBE_UBUNTU_INSTALL_CONTAINERD_VERSION:-}
UBUNTU_INSTALL_RUNC_VERSION=${KUBE_UBUNTU_INSTALL_RUNC_VERSION:-}

# MASTER_EXTRA_METADATA is the extra instance metadata on master instance separated by commas.
MASTER_EXTRA_METADATA=${KUBE_MASTER_EXTRA_METADATA:-${KUBE_EXTRA_METADATA:-}}
# MASTER_EXTRA_METADATA is the extra instance metadata on node instance separated by commas.
Expand Down
49 changes: 38 additions & 11 deletions cluster/gce/gci/configure.sh
Expand Up @@ -407,7 +407,7 @@ function load-docker-images {
function install-docker {
# bailout if we are not on ubuntu
if ! command -v apt-get >/dev/null 2>&1; then
echo "Unable to install automatically install docker. Bailing out..."
echo "Unable to automatically install docker. Bailing out..."
return
fi
# Install Docker deps, some of these are already installed in the image but
Expand Down Expand Up @@ -437,12 +437,18 @@ function install-docker {
}

# If we are on ubuntu we can try to install containerd
function install-containerd {
function install-containerd-ubuntu {
# bailout if we are not on ubuntu
if ! command -v apt-get >/dev/null 2>&1; then
echo "Unable to install automatically install docker. Bailing out..."
return
if [[ -z "$(command -v lsb_release)" || $(lsb_release -si) != "Ubuntu" ]]; then
echo "Unable to automatically install containerd in non-ubuntu image. Bailing out..."
exit 2
fi

if [[ $(dpkg --print-architecture) != "amd64" ]]; then
echo "Unable to automatically install containerd in non-amd64 image. Bailing out..."
exit 2
fi

# Install dependencies, some of these are already installed in the image but
# that's fine since they won't re-install and we can reuse the code below
# for another image someday.
Expand All @@ -467,6 +473,16 @@ function install-containerd {
apt-get update && \
apt-get install -y --no-install-recommends containerd
rm -rf /var/lib/apt/lists/*

# Override to latest versions of containerd and runc
systemctl stop containerd
if [[ ! -z "${UBUNTU_INSTALL_CONTAINERD_VERSION:-}" ]]; then
curl -fsSL "https://github.com/containerd/containerd/releases/download/${UBUNTU_INSTALL_CONTAINERD_VERSION}/containerd-${UBUNTU_INSTALL_CONTAINERD_VERSION:1}.linux-amd64.tar.gz" | tar --overwrite -xzv -C /usr/
fi
if [[ ! -z "${UBUNTU_INSTALL_RUNC_VERSION:-}" ]]; then
curl -fsSL "https://github.com/opencontainers/runc/releases/download/${UBUNTU_INSTALL_RUNC_VERSION}/runc.amd64" --output /usr/sbin/runc && chmod 755 /usr/sbin/runc
fi
sudo systemctl start containerd
}

function ensure-container-runtime {
Expand All @@ -481,16 +497,27 @@ function ensure-container-runtime {
fi
docker version
elif [[ "${container_runtime}" == "containerd" ]]; then
set -x
# Install containerd/runc if requested
if [[ ! -z "${UBUNTU_INSTALL_CONTAINERD_VERSION:-}" || ! -z "${UBUNTU_INSTALL_RUNC_VERSION}" ]]; then

This comment has been minimized.

Copy link
@jpbetz

jpbetz Mar 12, 2020

Contributor

Was the :- accidentally omitted from UBUNTU_INSTALL_RUNC_VERSION here?

This comment has been minimized.

Copy link
@jpbetz

jpbetz Mar 12, 2020

Contributor

I'll open a PR.

This comment has been minimized.

Copy link
@jpbetz

jpbetz Mar 12, 2020

Contributor
install-containerd-ubuntu
fi
# Verify presence and print versions of ctr, containerd, runc
if ! command -v ctr >/dev/null 2>&1; then
install-containerd
if ! command -v containerd >/dev/null 2>&1; then
echo "ERROR containerd not found. Aborting."
exit 2
fi
echo "ERROR ctr not found. Aborting."
exit 2
fi
ctr --version

if ! command -v containerd >/dev/null 2>&1; then
echo "ERROR containerd not found. Aborting."
exit 2
fi
containerd --version

if ! command -v runc >/dev/null 2>&1; then
echo "ERROR runc not found. Aborting."
exit 2
fi
runc --version
fi
}
Expand Down
2 changes: 2 additions & 0 deletions cluster/gce/util.sh
Expand Up @@ -1224,6 +1224,8 @@ DISABLE_PROMETHEUS_TO_SD_IN_DS: $(yaml-quote ${DISABLE_PROMETHEUS_TO_SD_IN_DS:-f
CONTAINER_RUNTIME: $(yaml-quote ${CONTAINER_RUNTIME:-})
CONTAINER_RUNTIME_ENDPOINT: $(yaml-quote ${CONTAINER_RUNTIME_ENDPOINT:-})
CONTAINER_RUNTIME_NAME: $(yaml-quote ${CONTAINER_RUNTIME_NAME:-})
UBUNTU_INSTALL_CONTAINERD_VERSION: $(yaml-quote ${UBUNTU_INSTALL_CONTAINERD_VERSION:-})
UBUNTU_INSTALL_RUNC_VERSION: $(yaml-quote ${UBUNTU_INSTALL_RUNC_VERSION:-})
NODE_LOCAL_SSDS_EXT: $(yaml-quote ${NODE_LOCAL_SSDS_EXT:-})
LOAD_IMAGE_COMMAND: $(yaml-quote ${LOAD_IMAGE_COMMAND:-})
ZONE: $(yaml-quote ${ZONE})
Expand Down

0 comments on commit da024f9

Please sign in to comment.