From 0e199f8ec1903d6c0791688d231958bde6c519ca Mon Sep 17 00:00:00 2001 From: Carlos Meza Date: Wed, 31 Jan 2018 20:25:15 -0800 Subject: [PATCH] select version for amzn-driver --- bootstrapvz/providers/ec2/README.rst | 22 +++++++++++++++++++ bootstrapvz/providers/ec2/manifest-schema.yml | 3 +++ bootstrapvz/providers/ec2/tasks/network.py | 18 ++++++++++++--- 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/bootstrapvz/providers/ec2/README.rst b/bootstrapvz/providers/ec2/README.rst index 7d22b99..0b13dec 100644 --- a/bootstrapvz/providers/ec2/README.rst +++ b/bootstrapvz/providers/ec2/README.rst @@ -124,6 +124,28 @@ Example: virtualization: hvm enhanced_networking: simple +Amazon Drivers +~~~~~~~~~~~~~~ + +Define the version for the Amazon Elastic Network +Adapter (ENA) driver. +Read more about this on the `Amazon Drivers git repo`__. + +__ https://github.com/amzn/amzn-drivers + +- ``amzn-driver-version``: Default: master + Valid values: ``master``, ``#.#.#`` + ``optional`` + +Example: + +.. code-block:: yaml + + --- + provider: + name: ec2 + amzn-driver-version: 1.5.0 + Image ~~~~~ diff --git a/bootstrapvz/providers/ec2/manifest-schema.yml b/bootstrapvz/providers/ec2/manifest-schema.yml index b3a9ea3..2d9b217 100644 --- a/bootstrapvz/providers/ec2/manifest-schema.yml +++ b/bootstrapvz/providers/ec2/manifest-schema.yml @@ -24,6 +24,9 @@ properties: enum: - none - simple + amzn-driver-version: + type: string + pattern: "^([0-9]+\\.?){3}$" required: [description, virtualization] system: type: object diff --git a/bootstrapvz/providers/ec2/tasks/network.py b/bootstrapvz/providers/ec2/tasks/network.py index 798c662..ae05f9a 100644 --- a/bootstrapvz/providers/ec2/tasks/network.py +++ b/bootstrapvz/providers/ec2/tasks/network.py @@ -135,13 +135,25 @@ class InstallENANetworking(Task): @classmethod def run(cls, info): - version = '1.0.0' - drivers_url = 'https://github.com/amzn/amzn-drivers' + version = info.manifest.provider.get('amzn-driver-version', 'master') + + if version != 'master': + version = 'ena_linux_' + version + + drivers_url = 'https://codeload.github.com/amzn/amzn-drivers/tar.gz/' + version module_path = os.path.join(info.root, 'usr', 'src', 'amzn-drivers-%s' % (version)) + archive = os.path.join(info.root, 'tmp', 'amzn-drivers-%s.tar.gz' % (version)) + + import urllib + urllib.urlretrieve(drivers_url, archive) from bootstrapvz.common.tools import log_check_call - log_check_call(['git', 'clone', drivers_url, module_path]) + log_check_call(['tar', '--ungzip', + '--extract', + '--file', archive, + '--directory', os.path.join(info.root, 'usr', + 'src')]) with open(os.path.join(module_path, 'dkms.conf'), 'w') as dkms_conf: dkms_conf.write("""PACKAGE_NAME="ena"