diff --git a/.gitignore b/.gitignore deleted file mode 100644 index c2357ed..0000000 --- a/.gitignore +++ /dev/null @@ -1,4 +0,0 @@ -*.deb -*.rpm -.build -.tox diff --git a/LICENSE b/LICENSE deleted file mode 100644 index e06d208..0000000 --- a/LICENSE +++ /dev/null @@ -1,202 +0,0 @@ -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 deleted file mode 100644 index 6d58632..0000000 --- a/README.md +++ /dev/null @@ -1 +0,0 @@ -# detach-db diff --git a/README.rst b/README.rst new file mode 100644 index 0000000..86e34d6 --- /dev/null +++ b/README.rst @@ -0,0 +1,10 @@ +This project is no longer maintained. + +The contents of this repository are still available in the Git +source code management system. To see the contents of this +repository before it reached its end of life, please check out the +previous commit with "git checkout HEAD^1". + +For any further questions, please email +openstack-discuss@lists.openstack.org or join #openstack-dev on +Freenode. diff --git a/deployment_scripts/database-haproxy.pp b/deployment_scripts/database-haproxy.pp deleted file mode 100644 index 4a08504..0000000 --- a/deployment_scripts/database-haproxy.pp +++ /dev/null @@ -1,21 +0,0 @@ -notice('MODULAR: haproxy-database.pp') - -$is_primary_controller = hiera('primary_controller') -$custom_mysql_setup_class = hiera('custom_mysql_setup_class') -$mysqld_ipaddresses = hiera('mysqld_ipaddresses') -$mysqld_names = hiera('mysqld_names') -$database_vip = hiera('database_vip') - -Haproxy::Service { use_include => true } -Haproxy::Balancermember { use_include => true } - -if ($custom_mysql_setup_class in ['galera', 'percona', 'percona_packages']) { - class { 'openstack::ha::mysqld': - is_primary_controller => $is_primary_controller, - server_names => $mysqld_names, - ipaddresses => $mysqld_ipaddresses, - public_virtual_ip => $database_vip, - internal_virtual_ip => $database_vip, - } -} - diff --git a/deployment_scripts/database_firewall.pp b/deployment_scripts/database_firewall.pp deleted file mode 100644 index f775c74..0000000 --- a/deployment_scripts/database_firewall.pp +++ /dev/null @@ -1,54 +0,0 @@ -notice('MODULAR: detach-database/database_firewall.pp') - -$network_scheme = hiera_hash('network_scheme') -$network_metadata = hiera_hash('network_metadata') - -$corosync_input_port = 5404 -$corosync_output_port = 5405 -$galera_clustercheck_port = 49000 -$galera_ist_port = 4568 -$galera_sst_port = 4444 -$mysql_backend_port = 3307 -$mysql_gcomm_port = 4567 -$mysql_port = 3306 -$pcsd_port = 2224 - - -$corosync_networks = get_routable_networks_for_network_role($network_scheme, 'mgmt/corosync') -$database_networks = get_routable_networks_for_network_role($network_scheme, 'mgmt/database') - -# allow connections from haproxy namespace -firewall {'030 allow connections from haproxy namespace': - source => '240.0.0.2', - action => 'accept', -} - -openstack::firewall::multi_net {'101 mysql': - port => [$mysql_port, $mysql_backend_port, $mysql_gcomm_port, - $galera_ist_port, $galera_sst_port, - $galera_clustercheck_port], - proto => 'tcp', - action => 'accept', - source_nets => $database_networks, -} - -openstack::firewall::multi_net {'113 corosync-input': - port => $corosync_input_port, - proto => 'udp', - action => 'accept', - source_nets => $corosync_networks, -} - -openstack::firewall::multi_net {'114 corosync-output': - port => $corosync_output_port, - proto => 'udp', - action => 'accept', - source_nets => $corosync_networks, -} - -openstack::firewall::multi_net {'115 pcsd-server': - port => $pcsd_port, - proto => 'tcp', - action => 'accept', - source_nets => $corosync_networks, -} diff --git a/deployment_scripts/database_hiera_override.pp b/deployment_scripts/database_hiera_override.pp deleted file mode 100644 index 0dce760..0000000 --- a/deployment_scripts/database_hiera_override.pp +++ /dev/null @@ -1,112 +0,0 @@ -notice('MODULAR: detach-database/database_hiera_override.pp') - -$detach_database_plugin = hiera('detach-database', undef) -$hiera_dir = '/etc/hiera/plugins' -$plugin_name = 'detach-database' -$plugin_yaml = "${plugin_name}.yaml" - -if $detach_database_plugin { - $network_metadata = hiera_hash('network_metadata') - if ! $network_metadata['vips']['database'] { - fail('Database VIP is not defined') - } - $yaml_additional_config = pick($detach_database_plugin['yaml_additional_config'], {}) - $settings_hash = parseyaml($detach_database_plugin['yaml_additional_config'], {}) - - $nodes_hash = $network_metadata['nodes'] - $management_vip = hiera('management_vip') - $database_vip = pick($settings_hash['remote_database'],$network_metadata['vips']['database']['ipaddr']) - - #Set database_nodes values - $database_roles = [ 'primary-standalone-database', 'standalone-database' ] - $database_nodes = get_nodes_hash_by_roles($network_metadata, $database_roles) - $database_address_map = get_node_to_ipaddr_map_by_network_role($database_nodes, 'mgmt/database') - $database_nodes_ips = values($database_address_map) - $database_nodes_names = keys($database_address_map) - - ################### - $roles = join(hiera('roles'), ',') - case $roles { - /primary-standalone-database/: { - $primary_database = true - $primary_controller = true - } - /^primary/: { - $primary_database = false - $primary_controller = true - } - default: { - $primary_database = false - $primary_controller = false - } - } - case $roles { - /standalone-database/: { - $corosync_roles = $database_roles - $deploy_vrouter = false - $mysql_enabled = true - $corosync_nodes = $database_nodes - $colocate_haproxy = 'false' - } - default: { - $mysql_enabled = false - } - } - ################### - $calculated_content = inline_template(' -primary_database: <%= @primary_database %> -database_vip: <%= @database_vip %> -<% if @database_nodes -%> -<% require "yaml" -%> -database_nodes: -<%= YAML.dump(@database_nodes).sub(/--- *$/,"") %> -<% end -%> -mysqld_ipaddresses: -<% if @database_nodes_ips -%> -<% -@database_nodes_ips.each do |databasenode| -%> - <%= databasenode %> -<% end -%> -<% end -%> -<% if @database_nodes_names -%> -mysqld_names: -<% -@database_nodes_names.each do |databasenode| -%> - <%= databasenode %> -<% end -%> -<% end -%> -mysql: - enabled: <%= @mysql_enabled %> -primary_controller: <%= @primary_controller %> -<% if @corosync_nodes -%> -<% require "yaml" -%> -corosync_nodes: -<%= YAML.dump(@corosync_nodes).sub(/--- *$/,"") %> -<% end -%> -<% if @corosync_roles -%> -corosync_roles: -<% -@corosync_roles.each do |crole| -%> - <%= crole %> -<% end -%> -<% end -%> -<% if @colocate_haproxy -%> -colocate_haproxy: <%= @colocate_haproxy %> -<% end -%> -deploy_vrouter: <%= @deploy_vrouter %> -') - - ################### - file {'/etc/hiera/override': - ensure => directory, - } -> - file { "${hiera_dir}/${plugin_yaml}": - ensure => file, - content => "${detach_database_plugin['yaml_additional_config']}\n${calculated_content}\n", - } - - package {'ruby-deep-merge': - ensure => 'installed', - } -} - diff --git a/deployment_tasks.yaml b/deployment_tasks.yaml deleted file mode 100644 index e4f4d3b..0000000 --- a/deployment_tasks.yaml +++ /dev/null @@ -1,73 +0,0 @@ -############################################## -# Deployment groups -- id: primary-standalone-database - type: group - role: [primary-standalone-database] - requires: [deploy_start] - required_for: [deploy_end] - tasks: [hiera, fuel_pkgs, globals, tools, logging, netconfig, - hosts, firewall, database-firewall, deploy_start, primary-cluster, - database-virtual-ip, primary-cluster-haproxy, openstack-haproxy-stats, - primary-database] - parameters: - strategy: - type: one_by_one - -- id: standalone-database - type: group - role: [standalone-database] - requires: [deploy_start, primary-standalone-database, primary-controller, controller] - required_for: [deploy_end] - tasks: [hiera, fuel_pkgs, globals, tools, logging, netconfig, - hosts, firewall, database-firewall, deploy_start, cluster, - database-virtual-ip, cluster-haproxy, openstack-haproxy-stats, database] - parameters: - strategy: - type: parallel - -# Deployment tasks -- id: database-hiera-override - type: puppet - version: 2.0.0 - role: ['/.*/'] - requires: [globals] - required_for: [logging] - parameters: - puppet_manifest: "database_hiera_override.pp" - puppet_modules: "/etc/puppet/modules" - timeout: 120 - -- id: database-firewall - type: puppet - version: 2.0.0 - role: [primary-standalone-database, standalone-database] - requires: [globals, firewall] - required_for: [primary-cluster, cluster, primary-database, database] - parameters: - puppet_manifest: "database_firewall.pp" - puppet_modules: "/etc/puppet/modules" - timeout: 120 - - -- id: database-haproxy - type: puppet - version: 2.0.0 - role: [primary-standalone-database, standalone-database] - required_for: [primary-database, database, deploy_end] - requires: [deploy_start, database-virtual-ip, primary-cluster-haproxy, - cluster-haproxy, openstack-haproxy-stats] - parameters: - puppet_manifest: "database-haproxy.pp" - puppet_modules: "/etc/puppet/modules" - timeout: 3600 - -- id: database-virtual-ip - type: puppet - version: 2.0.0 - role: [primary-standalone-database, standalone-database] - required_for: [primary-database, database, deploy_end] - requires: [database-firewall, primary-cluster, cluster] - parameters: - puppet_manifest: "/etc/puppet/modules/osnailyfacter/modular/virtual_ips/virtual_ips.pp" - puppet_modules: "/etc/puppet/modules" - timeout: 3600 diff --git a/environment_config.yaml b/environment_config.yaml deleted file mode 100644 index e27f4ea..0000000 --- a/environment_config.yaml +++ /dev/null @@ -1,17 +0,0 @@ -attributes: - metadata: - label: "Detach Database Plugin" - weight: 90 - yaml_additional_config: - type: "textarea" - weight: 52 - value: | - #Uncomment to enable remote DB: - #remote_db: '10.20.99.1' - #remote_db_password: 'secret' - custom_mysql_setup_class: 'galera' - label: "Additional config" - description: "Input must be valid YAML" - regex: - source: '.+' - error: "This field should not be empty" diff --git a/metadata.yaml b/metadata.yaml deleted file mode 100644 index c8550fe..0000000 --- a/metadata.yaml +++ /dev/null @@ -1,38 +0,0 @@ -# Plugin name -name: detach-database -# Human-readable name for your plugin -title: Separate DB from controller -# Plugin version -version: '1.1.0' -# Description -description: Creates separate Database role for deploying -# Required fuel version -fuel_version: ['9.0'] -# Specify license of your plugin -licenses: ['Apache License Version 2.0'] -# Specify author or company name -authors: ['Matthew Mosesohn','Mirantis'] -# A link to the plugin's page -homepage: 'https://github.com/stackforge/fuel-plugins' -# Specify a group which your plugin implements, possible options: -# network, storage, storage::cinder, storage::glance, hypervisor -groups: [network] -# Change `false` to `true` if the plugin can be installed in the environment -# after the deployment. -is_hotpluggable: false - -# The plugin is compatible with releases in the list -releases: - - os: ubuntu - version: mitaka-9.0 - mode: ['ha'] - deployment_scripts_path: deployment_scripts/ - repository_path: repositories/ubuntu - - os: ubuntu - version: newton-10.0 - mode: ['ha'] - deployment_scripts_path: deployment_scripts/ - repository_path: repositories/ubuntu - -# Version of plugin package -package_version: '4.0.0' diff --git a/network_roles.yaml b/network_roles.yaml deleted file mode 100644 index f938977..0000000 --- a/network_roles.yaml +++ /dev/null @@ -1,19 +0,0 @@ -# Unique network role name -- id: "detach_database_database_vip" - # Role mapping to network - default_mapping: "management" - properties: - # Should be true if network role requires subnet being set - subnet: true - # Should be true if network role requires gateway being set - gateway: false - # List of VIPs to be allocated - vip: - # Unique VIP name - - name: "database" - # Optional linux namespace for VIP - namespace: "haproxy" - alias: "database" - node_roles: - - "primary-standalone-database" - - "standalone-database" diff --git a/node_roles.yaml b/node_roles.yaml deleted file mode 100644 index 05d3015..0000000 --- a/node_roles.yaml +++ /dev/null @@ -1,14 +0,0 @@ -standalone-database: - name: "Database" - description: "Separated DB from controller" - has_primary: true # whether has primary role or not - public_ip_required: false # whether requires public net or not - weight: 100 # weight that will be used for ordering on fuel ui - conflicts: - - controller - - compute - limits: - min: 1 - update_required: - - standalone-database - - controller diff --git a/post_install.sh b/post_install.sh deleted file mode 100755 index f3bcd73..0000000 --- a/post_install.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -#Add custom scripts/workarounds here diff --git a/pre_build_hook b/pre_build_hook deleted file mode 100755 index 18cdd51..0000000 --- a/pre_build_hook +++ /dev/null @@ -1,5 +0,0 @@ -#!/bin/bash -x - -# Add here any the actions which are required before plugin build -# like packages building, packages downloading from mirrors and so on. -# The script should return 0 if there were no errors. diff --git a/repositories/centos/.gitkeep b/repositories/centos/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/repositories/ubuntu/.gitkeep b/repositories/ubuntu/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/tasks.yaml b/tasks.yaml deleted file mode 100644 index fe51488..0000000 --- a/tasks.yaml +++ /dev/null @@ -1 +0,0 @@ -[] diff --git a/uninstall.sh b/uninstall.sh deleted file mode 100755 index f3bcd73..0000000 --- a/uninstall.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/bash -#Add custom scripts/workarounds here diff --git a/volumes.yaml b/volumes.yaml deleted file mode 100644 index 1646a08..0000000 --- a/volumes.yaml +++ /dev/null @@ -1,6 +0,0 @@ -# Set here new volumes for your role -volumes: [] -volumes_roles_mapping: - standalone-database: - # Default role mapping - - {allocate_size: "min", id: "os"}