From d3a1d2229059787540f889870ba381deef58e168 Mon Sep 17 00:00:00 2001 From: Zach Marano Date: Mon, 18 May 2015 10:51:26 -0700 Subject: [PATCH] Add support for Debian 8 in GCE. Add support for GPT disks. Change the default block scheduler to noop for improved performance. --- bootstrapvz/providers/gce/manifest-schema.yml | 1 + bootstrapvz/providers/gce/tasks/boot.py | 2 +- bootstrapvz/providers/gce/tasks/packages.py | 6 ++-- manifests/gce-jessie-backports.manifest.yml | 33 +++++++++++++++++++ manifests/gce-jessie.manifest.yml | 33 +++++++++++++++++++ ....yml => gce-wheezy-backports.manifest.yml} | 0 ...e.manifest.yml => gce-wheezy.manifest.yml} | 0 7 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 manifests/gce-jessie-backports.manifest.yml create mode 100644 manifests/gce-jessie.manifest.yml rename manifests/{gce-backports.manifest.yml => gce-wheezy-backports.manifest.yml} (100%) rename manifests/{gce.manifest.yml => gce-wheezy.manifest.yml} (100%) diff --git a/bootstrapvz/providers/gce/manifest-schema.yml b/bootstrapvz/providers/gce/manifest-schema.yml index aa6bb59..8a38642 100644 --- a/bootstrapvz/providers/gce/manifest-schema.yml +++ b/bootstrapvz/providers/gce/manifest-schema.yml @@ -26,4 +26,5 @@ properties: type: enum: - msdos + - gpt required: [partitions] diff --git a/bootstrapvz/providers/gce/tasks/boot.py b/bootstrapvz/providers/gce/tasks/boot.py index 224c7fc..95653a9 100644 --- a/bootstrapvz/providers/gce/tasks/boot.py +++ b/bootstrapvz/providers/gce/tasks/boot.py @@ -13,5 +13,5 @@ class ConfigureGrub(Task): def run(cls, info): from bootstrapvz.common.tools import sed_i grub_config = os.path.join(info.root, 'etc/default/grub') - sed_i(grub_config, r'^(GRUB_CMDLINE_LINUX*=".*)"\s*$', r'\1console=ttyS0,38400n8"') + sed_i(grub_config, r'^(GRUB_CMDLINE_LINUX*=".*)"\s*$', r'\1console=ttyS0,38400n8 elevator=noop"') sed_i(grub_config, r'^.*(GRUB_TIMEOUT=).*$', r'GRUB_TIMEOUT=0') diff --git a/bootstrapvz/providers/gce/tasks/packages.py b/bootstrapvz/providers/gce/tasks/packages.py index 2928a6d..fae612e 100644 --- a/bootstrapvz/providers/gce/tasks/packages.py +++ b/bootstrapvz/providers/gce/tasks/packages.py @@ -1,6 +1,7 @@ from bootstrapvz.base import Task from bootstrapvz.common import phases from bootstrapvz.common.tasks import apt +from bootstrapvz.common.tools import config_get import logging import os @@ -22,7 +23,6 @@ class DefaultPackages(Task): info.packages.add('ca-certificates') kernel_packages_path = os.path.join(os.path.dirname(__file__), 'packages-kernels.yml') - from bootstrapvz.common.tools import config_get kernel_package = config_get(kernel_packages_path, [info.manifest.release.codename, info.manifest.system['architecture']]) info.packages.add(kernel_package) @@ -36,7 +36,9 @@ class ReleasePackages(Task): @classmethod def run(cls, info): # Add release-specific packages, if available. - if info.source_lists.target_exists('wheezy-backports'): + if (info.source_lists.target_exists('wheezy-backports') or + info.source_lists.target_exists('jessie') or + info.source_lists.target_exists('jessie-backports')): info.packages.add('cloud-initramfs-growroot') else: msg = ('No release-specific packages found for {system.release}').format(**info.manifest_vars) diff --git a/manifests/gce-jessie-backports.manifest.yml b/manifests/gce-jessie-backports.manifest.yml new file mode 100644 index 0000000..1681449 --- /dev/null +++ b/manifests/gce-jessie-backports.manifest.yml @@ -0,0 +1,33 @@ +--- +provider: + name: gce +bootstrapper: + workspace: /target +image: + name: disk + description: Debian {system.release} {system.architecture} +system: + release: jessie + architecture: amd64 + bootloader: grub + charmap: UTF-8 + locale: en_US + timezone: UTC +volume: + backing: raw + partitions: + type: msdos + root: + filesystem: ext4 + size: 10GiB +packages: + mirror: http://gce_debian_mirror.storage.googleapis.com/ + components: + - main + - contrib + - non-free +plugins: + google_cloud_sdk: {} + ntp: + servers: + - metadata.google.internal diff --git a/manifests/gce-jessie.manifest.yml b/manifests/gce-jessie.manifest.yml new file mode 100644 index 0000000..1681449 --- /dev/null +++ b/manifests/gce-jessie.manifest.yml @@ -0,0 +1,33 @@ +--- +provider: + name: gce +bootstrapper: + workspace: /target +image: + name: disk + description: Debian {system.release} {system.architecture} +system: + release: jessie + architecture: amd64 + bootloader: grub + charmap: UTF-8 + locale: en_US + timezone: UTC +volume: + backing: raw + partitions: + type: msdos + root: + filesystem: ext4 + size: 10GiB +packages: + mirror: http://gce_debian_mirror.storage.googleapis.com/ + components: + - main + - contrib + - non-free +plugins: + google_cloud_sdk: {} + ntp: + servers: + - metadata.google.internal diff --git a/manifests/gce-backports.manifest.yml b/manifests/gce-wheezy-backports.manifest.yml similarity index 100% rename from manifests/gce-backports.manifest.yml rename to manifests/gce-wheezy-backports.manifest.yml diff --git a/manifests/gce.manifest.yml b/manifests/gce-wheezy.manifest.yml similarity index 100% rename from manifests/gce.manifest.yml rename to manifests/gce-wheezy.manifest.yml