diff options
4 files changed, 115 insertions, 11 deletions
diff --git a/docs/development/overview/build/build.instruction.rst b/docs/development/overview/build/build.instruction.rst index 192c6ba7..7372d541 100644 --- a/docs/development/overview/build/build.instruction.rst +++ b/docs/development/overview/build/build.instruction.rst @@ -135,7 +135,7 @@ Check out the Danube release: .. code-block:: bash $ cd armband - $ git checkout danube.1.0 + $ git checkout danube.2.0 Clone the armband@OPNFV code Git repository without a SSH key ------------------------------------------------------------- diff --git a/docs/release/installation/installation.instruction.rst b/docs/release/installation/installation.instruction.rst index 97a652b5..ffdc8e97 100644 --- a/docs/release/installation/installation.instruction.rst +++ b/docs/release/installation/installation.instruction.rst @@ -60,7 +60,7 @@ baseline required to replicate the Danube release: .. code-block:: bash - $ git checkout danube.1.0 + $ git checkout danube.2.0 Go to the armband directory and build the .iso: @@ -341,7 +341,7 @@ Install additional Plugins/Features on the FUEL node .. figure:: img/plugin_install.png - **NOTE**: AArch64 Danube 1.0 ships only with ODL, OVS, BGPVPN, SFC and Tacker + **NOTE**: AArch64 Danube 2.0 ships only with ODL, OVS, BGPVPN, SFC and Tacker plugins, see *Reference 15*. Create an OpenStack Environment @@ -550,7 +550,7 @@ Allocate nodes to environment and assign functional roles OPTIONAL - Set Local Mirror Repos ================================= -**NOTE**: Support for local mirrors is incomplete in Danube 1.0. +**NOTE**: Support for local mirrors is incomplete in Danube 2.0. You may opt in for it to fetch less packages from internet during deployment, but an internet connection is still required. diff --git a/docs/release/release-notes/release-notes.rst b/docs/release/release-notes/release-notes.rst index 22922fd6..5daa6623 100644 --- a/docs/release/release-notes/release-notes.rst +++ b/docs/release/release-notes/release-notes.rst @@ -80,10 +80,10 @@ Release Data | **Project** | armband | | | | +--------------------------------------+--------------------------------------+ -| **Repo/tag** | danube.1.0 | +| **Repo/tag** | danube.2.0 | | | | +--------------------------------------+--------------------------------------+ -| **Release designation** | Danube 1.0 | +| **Release designation** | Danube 2.0 | | | | +--------------------------------------+--------------------------------------+ | **Release date** | March 27 2017 | @@ -103,7 +103,7 @@ Version Change Module Version Changes ---------------------- -This is the Danube 1.0 release. +This is the Danube 2.0 release. It is based on following upstream versions: - Fuel 10.0 Base Release @@ -114,7 +114,7 @@ It is based on following upstream versions: Document Changes ---------------- -This is the Danube 1.0 release. +This is the Danube 2.0 release. It comes with the following documentation: - Installation instructions @@ -137,7 +137,7 @@ Bug Corrections **JIRA TICKETS:** -`Danube 1.0 bug fixes <https://jira.opnfv.org/issues/?filter=11615>`_ +`Danube 2.0 bug fixes <https://jira.opnfv.org/issues/?filter=11615>`_ (Also See respective Integrated feature project's bug tracking) @@ -198,13 +198,13 @@ Workarounds ============ Test Results ============ -The Danube 1.0 release with the Fuel deployment tool has undergone QA test +The Danube 2.0 release with the Fuel deployment tool has undergone QA test runs, see separate test results. ========== References ========== -For more information on the OPNFV Danube 1.0 release, please see: +For more information on the OPNFV Danube 2.0 release, please see: OPNFV ===== diff --git a/patches/opnfv-fuel/0010-reap.py-Support-reading-MTU-values.patch b/patches/opnfv-fuel/0010-reap.py-Support-reading-MTU-values.patch new file mode 100644 index 00000000..c55824bd --- /dev/null +++ b/patches/opnfv-fuel/0010-reap.py-Support-reading-MTU-values.patch @@ -0,0 +1,104 @@ +-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +-: Copyright (c) 2017 Enea AB and others. +-: +-: All rights reserved. This program and the accompanying materials +-: are made available under the terms of the Apache License, Version 2.0 +-: which accompanies this distribution, and is available at +-: http://www.apache.org/licenses/LICENSE-2.0 +-:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: +From: Catalina Focsa <catalina.focsa@enea.com> +Date: Wed, 3 May 2017 14:53:30 +0200 +Subject: [PATCH] reap.py: Support reading MTU values + +Add an interfaces_properties list containing +mtu data for each interface + +JIRA: ARMBAND-251 + +Signed-off-by: Catalina Focsa <catalina.focsa@enea.com> +--- + deploy/reap.py | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/deploy/reap.py b/deploy/reap.py +index be72918..fe6bebf 100644 +--- a/deploy/reap.py ++++ b/deploy/reap.py +@@ -143,6 +143,31 @@ class Reap(object): + interfaces[if_name] = interface + return if_name, mac + ++ def reap_properties(self, node_id, properties): ++ properties_name = None ++ node_file = glob.glob('%s/deployment_%s/%s.yaml' ++ % (self.temp_dir, self.env_id, node_id)) ++ with open(node_file[0]) as f: ++ node_config = yaml.load(f) ++ ++ interface = {'interfaces': node_config['network_scheme']['interfaces']} ++ interface_properties = {k:v for k, v in interface['interfaces'].items()} ++ ++ mtu_properties = {} ++ for k, v in interface_properties.items(): ++ if 'mtu' in v: ++ mtu_properties[k]={'mtu':v['mtu']} ++ else: ++ mtu_properties[k] = 'null' ++ interface_properties = mtu_properties ++ ++ properties_name = self.check_dict_exists(properties, interface) if properties else None ++ if not properties_name: ++ properties_name = 'interfaces_properties' ++ properties[properties_name] = interface_properties ++ return properties_name, interface_properties ++ ++ + def reap_transformation(self, node_id, roles, transformations): + main_role = 'controller' if 'controller' in roles else 'compute' + node_file = glob.glob('%s/deployment_%s/%s.yaml' +@@ -172,8 +197,10 @@ class Reap(object): + min_node = min(real_node_ids) + interfaces = {} + transformations = {} ++ properties = {} + dea_nodes = [] + dha_nodes = [] ++ properties_nodes = [] + + for real_node_id in real_node_ids: + node_id = real_node_id - min_node + 1 +@@ -185,14 +212,19 @@ class Reap(object): + dea_node = {'id': node_id, + 'role': roles} + dha_node = {'id': node_id} ++ properties_node = {'id': node_id} + if_name, mac = self.reap_interface(real_node_id, interfaces) + log('reap transformation for node %s' % real_node_id) ++ pr_name, interface_properties = self.reap_properties(real_node_id, properties) + tr_name = self.reap_transformation(real_node_id, roles, + transformations) + dea_node.update( + {'interfaces': if_name, ++ 'properties': pr_name, + 'transformations': tr_name}) + ++ properties_node.update({'interface_configuration': interface_properties}) ++ + dha_node.update( + {'pxeMac': mac if mac else None, + 'ipmiIp': None, +@@ -203,10 +235,12 @@ class Reap(object): + + dea_nodes.append(dea_node) + dha_nodes.append(dha_node) ++ properties_nodes.append(properties_node) + + self.write_yaml(self.dha_file, {'nodes': dha_nodes}, False) + self.write_yaml(self.dea_file, {'nodes': dea_nodes}) + self.write_yaml(self.dea_file, interfaces) ++ self.write_yaml(self.dea_file, {'interfaces_properties': properties_nodes}) + self.write_yaml(self.dea_file, transformations) + self.reap_fuel_node_info() + self.write_yaml(self.dha_file, {'disks': DISKS}) +-- +1.9.1 |