From 92bcc1574b163b19f9a402b9d03591be6a6b16e1 Mon Sep 17 00:00:00 2001 From: Lnic Date: Wed, 30 Sep 2015 11:31:06 +0200 Subject: [PATCH] First release, compatibility with Fuel 7.0 - Use nova provider - rework site.pp Change-Id: Idd7249b0b14081062cca1cb916db6a1740c56f55 --- LICENSE | 202 ++++++++++++++++++ README.md | 110 ++++++++++ .../availability_zones/manifests/init.pp | 42 ++++ deployment_scripts/puppet/site.pp | 14 ++ environment_config.yaml | 83 +++++++ figures/availability-zones-plugin.png | Bin 0 -> 58553 bytes metadata.yaml | 32 +++ pre_build_hook | 4 + repositories/centos/.gitkeep | 0 repositories/ubuntu/.gitkeep | 0 tasks.yaml | 8 + 11 files changed, 495 insertions(+) create mode 100644 LICENSE create mode 100644 README.md create mode 100644 deployment_scripts/puppet/modules/availability_zones/manifests/init.pp create mode 100644 deployment_scripts/puppet/site.pp create mode 100644 environment_config.yaml create mode 100644 figures/availability-zones-plugin.png create mode 100644 metadata.yaml create mode 100644 pre_build_hook create mode 100644 repositories/centos/.gitkeep create mode 100644 repositories/ubuntu/.gitkeep create mode 100644 tasks.yaml diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e06d208 --- /dev/null +++ b/LICENSE @@ -0,0 +1,202 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "{}" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright {yyyy} {name of copyright owner} + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + diff --git a/README.md b/README.md new file mode 100644 index 0000000..2e2a625 --- /dev/null +++ b/README.md @@ -0,0 +1,110 @@ +Fuel availability-zones plugin for Fuel +============================= + +availability-zones plugin +--------------- + +Overview +-------- +Openstack can configure availability zones as logical groups for compute nodes, this plugin allow to configure from 1 to 4 availability zones + +This repo contains all necesary files to build availability-zones Fuel plugin. + +Requirements +------------ + +| Requirement | Version/Comment | +|----------------------------------|---------------------------------------------------------| +| Mirantis Openstack compatibility | 7.0 | +|----------------------------------|---------------------------------------------------------| + + +Recommendations +--------------- + +None. + +Limitations +----------- + +Only 4 availability zones can be defined. +Zone's name can't contain white space character / specials characters +Zone members must be defined by their full and correct hostname + +Installation Guide +================== + +availability-zones plugin installation +---------------------------- + +1. Clone the fuel-plugin repo from: https://github.com/stackforge/fuel-plugin-availability-zones.git + + ``git clone`` + +2. Install the Fuel Plugin Builder: + + ``pip install fuel-plugin-builder`` + +3. Build availability-zones Fuel plugin: + + ``fpb --build fuel-plugin-availability-zones/`` + +4. The availability-zones-.rpm file will be created in the plugin folder (fuel-plugin-availability-zones) + +5. Move this file to the Fuel Master node with secure copy (scp): + + ``scp availability-zones-.rpm root@::/tmp`` + ``cd /tmp`` + +6. Install the availability-zones plugin: + + ``fuel plugins --install availability-zones-.rpm`` + +7. Verify that the plugin is installed correctly: + ``fuel plugins --list`` + +8. Plugin is ready to use and can be enabled on the Settings tab of the Fuel web UI. + +User Guide +========== + +availability-zones plugin configuration +----------------------------- + +1. Create a new environment with the Fuel UI wizard + +2. Add multiples nodes with the "Compute" role. + +3. Click on the settings tab of the Fuel web UI + +4. Scroll down the page, select the "availability-zones plugin" checkbox + and fill-in the requiered fields + - Choose the number of availability zone (from 1 to 4) + - For each zone you can configure the name of it (/!\ no special characters allowed) + - For each zone you must fill the member list with fqdn of compute node separated by comma + (eg: node-25.domain.tld,node-26.domain.tld) + +Here is a screenshot of the fields + +![availability-zones fields](./figures/availability-zones-plugin.png "availability-zones-fields") + +Deployment details +------------------ + +Create each availability zone +Add host each host to the correct availability zone +If some compute nodes are not present in this custom availability zones, +they will be member of default availability zone (nova, defined by Fuel) + +Known isues +------------ + +None + +Release Notes +------------- + +**1.0.0** + +* Initial release of the plugin + diff --git a/deployment_scripts/puppet/modules/availability_zones/manifests/init.pp b/deployment_scripts/puppet/modules/availability_zones/manifests/init.pp new file mode 100644 index 0000000..eb0678f --- /dev/null +++ b/deployment_scripts/puppet/modules/availability_zones/manifests/init.pp @@ -0,0 +1,42 @@ +class availability_zones ( +$nb_av, +$label_zone_1, +$label_zone_2, +$label_zone_3, +$label_zone_4, +$zone_1, +$zone_2, +$zone_3, +$zone_4, +){ + nova_aggregate { $label_zone_1: + ensure => 'present', + name => $label_zone_1, + availability_zone => $label_zone_1, + hosts => $zone_1, + } + if $nb_av > 1 { + nova_aggregate { $label_zone_2: + ensure => 'present', + name => $label_zone_2, + availability_zone => $label_zone_2, + hosts => $zone_2, + } + } + if $nb_av > 2 { + nova_aggregate { $label_zone_3: + ensure => 'present', + name => $label_zone_3, + availability_zone => $label_zone_3, + hosts => $zone_3, + } + } + if $nb_av > 3 { + nova_aggregate { $label_zone_4: + ensure => 'present', + name => $label_zone_4, + availability_zone => $label_zone_4, + hosts => $zone_4, + } + } +} diff --git a/deployment_scripts/puppet/site.pp b/deployment_scripts/puppet/site.pp new file mode 100644 index 0000000..b2e77f8 --- /dev/null +++ b/deployment_scripts/puppet/site.pp @@ -0,0 +1,14 @@ +$availability_zone = hiera('availability_zones') +$nb_av = $availability_zone['nb_av'] + +class { 'availability_zones': + nb_av => $availability_zone['nb_av'], + label_zone_1 => $availability_zone['label_availability_zones_1'], + label_zone_2 => $availability_zone['label_availability_zones_2'], + label_zone_3 => $availability_zone['label_availability_zones_3'], + label_zone_4 => $availability_zone['label_availability_zones_4'], + zone_1 => $availability_zone['availability_zones_1'], + zone_2 => $availability_zone['availability_zones_2'], + zone_3 => $availability_zone['availability_zones_3'], + zone_4 => $availability_zone['availability_zones_4'], +} \ No newline at end of file diff --git a/environment_config.yaml b/environment_config.yaml new file mode 100644 index 0000000..5b1fd68 --- /dev/null +++ b/environment_config.yaml @@ -0,0 +1,83 @@ +attributes: + nb_av: + type: "select" + weight: 10 + value: "1" + label: "Availibility zones" + description: "Number of availibility zones" + values: + - data: "1" + label: "1" + - data: "2" + label: "2" + - data: "3" + label: "3" + - data: "4" + label: "4" + label_availability_zones_1: + label: "Zone 1 name" + description: "Name of availability zone 1" + value: "Zone_1" + weight: 11 + type: "text" + availability_zones_1: + value: "" + label: "Zone 1" + description: "List of compute node fqdn members of availability zone 1 (comma separated)" + weight: 12 + type: "text" + label_availability_zones_2: + label: "Zone 2 name" + description: "Name of availability zone 2" + value: "Zone_2" + weight: 13 + type: "text" + restrictions: + - condition: "settings:availability_zones.nb_av.value != '2' and settings:availability_zones.nb_av.value != '3' and settings:availability_zones.nb_av.value != '4'" + action: "hide" + availability_zones_2: + value: "" + label: "Zone 2" + description: "List of compute node fqdn members of availability zone 2 (comma separated)" + weight: 14 + type: "text" + restrictions: + - condition: "settings:availability_zones.nb_av.value != '2' and settings:availability_zones.nb_av.value != '3' and settings:availability_zones.nb_av.value != '4'" + action: "hide" + label_availability_zones_3: + label: "Zone 3 name" + description: "Name of availability zone 3" + value: "Zone_3" + weight: 15 + type: "text" + restrictions: + - condition: "settings:availability_zones.nb_av.value != '3' and settings:availability_zones.nb_av.value != '4'" + action: "hide" + availability_zones_3: + value: "" + label: "Zone 3" + description: "List of compute node fqdn members of availability zone 3 (comma separated)" + weight: 16 + type: "text" + restrictions: + - condition: "settings:availability_zones.nb_av.value != '3' and settings:availability_zones.nb_av.value != '4'" + action: "hide" + label_availability_zones_4: + label: "Zone 4 name" + description: "Name of availability zone 4" + value: "Zone_4" + weight: 17 + type: "text" + restrictions: + - condition: "settings:availability_zones.nb_av.value != '4'" + action: "hide" + availability_zones_4: + value: "" + label: "Zone 4" + description: "List of compute node fqdn members of availability zone 4 (comma separated)" + weight: 18 + type: "text" + restrictions: + - condition: "settings:availability_zones.nb_av.value != '4'" + action: "hide" + diff --git a/figures/availability-zones-plugin.png b/figures/availability-zones-plugin.png new file mode 100644 index 0000000000000000000000000000000000000000..18791d4120b921f4fb6618d1eeb9b149f82a7b3d GIT binary patch literal 58553 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

RoURLopYMyePo){i(tn5ypfs7E2(pvN^ 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