Merge pull request #9381 from justinsb/aws_support_jessie

AWS: Add support for Vivid Vervet & Debian Jessie
pull/6/head
Victor Marmol 2015-07-09 15:20:37 -07:00
commit ee8d2857fc
10 changed files with 194 additions and 13 deletions

View File

@ -85,7 +85,7 @@ ADMISSION_CONTROL=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContext
ENABLE_MINION_PUBLIC_IP=${KUBE_ENABLE_MINION_PUBLIC_IP:-true}
# OS options for minions
KUBE_OS_DISTRIBUTION="${KUBE_OS_DISTRIBUTION:-ubuntu}"
KUBE_OS_DISTRIBUTION="${KUBE_OS_DISTRIBUTION:-vivid}"
KUBE_MINION_IMAGE="${KUBE_MINION_IMAGE:-}"
COREOS_CHANNEL="${COREOS_CHANNEL:-alpha}"
CONTAINER_RUNTIME="${KUBE_CONTAINER_RUNTIME:-docker}"

View File

@ -81,7 +81,7 @@ ADMISSION_CONTROL=NamespaceLifecycle,NamespaceExists,LimitRanger,SecurityContext
ENABLE_MINION_PUBLIC_IP=${KUBE_ENABLE_MINION_PUBLIC_IP:-true}
# OS options for minions
KUBE_OS_DISTRIBUTION="${KUBE_OS_DISTRIBUTION:-ubuntu}"
KUBE_OS_DISTRIBUTION="${KUBE_OS_DISTRIBUTION:-vivid}"
KUBE_MINION_IMAGE="${KUBE_MINION_IMAGE:-}"
COREOS_CHANNEL="${COREOS_CHANNEL:-alpha}"
CONTAINER_RUNTIME="${KUBE_CONTAINER_RUNTIME:-docker}"

View 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 Jessie.
source "${KUBE_ROOT}/cluster/aws/trusty/common.sh"
SSH_USER=admin
# Detects the AMI to use for jessie (considering the region)
# Source: https://wiki.debian.org/Cloud/AmazonEC2Image/Jessie
#
# Vars set:
# AWS_IMAGE
function detect-jessie-image () {
if [[ -z "${AWS_IMAGE-}" ]]; then
case "${AWS_REGION}" in
ap-northeast-1)
AWS_IMAGE=ami-e624fbe6
;;
ap-southeast-1)
AWS_IMAGE=ami-ac360cfe
;;
ap-southeast-2)
AWS_IMAGE=ami-bbc5bd81
;;
eu-central-1)
AWS_IMAGE=ami-02b78e1f
;;
eu-west-1)
AWS_IMAGE=ami-e31a6594
;;
sa-east-1)
AWS_IMAGE=ami-0972f214
;;
us-east-1)
AWS_IMAGE=ami-116d857a
;;
us-west-1)
AWS_IMAGE=ami-05cf2541
;;
us-west-2)
AWS_IMAGE=ami-818eb7b1
;;
cn-north-1)
AWS_IMAGE=ami-888815b1
;;
us-gov-west-1)
AWS_IMAGE=ami-35b5d516
;;
*)
echo "Please specify AWS_IMAGE directly (region not recognized)"
exit 1
esac
fi
}

View File

@ -76,8 +76,13 @@ If your machines don't have any ephemeral disks, this will default to the aufs d
**KUBE_OS_DISTRIBUTION**
The distribution to use. Valid options: `wheezy`, `ubuntu`, `coreos`.
The distribution to use. Valid options: `trusty`, `vivid`, `coreos`, `wheezy`, `jessie`
Defaults to wheezy (Debian Wheezy), which is the same as is used by default on GCE.
Defaults to vivid (Ubuntu Vivid Vervet), which has a modern kernel and does not require updating or a reboot.
`coreos` is also a good option.
Other options may require reboots, updates or configuration, and should be used only if you have a compelling
requirement to do so.
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/cluster/aws/options.md?pixel)]()

View File

@ -15,9 +15,7 @@
# limitations under the License.
# A library of helper functions for Ubuntu.
source "${KUBE_ROOT}/cluster/aws/ubuntu/common.sh"
source "${KUBE_ROOT}/cluster/aws/trusty/common.sh"
# TODO: Move image detection in here once it is no longer shared with CoreOS

View File

@ -30,8 +30,13 @@ ASG_NAME="${NODE_INSTANCE_PREFIX}-group"
# We could allow the master disk volume id to be specified in future
MASTER_DISK_ID=
# Defaults: ubuntu -> vivid
if [[ "${KUBE_OS_DISTRIBUTION}" == "ubuntu" ]]; then
KUBE_OS_DISTRIBUTION=vivid
fi
case "${KUBE_OS_DISTRIBUTION}" in
ubuntu|wheezy|coreos)
trusty|wheezy|jessie|vivid|coreos)
source "${KUBE_ROOT}/cluster/aws/${KUBE_OS_DISTRIBUTION}/util.sh"
;;
*)
@ -217,12 +222,18 @@ function detect-security-groups {
# AWS_IMAGE
function detect-image () {
case "${KUBE_OS_DISTRIBUTION}" in
ubuntu|coreos)
detect-ubuntu-image
trusty|coreos)
detect-trusty-image
;;
vivid)
detect-vivid-image
;;
wheezy)
detect-wheezy-image
;;
jessie)
detect-jessie-image
;;
*)
echo "Please specify AWS_IMAGE directly (distro not recognized)"
exit 2
@ -230,12 +241,12 @@ case "${KUBE_OS_DISTRIBUTION}" in
esac
}
# Detects the AMI to use for ubuntu (considering the region)
# Detects the AMI to use for trusty (considering the region)
# Used by CoreOS & Ubuntu
#
# Vars set:
# AWS_IMAGE
function detect-ubuntu-image () {
function detect-trusty-image () {
# 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
# This will need to be updated from time to time as amis are deprecated

83
cluster/aws/vivid/util.sh Normal file
View File

@ -0,0 +1,83 @@
#!/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.
source "${KUBE_ROOT}/cluster/aws/trusty/common.sh"
SSH_USER=ubuntu
# Detects the AMI to use for ubuntu (considering the region)
#
# Vars set:
# AWS_IMAGE
function detect-vivid-image () {
# This is the ubuntu 15.04 image for <region>, amd64, hvm:ebs-ssd
# 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
if [[ -z "${AWS_IMAGE-}" ]]; then
case "${AWS_REGION}" in
ap-northeast-1)
AWS_IMAGE=ami-907fa690
;;
ap-southeast-1)
AWS_IMAGE=ami-b4a79de6
;;
eu-central-1)
AWS_IMAGE=ami-e8635bf5
;;
eu-west-1)
AWS_IMAGE=ami-0fd0ae78
;;
sa-east-1)
AWS_IMAGE=ami-f9f675e4
;;
us-east-1)
AWS_IMAGE=ami-f57b8f9e
;;
us-west-1)
AWS_IMAGE=ami-87b643c3
;;
cn-north-1)
AWS_IMAGE=ami-3abf2203
;;
#us-gov-west-1)
# AWS_IMAGE=?Not available?
# ;;
ap-southeast-2)
AWS_IMAGE=ami-1bb9c221
;;
us-west-2)
AWS_IMAGE=ami-33566d03
;;
*)
echo "Please specify AWS_IMAGE directly (region not recognized)"
exit 1
esac
fi
}

View File

@ -17,7 +17,7 @@
# A library of helper functions for Wheezy.
source "${KUBE_ROOT}/cluster/aws/ubuntu/common.sh"
source "${KUBE_ROOT}/cluster/aws/trusty/common.sh"
SSH_USER=admin

View File

@ -75,6 +75,9 @@
{% set system_container = "--system-container=/system" -%}
{% set cgroup_root = "--cgroup_root=/" -%}
{% endif -%}
{% if grains['oscodename'] == 'vivid' -%}
{% set cgroup_root = "--cgroup_root=docker" -%}
{% endif -%}
{% set pod_cidr = "" %}
{% if grains['roles'][0] == 'kubernetes-master' and grains.get('cbr-cidr') %}