diff --git a/cluster/aws/jessie/util.sh b/cluster/aws/jessie/util.sh index 9ce2a001f05..e1091c8ef9f 100644 --- a/cluster/aws/jessie/util.sh +++ b/cluster/aws/jessie/util.sh @@ -27,12 +27,15 @@ SSH_USER=admin # AWS_IMAGE function detect-jessie-image () { 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" # 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 - 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 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 diff --git a/cluster/cloudimages/README.md b/cluster/cloudimages/README.md deleted file mode 100644 index a481d808097..00000000000 --- a/cluster/cloudimages/README.md +++ /dev/null @@ -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)]() diff --git a/cluster/cloudimages/k8s-ebs-jessie-amd64-hvm.yml b/cluster/cloudimages/k8s-ebs-jessie-amd64-hvm.yml deleted file mode 100644 index 72b8e7e7778..00000000000 --- a/cluster/cloudimages/k8s-ebs-jessie-amd64-hvm.yml +++ /dev/null @@ -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' ]