mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-27 13:37:30 +00:00
Merge pull request #9371 from justinsb/aws_support_wheezy
AWS: Support wheezy, for parity with GCE
This commit is contained in:
commit
82aa8f9984
@ -16,6 +16,8 @@
|
|||||||
|
|
||||||
# A library of helper functions for CoreOS.
|
# A library of helper functions for CoreOS.
|
||||||
|
|
||||||
|
SSH_USER=ubuntu
|
||||||
|
|
||||||
function detect-minion-image (){
|
function detect-minion-image (){
|
||||||
if [[ -z "${KUBE_MINION_IMAGE-}" ]]; then
|
if [[ -z "${KUBE_MINION_IMAGE-}" ]]; then
|
||||||
KUBE_MINION_IMAGE=$(curl -s -L http://${COREOS_CHANNEL}.release.core-os.net/amd64-usr/current/coreos_production_ami_all.json | python -c "import json,sys;obj=json.load(sys.stdin);print filter(lambda t: t['name']=='${AWS_REGION}', obj['amis'])[0]['hvm']")
|
KUBE_MINION_IMAGE=$(curl -s -L http://${COREOS_CHANNEL}.release.core-os.net/amd64-usr/current/coreos_production_ami_all.json | python -c "import json,sys;obj=json.load(sys.stdin);print filter(lambda t: t['name']=='${AWS_REGION}', obj['amis'])[0]['hvm']")
|
||||||
|
@ -70,4 +70,10 @@ will run on this storage if available, as typically the root disk is comparative
|
|||||||
|
|
||||||
If your machines don't have any ephemeral disks, this will default to the aufs driver on your root disk (with no LVM).
|
If your machines don't have any ephemeral disks, this will default to the aufs driver on your root disk (with no LVM).
|
||||||
|
|
||||||
|
**KUBE_OS_DISTRIBUTION**
|
||||||
|
|
||||||
|
The distribution to use. Valid options: `wheezy`, `ubuntu`, `coreos`.
|
||||||
|
|
||||||
|
Defaults to wheezy (Debian Wheezy), which is the same as is used by default on GCE.
|
||||||
|
|
||||||
[]()
|
[]()
|
||||||
|
@ -14,6 +14,10 @@
|
|||||||
# See the License for the specific language governing permissions and
|
# See the License for the specific language governing permissions and
|
||||||
# limitations under the License.
|
# limitations under the License.
|
||||||
|
|
||||||
|
|
||||||
|
apt-get update
|
||||||
|
apt-get install --yes curl
|
||||||
|
|
||||||
# Retry a download until we get it.
|
# Retry a download until we get it.
|
||||||
#
|
#
|
||||||
# $1 is the URL to download
|
# $1 is the URL to download
|
||||||
|
@ -55,6 +55,12 @@ docker_storage=${DOCKER_STORAGE:-aufs}
|
|||||||
if [[ ${#block_devices[@]} == 0 ]]; then
|
if [[ ${#block_devices[@]} == 0 ]]; then
|
||||||
echo "No ephemeral block devices found; will use aufs on root"
|
echo "No ephemeral block devices found; will use aufs on root"
|
||||||
docker_storage="aufs"
|
docker_storage="aufs"
|
||||||
|
|
||||||
|
# Install aufs kernel module (for ubuntu)
|
||||||
|
apt-get install --yes linux-image-extra-$(uname -r)
|
||||||
|
|
||||||
|
# Install aufs tools (for debian)
|
||||||
|
apt-get install --yes aufs-tools
|
||||||
else
|
else
|
||||||
echo "Block devices: ${block_devices[@]}"
|
echo "Block devices: ${block_devices[@]}"
|
||||||
|
|
||||||
|
51
cluster/aws/ubuntu/common.sh
Normal file
51
cluster/aws/ubuntu/common.sh
Normal file
@ -0,0 +1,51 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2015 The Kubernetes Authors All rights reserved.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# A library of common helper functions for Ubuntus & Debians.
|
||||||
|
|
||||||
|
function detect-minion-image() {
|
||||||
|
if [[ -z "${KUBE_MINION_IMAGE=-}" ]]; then
|
||||||
|
detect-image
|
||||||
|
KUBE_MINION_IMAGE=$AWS_IMAGE
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
function generate-minion-user-data {
|
||||||
|
i=$1
|
||||||
|
# We pipe this to the ami as a startup script in the user-data field. Requires a compatible ami
|
||||||
|
echo "#! /bin/bash"
|
||||||
|
echo "SALT_MASTER='${MASTER_INTERNAL_IP}'"
|
||||||
|
echo "MINION_IP_RANGE='${MINION_IP_RANGES[$i]}'"
|
||||||
|
echo "DOCKER_OPTS='${EXTRA_DOCKER_OPTS:-}'"
|
||||||
|
echo "readonly DOCKER_STORAGE='${DOCKER_STORAGE:-}'"
|
||||||
|
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/common.sh"
|
||||||
|
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/format-disks.sh"
|
||||||
|
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/salt-minion.sh"
|
||||||
|
}
|
||||||
|
|
||||||
|
function check-minion() {
|
||||||
|
local minion_name=$1
|
||||||
|
local minion_ip=$2
|
||||||
|
|
||||||
|
local output=$(ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ${SSH_USER}@$minion_ip sudo docker ps -a 2>/dev/null)
|
||||||
|
if [[ -z "${output}" ]]; then
|
||||||
|
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ${SSH_USER}@$minion_ip sudo service docker start > $LOG 2>&1
|
||||||
|
echo "not working yet"
|
||||||
|
else
|
||||||
|
echo "working"
|
||||||
|
fi
|
||||||
|
}
|
@ -17,35 +17,8 @@
|
|||||||
|
|
||||||
# A library of helper functions for Ubuntu.
|
# A library of helper functions for Ubuntu.
|
||||||
|
|
||||||
function detect-minion-image() {
|
source "${KUBE_ROOT}/cluster/aws/ubuntu/common.sh"
|
||||||
if [[ -z "${KUBE_MINION_IMAGE=-}" ]]; then
|
|
||||||
detect-image
|
|
||||||
KUBE_MINION_IMAGE=$AWS_IMAGE
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
function generate-minion-user-data {
|
# TODO: Move image detection in here once it is no longer shared with CoreOS
|
||||||
i=$1
|
|
||||||
# We pipe this to the ami as a startup script in the user-data field. Requires a compatible ami
|
|
||||||
echo "#! /bin/bash"
|
|
||||||
echo "SALT_MASTER='${MASTER_INTERNAL_IP}'"
|
|
||||||
echo "MINION_IP_RANGE='${MINION_IP_RANGES[$i]}'"
|
|
||||||
echo "DOCKER_OPTS='${EXTRA_DOCKER_OPTS:-}'"
|
|
||||||
echo "readonly DOCKER_STORAGE='${DOCKER_STORAGE:-}'"
|
|
||||||
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/common.sh"
|
|
||||||
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/format-disks.sh"
|
|
||||||
grep -v "^#" "${KUBE_ROOT}/cluster/aws/templates/salt-minion.sh"
|
|
||||||
}
|
|
||||||
|
|
||||||
function check-minion() {
|
SSH_USER=ubuntu
|
||||||
local minion_name=$1
|
|
||||||
local minion_ip=$2
|
|
||||||
|
|
||||||
local output=$(ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ubuntu@$minion_ip sudo docker ps -a 2>/dev/null)
|
|
||||||
if [[ -z "${output}" ]]; then
|
|
||||||
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ubuntu@$minion_ip sudo service docker start > $LOG 2>&1
|
|
||||||
echo "not working yet"
|
|
||||||
else
|
|
||||||
echo "working"
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
@ -23,7 +23,7 @@ source "${KUBE_ROOT}/cluster/aws/${KUBE_CONFIG_FILE-"config-default.sh"}"
|
|||||||
source "${KUBE_ROOT}/cluster/common.sh"
|
source "${KUBE_ROOT}/cluster/common.sh"
|
||||||
|
|
||||||
case "${KUBE_OS_DISTRIBUTION}" in
|
case "${KUBE_OS_DISTRIBUTION}" in
|
||||||
ubuntu|coreos)
|
ubuntu|wheezy|coreos)
|
||||||
source "${KUBE_ROOT}/cluster/aws/${KUBE_OS_DISTRIBUTION}/util.sh"
|
source "${KUBE_ROOT}/cluster/aws/${KUBE_OS_DISTRIBUTION}/util.sh"
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
@ -172,10 +172,34 @@ function detect-security-groups {
|
|||||||
}
|
}
|
||||||
|
|
||||||
# Detects the AMI to use (considering the region)
|
# Detects the AMI to use (considering the region)
|
||||||
|
# This really should be in the various distro-specific util functions,
|
||||||
|
# but CoreOS uses this for the master, so for now it is here.
|
||||||
|
#
|
||||||
|
# TODO: Remove this and just have each distro implement detect-image
|
||||||
#
|
#
|
||||||
# Vars set:
|
# Vars set:
|
||||||
# AWS_IMAGE
|
# AWS_IMAGE
|
||||||
function detect-image () {
|
function detect-image () {
|
||||||
|
case "${KUBE_OS_DISTRIBUTION}" in
|
||||||
|
ubuntu|coreos)
|
||||||
|
detect-ubuntu-image
|
||||||
|
;;
|
||||||
|
wheezy)
|
||||||
|
detect-wheezy-image
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Please specify AWS_IMAGE directly (distro not recognized)"
|
||||||
|
exit 2
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
}
|
||||||
|
|
||||||
|
# Detects the AMI to use for ubuntu (considering the region)
|
||||||
|
# Used by CoreOS & Ubuntu
|
||||||
|
#
|
||||||
|
# Vars set:
|
||||||
|
# AWS_IMAGE
|
||||||
|
function detect-ubuntu-image () {
|
||||||
# This is the ubuntu 14.04 image for <region>, amd64, hvm:ebs-ssd
|
# This is the ubuntu 14.04 image for <region>, amd64, hvm:ebs-ssd
|
||||||
# See here: http://cloud-images.ubuntu.com/locator/ec2/ for other images
|
# See here: http://cloud-images.ubuntu.com/locator/ec2/ for other images
|
||||||
# This will need to be updated from time to time as amis are deprecated
|
# This will need to be updated from time to time as amis are deprecated
|
||||||
@ -856,7 +880,7 @@ function kube-up {
|
|||||||
sleep 10
|
sleep 10
|
||||||
done
|
done
|
||||||
echo "Re-running salt highstate"
|
echo "Re-running salt highstate"
|
||||||
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ubuntu@${KUBE_MASTER_IP} sudo salt '*' state.highstate > $LOG
|
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ${SSH_USER}@${KUBE_MASTER_IP} sudo salt '*' state.highstate > $LOG
|
||||||
|
|
||||||
echo "Waiting for cluster initialization."
|
echo "Waiting for cluster initialization."
|
||||||
echo
|
echo
|
||||||
@ -885,9 +909,9 @@ function kube-up {
|
|||||||
# config file. Distribute the same way the htpasswd is done.
|
# config file. Distribute the same way the htpasswd is done.
|
||||||
(
|
(
|
||||||
umask 077
|
umask 077
|
||||||
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" "ubuntu@${KUBE_MASTER_IP}" sudo cat /srv/kubernetes/kubecfg.crt >"${KUBE_CERT}" 2>"$LOG"
|
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" "${SSH_USER}@${KUBE_MASTER_IP}" sudo cat /srv/kubernetes/kubecfg.crt >"${KUBE_CERT}" 2>"$LOG"
|
||||||
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" "ubuntu@${KUBE_MASTER_IP}" sudo cat /srv/kubernetes/kubecfg.key >"${KUBE_KEY}" 2>"$LOG"
|
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" "${SSH_USER}@${KUBE_MASTER_IP}" sudo cat /srv/kubernetes/kubecfg.key >"${KUBE_KEY}" 2>"$LOG"
|
||||||
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" "ubuntu@${KUBE_MASTER_IP}" sudo cat /srv/kubernetes/ca.crt >"${CA_CERT}" 2>"$LOG"
|
ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" "${SSH_USER}@${KUBE_MASTER_IP}" sudo cat /srv/kubernetes/ca.crt >"${CA_CERT}" 2>"$LOG"
|
||||||
|
|
||||||
create-kubeconfig
|
create-kubeconfig
|
||||||
)
|
)
|
||||||
@ -1066,7 +1090,7 @@ function kube-push {
|
|||||||
echo "echo Executing configuration"
|
echo "echo Executing configuration"
|
||||||
echo "sudo salt '*' mine.update"
|
echo "sudo salt '*' mine.update"
|
||||||
echo "sudo salt --force-color '*' state.highstate"
|
echo "sudo salt --force-color '*' state.highstate"
|
||||||
) | ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ubuntu@${KUBE_MASTER_IP} sudo bash
|
) | ssh -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ${SSH_USER}@${KUBE_MASTER_IP} sudo bash
|
||||||
|
|
||||||
get-password
|
get-password
|
||||||
|
|
||||||
@ -1132,7 +1156,7 @@ function ssh-to-node {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
for try in $(seq 1 5); do
|
for try in $(seq 1 5); do
|
||||||
if ssh -oLogLevel=quiet -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ubuntu@${ip} "${cmd}"; then
|
if ssh -oLogLevel=quiet -oStrictHostKeyChecking=no -i "${AWS_SSH_KEY}" ${SSH_USER}@${ip} "${cmd}"; then
|
||||||
break
|
break
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
81
cluster/aws/wheezy/util.sh
Normal file
81
cluster/aws/wheezy/util.sh
Normal file
@ -0,0 +1,81 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# Copyright 2015 The Kubernetes Authors All rights reserved.
|
||||||
|
#
|
||||||
|
# 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.
|
||||||
|
|
||||||
|
|
||||||
|
# A library of helper functions for Wheezy.
|
||||||
|
|
||||||
|
source "${KUBE_ROOT}/cluster/aws/ubuntu/common.sh"
|
||||||
|
|
||||||
|
SSH_USER=admin
|
||||||
|
|
||||||
|
# Detects the AMI to use for wheezy (considering the region)
|
||||||
|
# Source: https://wiki.debian.org/Cloud/AmazonEC2Image/Wheezy
|
||||||
|
#
|
||||||
|
# Vars set:
|
||||||
|
# AWS_IMAGE
|
||||||
|
function detect-wheezy-image () {
|
||||||
|
if [[ -z "${AWS_IMAGE-}" ]]; then
|
||||||
|
case "${AWS_REGION}" in
|
||||||
|
ap-northeast-1)
|
||||||
|
AWS_IMAGE=ami-b25d44b3
|
||||||
|
;;
|
||||||
|
|
||||||
|
ap-southeast-1)
|
||||||
|
AWS_IMAGE=ami-aeb49ffc
|
||||||
|
;;
|
||||||
|
|
||||||
|
ap-southeast-2)
|
||||||
|
AWS_IMAGE=ami-6b770351
|
||||||
|
;;
|
||||||
|
|
||||||
|
eu-central-1)
|
||||||
|
AWS_IMAGE=ami-98043785
|
||||||
|
;;
|
||||||
|
|
||||||
|
eu-west-1)
|
||||||
|
AWS_IMAGE=ami-61e56916
|
||||||
|
;;
|
||||||
|
|
||||||
|
sa-east-1)
|
||||||
|
AWS_IMAGE=ami-3d8b3720
|
||||||
|
;;
|
||||||
|
|
||||||
|
us-east-1)
|
||||||
|
AWS_IMAGE=ami-e0efab88
|
||||||
|
;;
|
||||||
|
|
||||||
|
us-west-1)
|
||||||
|
AWS_IMAGE=ami-b4869ff1
|
||||||
|
;;
|
||||||
|
|
||||||
|
us-west-2)
|
||||||
|
AWS_IMAGE=ami-431a4273
|
||||||
|
;;
|
||||||
|
|
||||||
|
us-gov-west-1)
|
||||||
|
AWS_IMAGE=ami-d13455f2
|
||||||
|
;;
|
||||||
|
|
||||||
|
cn-north-1)
|
||||||
|
AWS_IMAGE=ami-48029071
|
||||||
|
;;
|
||||||
|
|
||||||
|
*)
|
||||||
|
echo "Please specify AWS_IMAGE directly (region not recognized)"
|
||||||
|
exit 1
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user