#!/bin/bash # Copyright 2017 The Openstack-Helm Authors. # # Licensed under the Apache License, Version 2.0 (the "License"); you may # not use this file except in compliance with the License. You may obtain # a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the # License for the specific language governing permissions and limitations # under the License. set -xe # Set the KUBELET_CONTAINER env var source /etc/kubelet-container # Detrmine the Cgroup driver in use by Docker CGROUP_DRIVER=$(docker info | awk '/^Cgroup Driver:/ { print $NF }') if [[ "${KUBELET_CONTAINER}" == "this_one" ]]; then exec kubelet-real \ --containerized=true \ --enable-cri=false \ --cgroup-driver=${CGROUP_DRIVER} "${@}" else # Lets remove any old containers docker rm -f kubelet || true # Launch the container exec docker run \ --name kubelet \ --restart=always \ --volume=/sys/fs/cgroup:/sys/fs/cgroup:ro \ --volume=/:/rootfs:ro \ --volume=/dev/net:/dev/net:rw \ --volume=/var/run/netns:/var/run/netns:rw \ --volume=/sys:/sys:ro \ --volume=/etc/machine-id:/etc/machine-id:ro \ --volume=/opt/cni:/opt/cni:rw \ --volume=/etc/cni/net.d:/etc/cni/net.d:rw \ --volume=/var/lib/docker/:/var/lib/docker:rw \ --volume=/var/lib/kubelet/:/var/lib/kubelet:rshared \ --volume=/var/run:/var/run:rw \ --volume=/var/log/containers:/var/log/containers:rw \ --volume=/etc/kubernetes:/etc/kubernetes:rw \ --volume=/etc/hosts:/etc/hosts:rw \ --volume=/etc/resolv.conf:/etc/resolv.conf:rw \ --net=host \ --privileged=true \ --pid=host \ --ipc=host \ ${KUBELET_CONTAINER} \ kubelet \ --containerized=true \ --enable-cri=false \ --cgroup-driver=${CGROUP_DRIVER} "${@}" fi