mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-04 07:49:35 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			111 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			111 lines
		
	
	
		
			3.4 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
	
	
#!/bin/bash
 | 
						|
 | 
						|
# Copyright 2016 The Kubernetes 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.
 | 
						|
 | 
						|
# Script used to configure node e2e test hosts from gce base images.
 | 
						|
# DISCLAIMER: This script is not actively tested or maintained.  No guarantees that this will work
 | 
						|
# on any host environment.  Contributions encouraged!  Send PRs to pwittrock (github.com).
 | 
						|
#
 | 
						|
# At some point has successfully configured the following distros:
 | 
						|
# - ubuntu trusty
 | 
						|
# - containervm (no-op)
 | 
						|
# - rhel 7
 | 
						|
# - centos 7
 | 
						|
# - debian jessie
 | 
						|
 | 
						|
# RHEL os detection
 | 
						|
cat /etc/*-release | grep "ID=\"rhel\""
 | 
						|
OS_RHEL=$?
 | 
						|
 | 
						|
# On a systemd environment, enable cpu and memory accounting for all processes by default.
 | 
						|
if [ -d /etc/systemd ]; then
 | 
						|
  cat <<EOF >kubernetes-accounting.conf
 | 
						|
[Manager]
 | 
						|
DefaultCPUAccounting=yes
 | 
						|
DefaultMemoryAccounting=yes
 | 
						|
EOF
 | 
						|
  sudo mkdir -p /etc/systemd/system.conf.d/
 | 
						|
  sudo cp kubernetes-accounting.conf /etc/systemd/system.conf.d
 | 
						|
  sudo systemctl daemon-reload
 | 
						|
fi
 | 
						|
 | 
						|
# For coreos, disable updates
 | 
						|
if $(sudo systemctl status update-engine &>/dev/null); then
 | 
						|
  sudo systemctl mask update-engine locksmithd
 | 
						|
fi
 | 
						|
 | 
						|
# Fixup sudoers require tty
 | 
						|
sudo grep -q "# Defaults    requiretty" /etc/sudoers
 | 
						|
if [ $? -ne 0 ] ; then
 | 
						|
  sudo sed -i 's/Defaults    requiretty/# Defaults    requiretty/' /etc/sudoers
 | 
						|
fi
 | 
						|
 | 
						|
# Install nsenter for ubuntu images
 | 
						|
cat /etc/*-release | grep "ID=ubuntu"
 | 
						|
if [ $? -eq 0 ]; then
 | 
						|
  if ! which nsenter > /dev/null; then
 | 
						|
     echo "Do not find nsenter. Install it."
 | 
						|
     mkdir -p /tmp/nsenter-install
 | 
						|
     cd /tmp/nsenter-install
 | 
						|
     curl https://www.kernel.org/pub/linux/utils/util-linux/v2.24/util-linux-2.24.tar.gz | tar -zxf-
 | 
						|
     sudo apt-get update
 | 
						|
     sudo apt-get --yes install make
 | 
						|
     sudo apt-get --yes install gcc
 | 
						|
     cd util-linux-2.24
 | 
						|
     ./configure --without-ncurses
 | 
						|
     make nsenter
 | 
						|
     sudo cp nsenter /usr/local/bin
 | 
						|
     rm -rf /tmp/nsenter-install
 | 
						|
   fi
 | 
						|
fi
 | 
						|
 | 
						|
# Install docker
 | 
						|
hash docker 2>/dev/null
 | 
						|
if [ $? -ne 0 ]; then
 | 
						|
  # RHEL platforms should always install from RHEL repository
 | 
						|
  # This will install the latest supported stable docker platform on RHEL
 | 
						|
  if [ $OS_RHEL -eq 0 ]; then
 | 
						|
    sudo yum install -y docker-latest
 | 
						|
    sudo groupadd docker
 | 
						|
    sudo systemctl enable docker-latest.service
 | 
						|
    sudo systemctl start docker-latest.service
 | 
						|
  else
 | 
						|
    curl -fsSL https://get.docker.com/ | sh
 | 
						|
    sudo service docker start
 | 
						|
    sudo systemctl enable docker.service
 | 
						|
  fi
 | 
						|
fi
 | 
						|
 | 
						|
# Allow jenkins access to docker
 | 
						|
id jenkins || sudo useradd jenkins -m
 | 
						|
sudo usermod -a -G docker jenkins
 | 
						|
 | 
						|
# install lxc
 | 
						|
cat /etc/*-release | grep "ID=debian"
 | 
						|
if [ $? -ne 0 ]; then
 | 
						|
  hash apt-get 2>/dev/null
 | 
						|
  if [ $? -ne 1 ]; then
 | 
						|
    sudo apt-get install lxc -y
 | 
						|
    lxc-checkconfig
 | 
						|
    sudo sed -i 's/GRUB_CMDLINE_LINUX="\(.*\)"/GRUB_CMDLINE_LINUX="\1 cgroup_enable=memory"/' /etc/default/grub
 | 
						|
    sudo update-grub  
 | 
						|
  fi
 | 
						|
fi
 | 
						|
 | 
						|
# delete init kubelet from containervm so that is doesn't startup
 | 
						|
if [ -f /etc/init.d/kubelet ]; then
 | 
						|
  sudo rm /etc/init.d/kubelet
 | 
						|
fi
 |