mirror of https://github.com/k3s-io/k3s
AWS kube-up: point to new AMI; link to new tool
Also remove the copy of the manifest now that it has found a real home in kube-deploy.pull/6/head
parent
b8112beb34
commit
0345013dde
|
@ -27,12 +27,15 @@ SSH_USER=admin
|
||||||
# AWS_IMAGE
|
# AWS_IMAGE
|
||||||
function detect-jessie-image () {
|
function detect-jessie-image () {
|
||||||
if [[ -z "${AWS_IMAGE-}" ]]; then
|
if [[ -z "${AWS_IMAGE-}" ]]; then
|
||||||
# TODO: publish on a k8s AWS account
|
# These images are built using the imagebuilder tool, in the kube-deploy github repo
|
||||||
|
# https://github.com/kubernetes/kube-deploy/tree/master/imagebuilder
|
||||||
|
|
||||||
|
# 282335181503: images published by kope.io
|
||||||
aws_account="282335181503"
|
aws_account="282335181503"
|
||||||
# TODO: we could use a tag for the latest image, instead of bumping it every time
|
# TODO: we could use a tag for the latest image, instead of bumping it every time
|
||||||
# e.g. family = k8s-1.2-debian-jessie-amd64-hvm-ebs latest/1.2=true
|
# e.g. family = k8s-1.3-debian-jessie-amd64-hvm-ebs latest/1.3=true
|
||||||
if [[ -z "${AWS_IMAGE_NAME:-}" ]]; then
|
if [[ -z "${AWS_IMAGE_NAME:-}" ]]; then
|
||||||
AWS_IMAGE_NAME="k8s-1.2-debian-jessie-amd64-hvm-2016-03-16-ebs"
|
AWS_IMAGE_NAME="k8s-1.3-debian-jessie-amd64-hvm-ebs-2016-06-18"
|
||||||
fi
|
fi
|
||||||
AWS_IMAGE=`aws ec2 describe-images --owner ${aws_account} --filters Name=name,Values=${AWS_IMAGE_NAME} --query Images[].ImageId --output text`
|
AWS_IMAGE=`aws ec2 describe-images --owner ${aws_account} --filters Name=name,Values=${AWS_IMAGE_NAME} --query Images[].ImageId --output text`
|
||||||
if [[ -z "${AWS_IMAGE-}" ]]; then
|
if [[ -z "${AWS_IMAGE-}" ]]; then
|
||||||
|
|
|
@ -1,40 +0,0 @@
|
||||||
## Kubernetes-optimized images
|
|
||||||
|
|
||||||
This directory contains manifests for building Kubernetes-optimized images for
|
|
||||||
various clouds (currently just AWS). It is currently highly experimental, and
|
|
||||||
these images are not used by default (though you can pass `AWS_IMAGE` to the
|
|
||||||
AWS kube-up script if you're feeling brave).
|
|
||||||
|
|
||||||
Advantages of an optimized image:
|
|
||||||
|
|
||||||
* We can preinstall packages that would otherwise require a download. Great
|
|
||||||
for speed, and also for reliability (in case the source repository is down)
|
|
||||||
* We can make kernel configuration changes that might otherwise require a
|
|
||||||
reboot, or even apply kernel patches if we really want to. For example,
|
|
||||||
Debian requires a kernel boot parameter to enable the cgroup memory
|
|
||||||
controller, which we require.
|
|
||||||
* The more configuration we can do in advance, the easier it is for people that
|
|
||||||
don't want to use kube-up to get a cluster up and running.
|
|
||||||
|
|
||||||
Advantages of a harmonized image:
|
|
||||||
|
|
||||||
* All the platforms can test with the same versions of software, rather than
|
|
||||||
relying on whatever image happens to be optimal on that cloud.
|
|
||||||
|
|
||||||
## bootstrap-vz
|
|
||||||
|
|
||||||
Currently images are built using
|
|
||||||
[bootstrap-vz](https://github.com/andsens/bootstrap-vz), because this is
|
|
||||||
default builder for the official Debian images, and because it supports
|
|
||||||
multiple clouds including AWS, Azure & GCE. It also supports KVM, which should
|
|
||||||
support OpenStack.
|
|
||||||
|
|
||||||
## Building an image
|
|
||||||
|
|
||||||
A go program/script to build images in
|
|
||||||
[in progress](https://github.com/kubernetes/contrib/pull/486), in the contrib
|
|
||||||
project.
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[![Analytics](https://kubernetes-site.appspot.com/UA-36037335-10/GitHub/cluster/cloudimages/README.md?pixel)]()
|
|
|
@ -1,101 +0,0 @@
|
||||||
---
|
|
||||||
name: k8s-1.2-debian-{system.release}-{system.architecture}-{provider.virtualization}-{%Y}-{%m}-{%d}-ebs
|
|
||||||
provider:
|
|
||||||
name: ec2
|
|
||||||
virtualization: hvm
|
|
||||||
enhanced_networking: simple
|
|
||||||
description: Kubernetes 1.2 Base Image - Debian {system.release} {system.architecture}
|
|
||||||
bootstrapper:
|
|
||||||
workspace: /target
|
|
||||||
# tarball speeds up development, but for prod builds we want to be 100% sure...
|
|
||||||
# tarball: true
|
|
||||||
system:
|
|
||||||
release: jessie
|
|
||||||
architecture: amd64
|
|
||||||
# We use grub, not extlinux.
|
|
||||||
# See https://github.com/andsens/bootstrap-vz/issues/182
|
|
||||||
# extlinux makes it harder to modify boot args, and may have reboot problems
|
|
||||||
# bootloader: extlinux
|
|
||||||
bootloader: grub
|
|
||||||
charmap: UTF-8
|
|
||||||
locale: en_US
|
|
||||||
timezone: UTC
|
|
||||||
volume:
|
|
||||||
backing: ebs
|
|
||||||
partitions:
|
|
||||||
type: msdos
|
|
||||||
root:
|
|
||||||
filesystem: ext4
|
|
||||||
size: 8GiB
|
|
||||||
packages:
|
|
||||||
mirror: http://cloudfront.debian.net/debian
|
|
||||||
install:
|
|
||||||
# these packages are included in the official image
|
|
||||||
- python-boto
|
|
||||||
- python3-boto
|
|
||||||
- apt-transport-https
|
|
||||||
- lvm2
|
|
||||||
- ncurses-term
|
|
||||||
- parted
|
|
||||||
- bootlogd
|
|
||||||
- cloud-init
|
|
||||||
- cloud-utils
|
|
||||||
- gdisk
|
|
||||||
- sysvinit
|
|
||||||
- systemd
|
|
||||||
- systemd-sysv
|
|
||||||
|
|
||||||
# these packages are included in the official image, but we remove them
|
|
||||||
# awscli : we install from pip instead
|
|
||||||
|
|
||||||
# cloud-initramfs-growroot will resize the master partition on boot
|
|
||||||
- cloud-initramfs-growroot
|
|
||||||
# These packages would otherwise be installed during first boot
|
|
||||||
- aufs-tools
|
|
||||||
- curl
|
|
||||||
- python-yaml
|
|
||||||
- git
|
|
||||||
- nfs-common
|
|
||||||
- bridge-utils
|
|
||||||
- logrotate
|
|
||||||
- socat
|
|
||||||
- python-apt
|
|
||||||
- apt-transport-https
|
|
||||||
- unattended-upgrades
|
|
||||||
- lvm2
|
|
||||||
- btrfs-tools
|
|
||||||
|
|
||||||
# So we can install the latest awscli
|
|
||||||
- python-pip
|
|
||||||
plugins:
|
|
||||||
cloud_init:
|
|
||||||
metadata_sources: Ec2
|
|
||||||
username: admin
|
|
||||||
ntp: {}
|
|
||||||
commands:
|
|
||||||
commands:
|
|
||||||
# Install python-pip
|
|
||||||
- [ 'chroot', '{root}', 'pip', 'install', 'awscli' ]
|
|
||||||
|
|
||||||
# Install docker 1.9.1
|
|
||||||
- [ 'wget', 'http://apt.dockerproject.org/repo/pool/main/d/docker-engine/docker-engine_1.9.1-0~jessie_amd64.deb', '-O', '{root}/tmp/docker.deb' ]
|
|
||||||
- [ '/bin/sh', '-c', 'cd {root}/tmp; echo "c58c39008fd6399177f6b2491222e4438f518d78 docker.deb" | shasum -c -' ]
|
|
||||||
- [ 'chroot', '{root}', '/bin/sh', '-c', 'DEBIAN_FRONTEND=noninteractive apt-get install --no-install-recommends --assume-yes libapparmor1' ]
|
|
||||||
- [ 'chroot', '{root}', '/bin/sh', '-c', 'DEBIAN_FRONTEND=noninteractive dpkg --install /tmp/docker.deb' ]
|
|
||||||
- [ 'rm', '{root}/tmp/docker.deb' ]
|
|
||||||
|
|
||||||
# Fix a cloud-init bug where it uses nobootwait
|
|
||||||
# see https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=789884
|
|
||||||
- [ 'chroot', '{root}', '/bin/sh', '-c', 'echo "mount_default_fields: [~, ~, ''auto'', ''defaults,nofail'', ''0'', ''2'']" > /etc/cloud/cloud.cfg.d/99_kubernetes.cfg' ]
|
|
||||||
|
|
||||||
# We perform a full replacement of some grub conf variables:
|
|
||||||
# GRUB_CMDLINE_LINUX_DEFAULT (add memory cgroup)
|
|
||||||
# GRUB_TIMEOUT (remove boot delay)
|
|
||||||
# (but leave the old versions commented out for people to see)
|
|
||||||
- [ 'chroot', '{root}', 'touch', '/etc/default/grub' ]
|
|
||||||
- [ 'chroot', '{root}', 'sed', '-i', 's/^GRUB_CMDLINE_LINUX_DEFAULT=/#GRUB_CMDLINE_LINUX_DEFAULT=/g', '/etc/default/grub' ]
|
|
||||||
- [ 'chroot', '{root}', 'sed', '-i', 's/^GRUB_TIMEOUT=/#GRUB_TIMEOUT=/g', '/etc/default/grub' ]
|
|
||||||
- [ 'chroot', '{root}', '/bin/sh', '-c', 'echo "# kubernetes image changes" >> /etc/default/grub' ]
|
|
||||||
- [ 'chroot', '{root}', '/bin/sh', '-c', 'echo "GRUB_CMDLINE_LINUX_DEFAULT=\"cgroup_enable=memory oops=panic panic=10 console=ttyS0\"" >> /etc/default/grub' ]
|
|
||||||
- [ 'chroot', '{root}', '/bin/sh', '-c', 'echo "GRUB_TIMEOUT=0" >> /etc/default/grub' ]
|
|
||||||
- [ 'chroot', '{root}', 'update-grub2' ]
|
|
Loading…
Reference in New Issue