diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index a3600ac..0000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,19 +0,0 @@ -The source repository for this project can be found at: - - https://opendev.org/openstack/openstack-ansible-os_senlin - -Pull requests submitted through GitHub are not monitored. - -To start contributing to OpenStack, follow the steps in the contribution guide -to set up and use Gerrit: - - https://docs.openstack.org/contributors/code-and-documentation/quick-start.html - -Bugs should be filed on Launchpad: - - https://bugs.launchpad.net/openstack-ansible - -For more specific information about contributing to this repository, see the -openstack-ansible contributor guide: - - https://docs.openstack.org/openstack-ansible/latest/contributor/contributing.html 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.rst b/README.rst index 5b337eb..363d547 100644 --- a/README.rst +++ b/README.rst @@ -1,35 +1,10 @@ -======================== -Team and repository tags -======================== +This project is no longer maintained. -.. image:: https://governance.openstack.org/tc/badges/openstack-ansible-os_senlin.svg - :target: https://governance.openstack.org/tc/reference/tags/index.html +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". -.. Change things from this point on - -====================== -OpenStack-Ansible senlin -====================== - -Ansible role to install OpenStack senlin. - -This role will install: - * senlin-api - * senlin-engine - * senlin-conductor - * senlin-health-manager - - Documentation for the project can be found at: - https://docs.openstack.org/openstack-ansible-os_senlin/latest/ - -Release notes for the project can be found at: - https://docs.openstack.org/releasenotes/openstack-ansible-os_senlin/ - -The project source code repository is located at: - https://opendev.org/openstack/openstack-ansible-os_senlin/ - -The project home is at: - https://launchpad.net/openstack-ansible - -The project bug tracker is located at: - https://bugs.launchpad.net/openstack-ansible +For any further questions, please email +openstack-discuss@lists.openstack.org with `[openstack-ansible]` in +topic or join #openstack-ansible on OFTC. diff --git a/Vagrantfile b/Vagrantfile deleted file mode 100644 index 2a83de4..0000000 --- a/Vagrantfile +++ /dev/null @@ -1,46 +0,0 @@ -# Note: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/Vagrantfile -# -# If you need to perform any change on it, you should modify the central file, -# then, an OpenStack CI job will propagate your changes to every OSA repository -# since every repo uses the same Vagrantfile - -# Verify whether required plugins are installed. -required_plugins = [ "vagrant-disksize" ] -required_plugins.each do |plugin| - if not Vagrant.has_plugin?(plugin) - raise "The vagrant plugin #{plugin} is required. Please run `vagrant plugin install #{plugin}`" - end -end - -Vagrant.configure(2) do |config| - config.vm.provider "virtualbox" do |v| - v.memory = 6144 - v.cpus = 2 - # https://github.com/hashicorp/vagrant/issues/9524 - v.customize ["modifyvm", :id, "--audio", "none"] - end - - config.vm.synced_folder ".", "/vagrant", type: "rsync" - - config.vm.provision "shell", - privileged: false, - inline: <<-SHELL - cd /vagrant - ./run_tests.sh - SHELL - - config.vm.define "centos8" do |centos8| - centos8.vm.box = "centos/8" - end - - config.vm.define "debian10" do |debian10| - debian10.vm.box = "debian/buster64" - end - - config.vm.define "ubuntu2004" do |focal| - focal.disksize.size = "40GB" - focal.vm.box = "ubuntu/focal64" - end -end diff --git a/bindep.txt b/bindep.txt deleted file mode 100644 index 3db7d13..0000000 --- a/bindep.txt +++ /dev/null @@ -1,47 +0,0 @@ -# This file facilitates OpenStack-CI package installation -# before the execution of any tests. -# -# See the following for details: -# - https://docs.openstack.org/infra/bindep/ -# - https://opendev.org/openstack-infra/bindep -# -# Even if the role does not make use of this facility, it -# is better to have this file empty, otherwise OpenStack-CI -# will fall back to installing its default packages which -# will potentially be detrimental to the tests executed. -# -# Note: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/bindep.txt -# If you need to remove or add extra dependencies, you should modify -# the central file instead and once your change is accepted then update -# this file as well. The purpose of this file is to ensure that Python and -# Ansible have all their necessary binary requirements on the test host before -# tox executes. Any binary requirements needed by services/roles should be -# installed by those roles in their applicable package install tasks, not through -# using this file. -# - -# The gcc compiler -gcc - -# Base requirements for Ubuntu -git-core [platform:dpkg] -libssl-dev [platform:dpkg] -libffi-dev [platform:dpkg] -python3 [platform:dpkg] -python3-apt [platform:dpkg] -python3-dev [platform:dpkg] - -# Base requirements for RPM distros -gcc-c++ [platform:rpm] -git [platform:rpm] -libffi-devel [platform:rpm] -openssl-devel [platform:rpm] -python3-dnf [platform:fedora] -python3-devel [platform:rpm] - -# For SELinux -libselinux-python3 [platform:redhat] -libsemanage-python3 [platform:redhat] -iptables [platform:redhat] diff --git a/defaults/main.yml b/defaults/main.yml deleted file mode 100644 index 43bab9d..0000000 --- a/defaults/main.yml +++ /dev/null @@ -1,348 +0,0 @@ ---- -# Copyright 2020, Satish Patel -# -# 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. - -# The variables file used by the playbooks in the Senlin-api group. -# These don't have to be explicitly imported by vars_files: they are autopopulated. - -# Enable/Disable Ceilometer -senlin_ceilometer_enabled: "{{ (groups['ceilometer_all'] is defined) and (groups['ceilometer_all'] | length > 0) }}" - -## Verbosity Options -debug: False - -# Set the host which will execute the shade modules -# for the service setup. The host must already have -# clouds.yaml properly configured. -senlin_service_setup_host: "{{ openstack_service_setup_host | default('localhost') }}" -senlin_service_setup_host_python_interpreter: >- - {{ - openstack_service_setup_host_python_interpreter | default( - (senlin_service_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable'])) - }} - -# Set the package install state for distribution packages -# Options are 'present' and 'latest' -senlin_package_state: "{{ package_state | default('latest') }}" - -# Set installation method. -senlin_install_method: "{{ service_install_method | default('source') }}" -senlin_venv_python_executable: "{{ openstack_venv_python_executable | default('python3') }}" - -senlin_git_repo: https://opendev.org/openstack/senlin -senlin_git_install_branch: master -senlin_upper_constraints_url: >- - {{ requirements_git_url | default('https://releases.openstack.org/constraints/upper/' ~ requirements_git_install_branch | default('master')) }} -senlin_git_constraints: - - "--constraint {{ senlin_upper_constraints_url }}" - -senlin_pip_install_args: "{{ pip_install_options | default('') }}" - -# Name of the virtual env to deploy into -senlin_venv_tag: "{{ venv_tag | default('untagged') }}" -senlin_bin: "{{ _senlin_bin }}" - -senlin_fatal_deprecations: False - -## Database info -senlin_db_setup_host: "{{ openstack_db_setup_host | default('localhost') }}" -senlin_db_setup_python_interpreter: >- - {{ - openstack_db_setup_python_interpreter | default( - (senlin_db_setup_host == 'localhost') | ternary(ansible_playbook_python, ansible_facts['python']['executable'])) - }} -senlin_galera_address: "{{ galera_address | default('127.0.0.1') }}" -senlin_galera_user: senlin -senlin_galera_database: senlin -senlin_galera_use_ssl: "{{ galera_use_ssl | default(False) }}" -senlin_galera_ssl_ca_cert: "{{ galera_ssl_ca_cert | default('') }}" -senlin_galera_port: "{{ galera_port | default('3306') }}" -senlin_db_max_overflow: "{{ openstack_db_max_overflow | default('50') }}" -senlin_db_max_pool_size: "{{ openstack_db_max_pool_size | default('5') }}" -senlin_db_pool_timeout: "{{ openstack_db_pool_timeout | default('30') }}" -senlin_db_connection_recycle_time: "{{ openstack_db_connection_recycle_time | default('600') }}" - -## Oslo Messaging Info -# RPC -senlin_oslomsg_rpc_host_group: "{{ oslomsg_rpc_host_group | default('rabbitmq_all') }}" -senlin_oslomsg_rpc_setup_host: "{{ (senlin_oslomsg_rpc_host_group in groups) | ternary(groups[senlin_oslomsg_rpc_host_group][0], 'localhost') }}" -senlin_oslomsg_rpc_transport: "{{ oslomsg_rpc_transport | default('rabbit') }}" -senlin_oslomsg_rpc_servers: "{{ oslomsg_rpc_servers | default('127.0.0.1') }}" -senlin_oslomsg_rpc_port: "{{ oslomsg_rpc_port | default('5672') }}" -senlin_oslomsg_rpc_use_ssl: "{{ oslomsg_rpc_use_ssl | default(False) }}" -senlin_oslomsg_rpc_userid: senlin -# vhost name depends on value of oslomsg_rabbit_quorum_queues. In case quorum queues -# are not used - vhost name will be prefixed with leading `/`. -senlin_oslomsg_rpc_vhost: - - name: /senlin - state: "{{ senlin_oslomsg_rabbit_quorum_queues | ternary('absent', 'present') }}" - - name: senlin - state: "{{ senlin_oslomsg_rabbit_quorum_queues | ternary('present', 'absent') }}" -senlin_oslomsg_rpc_ssl_version: "{{ oslomsg_rpc_ssl_version | default('TLSv1_2') }}" -senlin_oslomsg_rpc_ssl_ca_file: "{{ oslomsg_rpc_ssl_ca_file | default('') }}" - -# Notify -senlin_oslomsg_notify_host_group: "{{ oslomsg_notify_host_group | default('rabbitmq_all') }}" -senlin_oslomsg_notify_setup_host: "{{ (senlin_oslomsg_notify_host_group in groups) | ternary(groups[senlin_oslomsg_notify_host_group][0], 'localhost') }}" -senlin_oslomsg_notify_transport: "{{ oslomsg_notify_transport | default('rabbit') }}" -senlin_oslomsg_notify_servers: "{{ oslomsg_notify_servers | default('127.0.0.1') }}" -senlin_oslomsg_notify_port: "{{ oslomsg_notify_port | default('5672') }}" -senlin_oslomsg_notify_use_ssl: "{{ oslomsg_notify_use_ssl | default(False) }}" -senlin_oslomsg_notify_userid: "{{ senlin_oslomsg_rpc_userid }}" -senlin_oslomsg_notify_password: "{{ senlin_oslomsg_rpc_password }}" -senlin_oslomsg_notify_vhost: "{{ senlin_oslomsg_rpc_vhost }}" -senlin_oslomsg_notify_ssl_version: "{{ oslomsg_notify_ssl_version | default('TLSv1_2') }}" -senlin_oslomsg_notify_ssl_ca_file: "{{ oslomsg_notify_ssl_ca_file | default('') }}" - -## RabbitMQ integration -senlin_oslomsg_rabbit_quorum_queues: "{{ oslomsg_rabbit_quorum_queues | default(True) }}" -senlin_oslomsg_rabbit_quorum_delivery_limit: "{{ oslomsg_rabbit_quorum_delivery_limit | default(0) }}" -senlin_oslomsg_rabbit_quorum_max_memory_bytes: "{{ oslomsg_rabbit_quorum_max_memory_bytes | default(0) }}" - -## (Qdrouterd) integration -# TODO(ansmith): Change structure when more backends will be supported -senlin_oslomsg_amqp1_enabled: "{{ senlin_oslomsg_rpc_transport == 'amqp' }}" - -## Senlin User / Group -senlin_system_user_name: senlin -senlin_system_group_name: senlin -senlin_system_shell: /bin/false -senlin_system_comment: senlin system user -senlin_system_home_folder: "/var/lib/{{ senlin_system_user_name }}" - -## Default domain -senlin_project_domain_name: Default -senlin_project_name: admin -senlin_user_domain_name: Default - -# osprofiler -senlin_profiler_enabled: false -senlin_profiler_trace_sqlalchemy: false - -## Auth -senlin_service_region: "{{ service_region | default('RegionOne') }}" -senlin_service_project_name: "service" -senlin_service_user_name: "senlin" -senlin_service_role_names: - - admin - - service -senlin_service_token_roles: - - service -senlin_service_token_roles_required: "{{ openstack_service_token_roles_required | default(True) }}" -senlin_service_project_domain_id: default -senlin_service_user_domain_id: default -senlin_keystone_auth_plugin: password - -## Trustee Auth -senlin_service_trustee_project_name: "service" -senlin_service_trustee_user_name: "senlin" -senlin_service_trustee_password: "{{ senlin_service_password }}" -senlin_service_trustee_project_domain_id: "default" -senlin_service_trustee_user_domain_id: "default" -senlin_keystone_trustee_auth_plugin: "{{ senlin_keystone_trustee_auth_type }}" -senlin_keystone_trustee_auth_type: password - -## Senlin api service type and data -senlin_service_name: senlin -senlin_service_description: "Senlin Clustering Service" -senlin_service_port: 8778 -senlin_service_proto: http -senlin_service_publicuri_proto: "{{ openstack_service_publicuri_proto | default(senlin_service_proto) }}" -senlin_service_adminuri_proto: "{{ openstack_service_adminuri_proto | default(senlin_service_proto) }}" -senlin_service_internaluri_proto: "{{ openstack_service_internaluri_proto | default(senlin_service_proto) }}" -senlin_service_type: clustering -senlin_service_publicuri: "{{ senlin_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ senlin_service_port }}" -senlin_service_publicurl: "{{ senlin_service_publicuri }}" -senlin_service_adminuri: "{{ senlin_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ senlin_service_port }}" -senlin_service_adminurl: "{{ senlin_service_adminuri }}" -senlin_service_internaluri: "{{ senlin_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ senlin_service_port }}" -senlin_service_internalurl: "{{ senlin_service_internaluri }}" - -## Senlin tunable options -senlin_max_clusters_per_project: 100 -senlin_max_nodes_per_cluster: 1000 -senlin_periodic_interval: 60 -senlin_periodic_interval_max: 120 -senlin_periodic_fuzzy_delay: 10 -senlin_health_check_interval_min: 60 -senlin_check_interval_max: 3600 -senlin_max_response_size: 524288 -senlin_default_action_timeout: 3600 -senlin_default_nova_timeout: 600 -senlin_max_actions_per_batch: 0 -senlin_batch_interval: 3 -senlin_lock_retry_times: 3 -senlin_lock_retry_interval: 10 -senlin_database_retry_limit: 10 -senlin_database_max_retry_interval: 2 -senlin_engine_life_check_timeout: 2 -senlin_service_down_time: 60 - -## If the following variables are unset in user_variables, the value set will be half the number of available VCPUs -# senlin_engine_workers: 4 -# senlin_api_workers: 4 -# senlin_conductor_workers: 4 -# senlin_health_manager_workers: 4 - -## Cap the maximum number of threads / workers when a user value is unspecified. -senlin_api_threads_max: 16 -senlin_api_threads: >- - {{ [[(ansible_facts['processor_vcpus'] // ansible_facts['processor_threads_per_core']) | default(1), 1] | max * 2, senlin_api_threads_max] | min }} - -senlin_service_in_ldap: "{{ service_ldap_backend_enabled | default(False) }}" - -## Policy vars -# Provide a list of access controls to update the default policy.json with. These changes will be merged -# with the access controls in the default policy.json. E.g. -# senlin_policy_overrides: -# "cloudformation:ListStacks": "rule:deny_stack_user" -# "cloudformation:CreateStack": "rule:deny_stack_user" - -# Common pip packages -senlin_pip_packages: - - cryptography - - "git+{{ senlin_git_repo }}@{{ senlin_git_install_branch }}#egg=senlin" - - keystonemiddleware - - osprofiler - - PyMySQL - - pymemcache - - python-memcached - - systemd-python - -# Memcached override -senlin_memcached_servers: "{{ memcached_servers }}" - -# Specific pip packages provided by the user -senlin_user_pip_packages: [] - -senlin_optional_oslomsg_amqp1_pip_packages: - - oslo.messaging[amqp1] - -senlin_api_init_overrides: {} -senlin_engine_init_overrides: {} -senlin_conductor_init_overrides: {} -senlin_health_manager_init_overrides: {} - -## Allow Enable/Disable uWSGI -senlin_use_uwsgi: True - -## Service Name-Group Mapping -senlin_services: - senlin-api: - group: senlin_api - service_name: senlin-api - init_config_overrides: "{{ senlin_api_init_overrides }}" - start_order: 4 - execstarts: "{{ senlin_bin }}/senlin-api" - wsgi_app: "{{ senlin_use_uwsgi }}" - wsgi_name: senlin-wsgi-api - uwsgi_overrides: "{{ senlin_api_uwsgi_ini_overrides }}" - uwsgi_port: "{{ senlin_service_port }}" - uwsgi_bind_address: "{{ senlin_api_uwsgi_bind_address }}" - uwsgi_tls: "{{ senlin_backend_ssl | ternary(senlin_uwsgi_tls, {}) }}" - senlin-engine: - group: senlin_engine - service_name: senlin-engine - execstarts: "{{ senlin_bin }}/senlin-engine" - init_config_overrides: "{{ senlin_engine_init_overrides }}" - start_order: 3 - senlin-conductor: - group: senlin_conductor - service_name: senlin-conductor - execstarts: "{{ senlin_bin }}/senlin-conductor" - init_config_overrides: "{{ senlin_conductor_init_overrides }}" - start_order: 2 - senlin-health-manager: - group: senlin_health_manager - service_name: senlin-health-manager - execstarts: "{{ senlin_bin }}/senlin-health-manager" - init_config_overrides: "{{ senlin_health_manager_init_overrides }}" - start_order: 1 - -# Required secrets for the role -senlin_required_secrets: - - keystone_auth_admin_password - - senlin_galera_password - - senlin_oslomsg_rpc_password - - senlin_service_password - - memcached_encryption_key - -# uWSGI Settings -senlin_api_uwsgi_ini_overrides: {} -senlin_wsgi_processes_max: 16 -senlin_wsgi_processes: "{{ [[ansible_facts['processor_vcpus'] | default(1), 1] | max * 2, senlin_wsgi_processes_max] | min }}" -senlin_wsgi_threads: 1 -senlin_api_uwsgi_bind_address: "{{ openstack_service_bind_address | default('0.0.0.0') }}" -# senlin_api_cfn_uwsgi_bind_address: "{{ openstack_service_bind_address | default('0.0.0.0') }}" -senlin_uwsgi_tls: - crt: "{{ senlin_ssl_cert }}" - key: "{{ senlin_ssl_key }}" - -senlin_role_project_group: senlin_all - -## Tunable overrides -senlin_senlin_conf_overrides: {} -senlin_api_paste_ini_overrides: {} -senlin_default_yaml_overrides: {} -senlin_aws_cloudwatch_alarm_yaml_overrides: {} -senlin_aws_rds_dbinstance_yaml_overrides: {} -senlin_policy_overrides: {} - -### -### Backend TLS -### - -# Define if communication between haproxy and service backends should be -# encrypted with TLS. -senlin_backend_ssl: "{{ openstack_service_backend_ssl | default(False) }}" - -# Storage location for SSL certificate authority -senlin_pki_dir: "{{ openstack_pki_dir | default('/etc/openstack_deploy/pki') }}" - -# Delegated host for operating the certificate authority -senlin_pki_setup_host: "{{ openstack_pki_setup_host | default('localhost') }}" - -# senlin server certificate -senlin_pki_keys_path: "{{ senlin_pki_dir ~ '/certs/private/' }}" -senlin_pki_certs_path: "{{ senlin_pki_dir ~ '/certs/certs/' }}" -senlin_pki_intermediate_cert_name: "{{ openstack_pki_service_intermediate_cert_name | default('ExampleCorpIntermediate') }}" -senlin_pki_regen_cert: '' -senlin_pki_san: "{{ openstack_pki_san | default('DNS:' ~ ansible_facts['hostname'] ~ ',IP:' ~ management_address) }}" -senlin_pki_certificates: - - name: "senlin_{{ ansible_facts['hostname'] }}" - provider: ownca - cn: "{{ ansible_facts['hostname'] }}" - san: "{{ senlin_pki_san }}" - signed_by: "{{ senlin_pki_intermediate_cert_name }}" - -# senlin destination files for SSL certificates -senlin_ssl_cert: /etc/senlin/senlin.pem -senlin_ssl_key: /etc/senlin/senlin.key - -# Installation details for SSL certificates -senlin_pki_install_certificates: - - src: "{{ senlin_user_ssl_cert | default(senlin_pki_certs_path ~ 'senlin_' ~ ansible_facts['hostname'] ~ '-chain.crt') }}" - dest: "{{ senlin_ssl_cert }}" - owner: "{{ senlin_system_user_name }}" - group: "{{ senlin_system_user_name }}" - mode: "0644" - - src: "{{ senlin_user_ssl_key | default(senlin_pki_keys_path ~ 'senlin_' ~ ansible_facts['hostname'] ~ '.key.pem') }}" - dest: "{{ senlin_ssl_key }}" - owner: "{{ senlin_system_user_name }}" - group: "{{ senlin_system_user_name }}" - mode: "0600" - -# Define user-provided SSL certificates -# senlin_user_ssl_cert: -# senlin_user_ssl_key: diff --git a/doc/Makefile b/doc/Makefile deleted file mode 100644 index 6b16ca3..0000000 --- a/doc/Makefile +++ /dev/null @@ -1,195 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# User-friendly check for sphinx-build -ifeq ($(shell which $(SPHINXBUILD) >/dev/null 2>&1; echo $$?), 1) -$(error The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don't have Sphinx installed, grab it from http://sphinx-doc.org/) -endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest coverage gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " applehelp to make an Apple Help Book" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " coverage to run coverage check of the documentation (if enabled)" - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/openstack-ansible-os_senlin.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/openstack-ansible-os_senlin.qhc" - -applehelp: - $(SPHINXBUILD) -b applehelp $(ALLSPHINXOPTS) $(BUILDDIR)/applehelp - @echo - @echo "Build finished. The help book is in $(BUILDDIR)/applehelp." - @echo "N.B. You won't be able to view it unless you put it in" \ - "~/Library/Documentation/Help or install it in your application" \ - "bundle." - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/openstack-ansible-os_senlin" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/openstack-ansible-os_senlin" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -coverage: - $(SPHINXBUILD) -b coverage $(ALLSPHINXOPTS) $(BUILDDIR)/coverage - @echo "Testing of coverage in the sources finished, look at the " \ - "results in $(BUILDDIR)/coverage/python.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." - -livehtml: html - sphinx-autobuild -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html diff --git a/doc/requirements.txt b/doc/requirements.txt deleted file mode 100644 index 07801f8..0000000 --- a/doc/requirements.txt +++ /dev/null @@ -1,16 +0,0 @@ -# The order of packages is significant, because pip processes them in the order -# of appearance. Changing the order has an impact on the overall integration -# process, which may cause wedges in the gate later. - -# WARNING: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/branch/master/sync/doc/requirements.txt -# If you need to modify this file, update the one in the -# openstack-ansible-tests repository. Once it merges there, the changes will -# automatically be proposed to all the repositories which use it. - -sphinx>=2.0.0,!=2.1.0 # BSD -sphinxcontrib-svg2pdfconverter>=0.1.0 # BSD -openstackdocstheme>=2.2.1 # Apache-2.0 -reno>=3.1.0 # Apache-2.0 -doc8>=0.6.0 # Apache-2.0 diff --git a/doc/source/_static/.gitkeep b/doc/source/_static/.gitkeep deleted file mode 100644 index e69de29..0000000 diff --git a/doc/source/conf.py b/doc/source/conf.py deleted file mode 100644 index 35246b8..0000000 --- a/doc/source/conf.py +++ /dev/null @@ -1,302 +0,0 @@ -#!/usr/bin/env python3 - -# 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. - -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'openstackdocstheme', - 'sphinx.ext.autodoc', - 'sphinxcontrib.rsvgconverter', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix(es) of source filenames. -# You can specify multiple suffix as a list of string: -# source_suffix = ['.rst', '.md'] -source_suffix = '.rst' - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -author = 'OpenStack-Ansible Contributors' -category = 'Miscellaneous' -copyright = '2014-2016, OpenStack-Ansible Contributors' -description = 'OpenStack-Ansible deploys OpenStack environments using Ansible.' -project = 'OpenStack-Ansible' -role_name = 'os_senlin' -target_name = 'openstack-ansible-' + role_name -title = 'OpenStack-Ansible Documentation: ' + role_name + ' role' - -# openstackdocstheme options -openstackdocs_repo_name = 'openstack/' + target_name -openstackdocs_pdf_link = True -openstackdocs_bug_project = project.lower() -openstackdocs_bug_tag = '' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# -# This is also used if you do content translation via gettext catalogs. -# Usually you set "language" from the command line for these cases. -language = 'en' - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'native' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - -# If true, `todo` and `todoList` produce output, else they produce nothing. -todo_include_todos = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'openstackdocs' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Language to be used for generating the HTML full-text search index. -# Sphinx supports the following languages: -# 'da', 'de', 'en', 'es', 'fi', 'fr', 'h', 'it', 'ja' -# 'nl', 'no', 'pt', 'ro', 'r', 'sv', 'tr' -# html_search_language = 'en' - -# A dictionary with options for the search language support, empty by default. -# Now only 'ja' uses this config value -# html_search_options = {'type': 'default'} - -# The name of a javascript file (relative to the configuration directory) that -# implements a search results scorer. If empty, the default will be used. -# html_search_scorer = 'scorer.js' - -# Output file base name for HTML help builder. -htmlhelp_basename = target_name + '-docs' - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # 'preamble': '', - - # Latex figure (float) alignment - # 'figure_align': 'htbp', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, 'doc-' + target_name + '.tex', - title.replace("_", r"\_"), author, 'manual'), -] - -latex_use_xindy = False - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, target_name, - title, [author], 1) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, target_name, - title, author, project, - description, category), -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False -# -- Options for PDF output -------------------------------------------------- - -pdf_documents = [ - (master_doc, target_name, - title, author) -] - -locale_dirs = ['locale/'] diff --git a/doc/source/index.rst b/doc/source/index.rst deleted file mode 100644 index 39bac29..0000000 --- a/doc/source/index.rst +++ /dev/null @@ -1,49 +0,0 @@ -================================= -Senlin role for OpenStack-Ansible -================================= - - -Dependencies -~~~~~~~~~~~~ - -This role needs pip >= 7.1 installed on the target host. - -To clone or view the source code for this repository, visit the role repository -for `os_senlin `_. - -Default variables -~~~~~~~~~~~~~~~~~ - -.. literalinclude:: ../../defaults/main.yml - :language: yaml - :start-after: under the License. - -Example playbook -~~~~~~~~~~~~~~~~ - -.. literalinclude:: ../../examples/playbook.yml - :language: yaml - -Tags -~~~~ - -This role supports two tags: ``senlin-install`` and -``senlin-config``. The ``senlin-install`` tag can be used to install -and upgrade. The ``senlin-config`` tag can be used to maintain the -configuration of the service. - -Senlin client endpoints -~~~~~~~~~~~~~~~~~~~~~~~ - -When your VMs need to talk to your API, you might have to change the Senlin -config. By default Senlin is configured to use the internal API endpoints. -Should instances or created containers need to access the API (e.g. -Magnum, Senlin Signaling) the public endpoints will need to be used as in -the following example: - -.. code-block:: yaml - - senlin_senlin_conf_overrides: - clients_keystone: - endpoint_type: publicURL - auth_uri: "{{ keystone_service_publicurl }}" diff --git a/examples/playbook.yml b/examples/playbook.yml deleted file mode 100644 index 0e2165b..0000000 --- a/examples/playbook.yml +++ /dev/null @@ -1,78 +0,0 @@ ---- -# Copyright 2020, City Network International AB -# -# 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. - -- name: Gather senlin facts - hosts: senlin_all - gather_facts: "{{ osa_gather_facts | default(True) }}" - tasks: - - name: Gather additional facts - include_tasks: "common-tasks/gather-hardware-facts.yml" - when: osa_gather_facts | default(True) - tags: - - always - -- name: Configure haproxy services - import_playbook: openstack.osa.haproxy_service_config - vars: - service_group: senlin_api - service_variable: "senlin_haproxy_services" - when: groups[service_group] | length > 0 - tags: - - haproxy-service-config - -- name: Install senlin services - hosts: senlin_all - gather_facts: false - serial: "{{ senlin_serial | default(['1','100%']) }}" - user: root - environment: "{{ deployment_environment_variables | default({}) }}" - vars_files: - - "defaults/{{ install_method }}_install.yml" - tags: - - senlin - pre_tasks: - # In order to ensure that any container, software or - # config file changes which causes a container/service - # restart do not cause an unexpected outage, we drain - # the load balancer back end for this container. - - name: Disabling haproxy backends - include_tasks: common-tasks/haproxy-endpoint-manage.yml - vars: - haproxy_backend: senlin_api-back - haproxy_state: disabled - when: - - "'senlin_api' in group_names" - - "groups['senlin_api'] | length > 1" - - - name: Including unbound-clients tasks - include_tasks: common-tasks/unbound-clients.yml - when: - - hostvars['localhost']['resolvconf_enabled'] | bool - - roles: - - role: "os_senlin" - - post_tasks: - # Now that container changes are done, we can set - # the load balancer back end for this container - # to available again. - - name: Enabling haproxy backends - include_tasks: common-tasks/haproxy-endpoint-manage.yml - vars: - haproxy_backend: senlin_api-back - haproxy_state: enabled - when: - - "'senlin_api' in group_names" - - "groups['senlin_api'] | length > 1" diff --git a/handlers/main.yml b/handlers/main.yml deleted file mode 100644 index 9719d86..0000000 --- a/handlers/main.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -- name: Restart senlin services - systemd: - name: "{{ item.service_name }}" - enabled: yes - state: "restarted" - daemon_reload: yes - with_items: "{{ filtered_senlin_services }}" - listen: - - "venv changed" - - "systemd service changed" - - "cert installed" diff --git a/manual-test.rc b/manual-test.rc deleted file mode 100644 index 7016c45..0000000 --- a/manual-test.rc +++ /dev/null @@ -1,33 +0,0 @@ -export VIRTUAL_ENV=$(pwd) -export ANSIBLE_HOST_KEY_CHECKING=False -export ANSIBLE_SSH_CONTROL_PATH=/tmp/%%h-%%r - -# TODO (odyssey4me) These are only here as they are non-standard folder -# names for Ansible 1.9.x. We are using the standard folder names for -# Ansible v2.x. We can remove this when we move to Ansible 2.x. -export ANSIBLE_ACTION_PLUGINS=${HOME}/.ansible/plugins/action -export ANSIBLE_CALLBACK_PLUGINS=${HOME}/.ansible/plugins/callback -export ANSIBLE_FILTER_PLUGINS=${HOME}/.ansible/plugins/filter -export ANSIBLE_LOOKUP_PLUGINS=${HOME}/.ansible/plugins/lookup - -# This is required as the default is the current path or a path specified -# in ansible.cfg -export ANSIBLE_LIBRARY=${HOME}/.ansible/plugins/library - -# This is required as the default is '/etc/ansible/roles' or a path -# specified in ansible.cfg -export ANSIBLE_ROLES_PATH=${HOME}/.ansible/roles:$(pwd)/.. - -export ANSIBLE_SSH_ARGS="-o ControlMaster=no \ - -o UserKnownHostsFile=/dev/null \ - -o StrictHostKeyChecking=no \ - -o ServerAliveInterval=64 \ - -o ServerAliveCountMax=1024 \ - -o Compression=no \ - -o TCPKeepAlive=yes \ - -o VerifyHostKeyDNS=no \ - -o ForwardX11=no \ - -o ForwardAgent=yes" - -echo "Run manual functional tests by executing the following:" -echo "# ./.tox/functional/bin/ansible-playbook -i tests/inventory tests/test.yml" diff --git a/meta/main.yml b/meta/main.yml deleted file mode 100644 index 6ca127b..0000000 --- a/meta/main.yml +++ /dev/null @@ -1,43 +0,0 @@ ---- -# Copyright 2014, Rackspace US, Inc. -# -# 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. - -galaxy_info: - author: rcbops - description: Installation and setup of senlin - company: Rackspace - license: Apache2 - role_name: os_senlin - min_ansible_version: "2.10" - platforms: - - name: Debian - versions: - - bullseye - - name: Ubuntu - versions: - - focal - - jammy - - name: EL - versions: - - "9" - galaxy_tags: - - cloud - - python - - senlin - - development - - openstack -dependencies: - - role: apt_package_pinning - when: - - ansible_facts['pkg_mgr'] == 'apt' diff --git a/meta/openstack-ansible.yml b/meta/openstack-ansible.yml deleted file mode 100644 index be178e4..0000000 --- a/meta/openstack-ansible.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# 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. -# -# (c) 2017, Jean-Philippe Evrard - -maturity_info: - status: complete - created_during: mitaka diff --git a/releasenotes/notes/.placeholder b/releasenotes/notes/.placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/releasenotes/source/_static/.placeholder b/releasenotes/source/_static/.placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/releasenotes/source/_templates/.placeholder b/releasenotes/source/_templates/.placeholder deleted file mode 100644 index e69de29..0000000 diff --git a/releasenotes/source/conf.py b/releasenotes/source/conf.py deleted file mode 100644 index 1610300..0000000 --- a/releasenotes/source/conf.py +++ /dev/null @@ -1,276 +0,0 @@ -#!/usr/bin/env python3 - -# 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. - -# This file is execfile()d with the current directory set to its -# containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -# sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ------------------------------------------------ - -# If your documentation needs a minimal Sphinx version, state it here. -# needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be -# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom -# ones. -extensions = [ - 'openstackdocstheme', - 'reno.sphinxext', -] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -# source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -author = 'OpenStack-Ansible Contributors' -category = 'Miscellaneous' -copyright = '2014-2016, OpenStack-Ansible Contributors' -description = 'OpenStack-Ansible deploys OpenStack environments using Ansible.' -project = 'OpenStack-Ansible' -role_name = 'os_senlin' -target_name = 'openstack-ansible-' + role_name -title = 'OpenStack-Ansible Release Notes: ' + role_name + 'role' - -# Release notes do not need a version number in the title, they -# cover multiple releases. -# The full version, including alpha/beta/rc tags. -release = '' -# The short X.Y version. -version = '' - -# openstackdocstheme options -openstackdocs_repo_name = 'openstack/' + target_name -openstackdocs_bug_project = project.lower() -openstackdocs_bug_tag = '' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -# language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -# today = '' -# Else, today_fmt is used as the format for a strftime call. -# today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all -# documents. -# default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -# add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -# add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -# show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'native' - -# A list of ignored prefixes for module index sorting. -# modindex_common_prefix = [] - -# If true, keep warnings as "system message" paragraphs in the built documents. -# keep_warnings = False - - -# -- Options for HTML output ---------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'openstackdocs' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -# html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -# html_theme_path = [] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -# html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -# html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -# html_logo = None - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -# html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# Add any extra paths that contain custom files (such as robots.txt or -# .htaccess) here, relative to this directory. These files are copied -# directly to the root of the documentation. -# html_extra_path = [] - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -# html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -# html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -# html_additional_pages = {} - -# If false, no module index is generated. -# html_domain_indices = True - -# If false, no index is generated. -# html_use_index = True - -# If true, the index is split into individual pages for each letter. -# html_split_index = False - -# If true, links to the reST sources are added to the pages. -# html_show_sourcelink = True - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -# html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -# html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -# html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -# html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = target_name + '-docs' - - -# -- Options for LaTeX output --------------------------------------------- - -latex_elements = { - # The paper size ('letterpaper' or 'a4paper'). - # 'papersize': 'letterpaper', - - # The font size ('10pt', '11pt' or '12pt'). - # 'pointsize': '10pt', - - # Additional stuff for the LaTeX preamble. - # 'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, -# author, documentclass [howto, manual, or own class]). -latex_documents = [ - (master_doc, target_name + '.tex', - title, author, 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -# latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -# latex_use_parts = False - -# If true, show page references after internal links. -# latex_show_pagerefs = False - -# If true, show URL addresses after external links. -# latex_show_urls = False - -# Documents to append as an appendix to all manuals. -# latex_appendices = [] - -# If false, no module index is generated. -# latex_domain_indices = True - - -# -- Options for manual page output --------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - (master_doc, target_name, - title, [author], 1) -] - -# If true, show URL addresses after external links. -# man_show_urls = False - - -# -- Options for Texinfo output ------------------------------------------- - -# Grouping the document tree into Texinfo files. List of tuples -# (source start file, target name, title, author, -# dir menu entry, description, category) -texinfo_documents = [ - (master_doc, target_name, - title, author, project, - description, category), -] - -# Documents to append as an appendix to all manuals. -# texinfo_appendices = [] - -# If false, no module index is generated. -# texinfo_domain_indices = True - -# How to display URL addresses: 'footnote', 'no', or 'inline'. -# texinfo_show_urls = 'footnote' - -# If true, do not generate a @detailmenu in the "Top" node's menu. -# texinfo_no_detailmenu = False - -# -- Options for Internationalization output ------------------------------ -locale_dirs = ['locale/'] diff --git a/releasenotes/source/index.rst b/releasenotes/source/index.rst deleted file mode 100644 index 10994c6..0000000 --- a/releasenotes/source/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -================================ - OpenStack-Ansible Release Notes -================================ - -.. toctree:: - :maxdepth: 1 - - unreleased - zed diff --git a/releasenotes/source/unreleased.rst b/releasenotes/source/unreleased.rst deleted file mode 100644 index cd22aab..0000000 --- a/releasenotes/source/unreleased.rst +++ /dev/null @@ -1,5 +0,0 @@ -============================== - Current Series Release Notes -============================== - -.. release-notes:: diff --git a/releasenotes/source/zed.rst b/releasenotes/source/zed.rst deleted file mode 100644 index 6cc2b15..0000000 --- a/releasenotes/source/zed.rst +++ /dev/null @@ -1,6 +0,0 @@ -======================== -Zed Series Release Notes -======================== - -.. release-notes:: - :branch: unmaintained/zed diff --git a/run_tests.sh b/run_tests.sh deleted file mode 100755 index 35280c8..0000000 --- a/run_tests.sh +++ /dev/null @@ -1,88 +0,0 @@ -#!/usr/bin/env bash -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -# PURPOSE: -# This script clones the openstack-ansible-tests repository to the -# tests/common folder in order to be able to re-use test components -# for role testing. This is intended to be the thinnest possible -# shim for test execution outside of OpenStack CI. - -# WARNING: -# This file is maintained in the openstack-ansible-tests repository. -# https://opendev.org/openstack/openstack-ansible-tests/src/run_tests.sh -# If you need to modify this file, update the one in the openstack-ansible-tests -# repository and then update this file as well. The purpose of this file is to -# prepare the host and then execute all the tox tests. -# - -## Shell Opts ---------------------------------------------------------------- -set -xeu - -## Vars ---------------------------------------------------------------------- - -WORKING_DIR="$(readlink -f $(dirname $0))" -OSA_PROJECT_NAME="$(sed -n 's|^project=openstack/\(.*\).git$|\1|p' $(pwd)/.gitreview)" - -COMMON_TESTS_PATH="${WORKING_DIR}/tests/common" -TESTING_HOME=${TESTING_HOME:-$HOME} -ZUUL_TESTS_CLONE_LOCATION="/home/zuul/src/opendev.org/openstack/openstack-ansible-tests" - -# Use .gitreview as the key to determine the appropriate -# branch to clone for tests. -TESTING_BRANCH=$(awk -F'=' '/defaultbranch/ {print $2}' "${WORKING_DIR}/.gitreview") -if [[ "${TESTING_BRANCH}" == "" ]]; then - TESTING_BRANCH="master" -fi - -## Main ---------------------------------------------------------------------- - -# Source distribution information -source /etc/os-release || source /usr/lib/os-release - -# Figure out the appropriate package install command -case ${ID,,} in - centos|rhel|fedora|rocky) pkg_mgr_cmd="dnf install -y" ;; - ubuntu|debian) pkg_mgr_cmd="apt-get install -y" ;; - *) echo "unsupported distribution: ${ID,,}"; exit 1 ;; -esac - -# Install git so that we can clone the tests repo if git is not available -which git &>/dev/null || eval sudo "${pkg_mgr_cmd}" git - -# Clone the tests repo for access to the common test script -if [[ ! -d "${COMMON_TESTS_PATH}" ]]; then - # The tests repo doesn't need a clone, we can just - # symlink it. - if [[ "${OSA_PROJECT_NAME}" == "openstack-ansible-tests" ]]; then - ln -s "${WORKING_DIR}" "${COMMON_TESTS_PATH}" - - # In zuul v3 any dependent repository is placed into - # /home/zuul/src/opendev.org, so we check to see - # if there is a tests checkout there already. If so, we - # symlink that and use it. - elif [[ -d "${ZUUL_TESTS_CLONE_LOCATION}" ]]; then - ln -s "${ZUUL_TESTS_CLONE_LOCATION}" "${COMMON_TESTS_PATH}" - - # Otherwise we're clearly not in zuul or using a previously setup - # repo in some way, so just clone it from upstream. - else - git clone -b "${TESTING_BRANCH}" \ - https://opendev.org/openstack/openstack-ansible-tests \ - "${COMMON_TESTS_PATH}" - fi -fi - -# Execute the common test script -source tests/common/run_tests_common.sh diff --git a/tasks/main.yml b/tasks/main.yml deleted file mode 100644 index 25fc5da..0000000 --- a/tasks/main.yml +++ /dev/null @@ -1,211 +0,0 @@ ---- -# Copyright 2020, Satish Patel -# -# 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. - -- name: Fail if service was deployed using a different installation method - fail: - msg: "Switching installation methods for OpenStack services is not supported" - when: - - ansible_local is defined - - ansible_local.openstack_ansible is defined - - ansible_local.openstack_ansible.senlin is defined - - ansible_local.openstack_ansible.senlin.install_method is defined - - ansible_local.openstack_ansible.senlin.install_method != senlin_install_method - -- name: Gather variables for each operating system - include_vars: "{{ lookup('first_found', params) }}" - vars: - params: - files: - - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_version'] | lower }}.yml" - - "{{ ansible_facts['distribution'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml" - - "{{ ansible_facts['os_family'] | lower }}-{{ ansible_facts['distribution_major_version'] | lower }}.yml" - - "{{ ansible_facts['distribution'] | lower }}.yml" - - "{{ ansible_facts['os_family'] | lower }}.yml" - paths: - - "{{ role_path }}/vars" - tags: - - always - -- name: Fail if our required secrets are not present - fail: - msg: "Please set the {{ item }} variable prior to applying this role." - when: (item is undefined) or (item is none) - with_items: "{{ senlin_required_secrets }}" - tags: - - always - -- name: Gather variables for installation method - include_vars: "{{ senlin_install_method }}_install.yml" - tags: - - always - -- name: Including osa.db_setup role - include_role: - name: openstack.osa.db_setup - apply: - tags: - - common-db - - senlin-config - when: - - _senlin_is_first_play_host - vars: - _oslodb_setup_host: "{{ senlin_db_setup_host }}" - _oslodb_ansible_python_interpreter: "{{ senlin_db_setup_python_interpreter }}" - _oslodb_setup_endpoint: "{{ senlin_galera_address }}" - _oslodb_setup_port: "{{ senlin_galera_port }}" - _oslodb_databases: - - name: "{{ senlin_galera_database }}" - users: - - username: "{{ senlin_galera_user }}" - password: "{{ senlin_galera_password }}" - tags: - - always - -- name: Including osa.mq_setup role - include_role: - name: openstack.osa.mq_setup - apply: - tags: - - common-mq - - senlin-config - when: - - _senlin_is_first_play_host - vars: - _oslomsg_rpc_setup_host: "{{ senlin_oslomsg_rpc_setup_host }}" - _oslomsg_rpc_userid: "{{ senlin_oslomsg_rpc_userid }}" - _oslomsg_rpc_password: "{{ senlin_oslomsg_rpc_password }}" - _oslomsg_rpc_vhost: "{{ senlin_oslomsg_rpc_vhost }}" - _oslomsg_rpc_transport: "{{ senlin_oslomsg_rpc_transport }}" - _oslomsg_notify_setup_host: "{{ senlin_oslomsg_notify_setup_host }}" - _oslomsg_notify_userid: "{{ senlin_oslomsg_notify_userid }}" - _oslomsg_notify_password: "{{ senlin_oslomsg_notify_password }}" - _oslomsg_notify_vhost: "{{ senlin_oslomsg_notify_vhost }}" - _oslomsg_notify_transport: "{{ senlin_oslomsg_notify_transport }}" - tags: - - always - -- name: Importing senlin_pre_install tasks - import_tasks: senlin_pre_install.yml - tags: - - senlin-install - -- name: Importing senlin_install tasks - import_tasks: senlin_install.yml - tags: - - senlin-install - -- name: Create and install SSL certificates - include_role: - name: pki - tasks_from: main_certs.yml - apply: - tags: - - senlin-config - - pki - vars: - pki_setup_host: "{{ senlin_pki_setup_host }}" - pki_dir: "{{ senlin_pki_dir }}" - pki_create_certificates: "{{ senlin_user_ssl_cert is not defined and senlin_user_ssl_key is not defined }}" - pki_regen_cert: "{{ senlin_pki_regen_cert }}" - pki_certificates: "{{ senlin_pki_certificates }}" - pki_install_certificates: "{{ senlin_pki_install_certificates }}" - when: - - senlin_backend_ssl - tags: - - always - -- name: Importing senlin_post_install tasks - import_tasks: senlin_post_install.yml - tags: - - senlin-config - -- name: Run the systemd service role - import_role: - name: systemd_service - vars: - systemd_user_name: "{{ senlin_system_user_name }}" - systemd_group_name: "{{ senlin_system_group_name }}" - systemd_tempd_prefix: openstack - systemd_slice_name: senlin - systemd_lock_path: /var/lock/senlin - systemd_service_cpu_accounting: true - systemd_service_block_io_accounting: true - systemd_service_memory_accounting: true - systemd_service_tasks_accounting: true - systemd_services: "{{ filtered_senlin_services }}" - tags: - - senlin-config - - systemd-service - -- name: Importing senlin_db_sync tasks - import_tasks: senlin_db_sync.yml - when: - - _senlin_is_first_play_host - tags: - - senlin-config - -- name: Import uwsgi role - import_role: - name: uwsgi - vars: - uwsgi_services: "{{ senlin_uwsgi_services }}" - uwsgi_install_method: "{{ senlin_install_method }}" - tags: - - senlin-config - - uwsgi - -- name: Including osa.service_setup role - include_role: - name: openstack.osa.service_setup - apply: - tags: - - common-service - - senlin-config - vars: - _project_name: "{{ senlin_project_name }}" - _project_domain: "{{ senlin_project_domain_name }}" - _service_adminuri_insecure: "{{ keystone_service_adminuri_insecure }}" - _service_in_ldap: "{{ senlin_service_in_ldap }}" - _service_setup_host: "{{ senlin_service_setup_host }}" - _service_setup_host_python_interpreter: "{{ senlin_service_setup_host_python_interpreter }}" - _service_project_name: "{{ senlin_service_project_name }}" - _service_region: "{{ senlin_service_region }}" - _service_users: - - name: "{{ senlin_service_user_name }}" - password: "{{ senlin_service_password }}" - domain: default - project: "{{ senlin_service_project_name }}" - role: "{{ senlin_service_role_names }}" - _service_endpoints: - - service: "{{ senlin_service_name }}" - interface: "public" - url: "{{ senlin_service_publicurl }}" - - service: "{{ senlin_service_name }}" - interface: "internal" - url: "{{ senlin_service_internalurl }}" - - service: "{{ senlin_service_name }}" - interface: "admin" - url: "{{ senlin_service_adminurl }}" - _service_catalog: - - name: "{{ senlin_service_name }}" - type: "{{ senlin_service_type }}" - description: "{{ senlin_service_description }}" - when: - - _senlin_is_first_play_host - tags: - - always - -- name: Flush handlers - meta: flush_handlers diff --git a/tasks/senlin_db_sync.yml b/tasks/senlin_db_sync.yml deleted file mode 100644 index ddee23e..0000000 --- a/tasks/senlin_db_sync.yml +++ /dev/null @@ -1,20 +0,0 @@ ---- -# Copyright 2014, Rackspace US, Inc. -# -# 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. - -- name: Perform a senlin DB sync - command: "{{ senlin_bin }}/senlin-manage db_sync" - become: yes - become_user: "{{ senlin_system_user_name }}" - changed_when: false diff --git a/tasks/senlin_install.yml b/tasks/senlin_install.yml deleted file mode 100644 index 8c0365c..0000000 --- a/tasks/senlin_install.yml +++ /dev/null @@ -1,57 +0,0 @@ ---- -# Copyright 2020, Satish Patel -# -# 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. - -- name: Record the installation method - ini_file: - dest: "/etc/ansible/facts.d/openstack_ansible.fact" - section: "senlin" - option: "install_method" - value: "{{ senlin_install_method }}" - mode: "0644" - -- name: Refresh local facts to ensure the senlin section is present - setup: - filter: ansible_local - gather_subset: "!all" - -- name: Install distro packages - package: - name: "{{ senlin_package_list }}" - state: "{{ senlin_package_state }}" - update_cache: "{{ (ansible_facts['pkg_mgr'] == 'apt') | ternary('yes', omit) }}" - cache_valid_time: "{{ (ansible_facts['pkg_mgr'] == 'apt') | ternary(cache_timeout, omit) }}" - register: install_packages - until: install_packages is success - retries: 5 - delay: 2 - -- name: Install the python venv - import_role: - name: "python_venv_build" - vars: - venv_python_executable: "{{ senlin_venv_python_executable }}" - venv_build_constraints: "{{ senlin_git_constraints }}" - venv_build_distro_package_list: "{{ senlin_devel_distro_packages }}" - venv_install_destination_path: "{{ senlin_bin | dirname }}" - venv_install_distro_package_list: "{{ senlin_distro_packages }}" - venv_pip_install_args: "{{ senlin_pip_install_args }}" - venv_pip_packages: >- - {{ senlin_pip_packages | union(senlin_user_pip_packages) + - (senlin_oslomsg_amqp1_enabled | bool) | ternary(senlin_optional_oslomsg_amqp1_pip_packages, []) }} - venv_facts_when_changed: - - section: "senlin" - option: "venv_tag" - value: "{{ senlin_venv_tag }}" - when: senlin_install_method == 'source' diff --git a/tasks/senlin_post_install.yml b/tasks/senlin_post_install.yml deleted file mode 100644 index bb0739e..0000000 --- a/tasks/senlin_post_install.yml +++ /dev/null @@ -1,96 +0,0 @@ ---- -# Copyright 2020, Satish Patel -# -# 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. - -- name: Drop senlin Config(s) - openstack.config_template.config_template: - src: "senlin.conf.j2" - dest: "/etc/senlin/senlin.conf" - owner: "root" - group: "{{ senlin_system_group_name }}" - mode: "0640" - config_overrides: "{{ senlin_senlin_conf_overrides }}" - config_type: "ini" - notify: - - Restart senlin services - -- name: Implement policy.yaml if there are overrides configured - openstack.config_template.config_template: - content: "{{ senlin_policy_overrides }}" - dest: "/etc/senlin/policy.yaml" - owner: "root" - group: "{{ senlin_system_group_name }}" - mode: "0640" - config_type: yaml - when: - - senlin_policy_overrides | length > 0 - tags: - - senlin-policy-override - -- name: Remove legacy policy.yaml file - file: - path: "/etc/senlin/policy.yaml" - state: absent - when: - - senlin_policy_overrides | length == 0 - tags: - - senlin-policy-override - -# NOTE(cloudnull): This is using "cp" instead of copy with a remote_source -# because we only want to copy the original files once. and we -# don't want to need multiple tasks. -- name: Preserve original configuration file(s) - command: "cp {{ item.target_f }} {{ item.target_f }}.original" - args: - creates: "{{ item.target_f }}.original" - when: - - item.condition | bool - with_items: "{{ senlin_core_files }}" - -- name: Fetch override files - fetch: - src: "{{ item.target_f }}" - dest: "{{ item.tmp_f }}" - flat: yes - changed_when: false - run_once: true - when: - - item.condition | bool - with_items: "{{ senlin_core_files }}" - -- name: Copy common config - openstack.config_template.config_template: - src: "{{ item.tmp_f }}" - dest: "{{ item.target_f }}" - owner: "root" - group: "{{ item.group | default(senlin_system_group_name) }}" - mode: "0640" - config_overrides: "{{ item.config_overrides }}" - config_type: "{{ item.config_type }}" - when: - - item.condition | bool - with_items: "{{ senlin_core_files }}" - notify: - - Restart uwsgi services - - Restart senlin services - -- name: Cleanup fetched temp files - file: - path: "{{ item.tmp_f }}" - state: absent - changed_when: false - delegate_to: localhost - when: - - item.condition | bool - with_items: "{{ senlin_core_files }}" diff --git a/tasks/senlin_pre_install.yml b/tasks/senlin_pre_install.yml deleted file mode 100644 index 452a165..0000000 --- a/tasks/senlin_pre_install.yml +++ /dev/null @@ -1,85 +0,0 @@ ---- -# Copyright 2020, Satish Patel -# -# 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. - -- name: Create the system group - group: - name: "{{ senlin_system_group_name }}" - state: "present" - system: "yes" - -- name: Create the senlin system user - user: - name: "{{ senlin_system_user_name }}" - group: "{{ senlin_system_group_name }}" - comment: "{{ senlin_system_comment }}" - shell: "{{ senlin_system_shell }}" - system: "yes" - createhome: "yes" - home: "{{ senlin_system_home_folder }}" - -# NOTE(cloudnull): During an upgrade the local directory may exist on a source -# install. If the directory does exist it will need to be -# removed. This is required on source installs because the -# config directory is a link. -- name: Source config block - block: - - name: Stat config directory - stat: - path: "/etc/senlin" - register: senlin_conf_dir_stat - - - name: Remove the config directory - file: - path: "/etc/senlin" - state: absent - when: - - senlin_conf_dir_stat.stat.isdir is defined and - senlin_conf_dir_stat.stat.isdir - when: - - senlin_install_method == 'source' - -- name: Create senlin dir - file: - path: "{{ item.path | default(omit) }}" - src: "{{ item.src | default(omit) }}" - dest: "{{ item.dest | default(omit) }}" - state: "{{ item.state | default('directory') }}" - owner: "{{ item.owner | default(senlin_system_user_name) }}" - group: "{{ item.group | default(senlin_system_group_name) }}" - mode: "{{ item.mode | default(omit) }}" - force: "{{ item.force | default(omit) }}" - when: - - (item.condition | default(true)) | bool - with_items: - - path: "/openstack" - owner: "root" - group: "root" - - path: "/openstack/venvs" - owner: "root" - group: "root" - - path: "{{ (senlin_install_method == 'distro') | ternary('/etc/senlin', (senlin_bin | dirname) + '/etc/senlin') }}" - mode: "0755" - # NOTE(cloudnull): The "src" path is relative. This ensures all files remain - # within the host/container confines when connecting to - # them using the connection plugin or the root filesystem. - - dest: "/etc/senlin" - src: "{{ senlin_bin | dirname | regex_replace('^/', '../') }}/etc/senlin" - state: link - force: true - condition: "{{ senlin_install_method == 'source' }}" - - path: "/etc/senlin/environments" - - path: "/var/cache/senlin" - mode: "0700" - - path: "{{ senlin_system_home_folder }}" diff --git a/templates/senlin.conf.j2 b/templates/senlin.conf.j2 deleted file mode 100644 index 9388e4a..0000000 --- a/templates/senlin.conf.j2 +++ /dev/null @@ -1,117 +0,0 @@ -# {{ ansible_managed }} - -[DEFAULT] -# Disable stderr logging -use_stderr = False -debug = {{ debug }} -fatal_deprecations = {{ senlin_fatal_deprecations }} - -use_journal = True - -server_keystone_endpoint_type = public - -## RPC Backend -transport_url = {{ senlin_oslomsg_rpc_transport }}://{% for host in senlin_oslomsg_rpc_servers.split(',') %}{{ senlin_oslomsg_rpc_userid }}:{{ senlin_oslomsg_rpc_password }}@{{ host }}:{{ senlin_oslomsg_rpc_port }}{% if not loop.last %},{% else %}/{{ _senlin_oslomsg_rpc_vhost_conf }}{% if senlin_oslomsg_rpc_use_ssl | bool %}?ssl=1&ssl_version={{ senlin_oslomsg_rpc_ssl_version }}&ssl_ca_file={{ senlin_oslomsg_rpc_ssl_ca_file }}{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} - -# Default region name used to get services endpoints. -region_name_for_services = {{ senlin_service_region }} - -## Tunable option -max_clusters_per_project = {{ senlin_max_clusters_per_project }} -max_nodes_per_cluster = {{ senlin_max_nodes_per_cluster }} -periodic_interval = {{ senlin_periodic_interval }} -periodic_interval_max = {{ senlin_periodic_interval_max }} -periodic_fuzzy_delay = {{ senlin_periodic_fuzzy_delay }} -health_check_interval_min = {{ senlin_health_check_interval_min }} -check_interval_max = {{ senlin_check_interval_max }} -max_response_size = {{ senlin_max_response_size }} -default_action_timeout = {{ senlin_default_action_timeout }} -default_nova_timeout = {{ senlin_default_nova_timeout }} -max_actions_per_batch = {{ senlin_max_actions_per_batch }} -batch_interval = {{ senlin_batch_interval }} -lock_retry_times = {{ senlin_lock_retry_times }} -lock_retry_interval = {{ senlin_lock_retry_interval }} -database_retry_limit = {{ senlin_database_retry_limit }} -database_max_retry_interval = {{ senlin_database_max_retry_interval }} -engine_life_check_timeout = {{ senlin_engine_life_check_timeout }} -service_down_time = {{ senlin_service_down_time }} - -[database] -connection = mysql+pymysql://{{ senlin_galera_user }}:{{ senlin_galera_password }}@{{ senlin_galera_address }}:{{ senlin_galera_port }}/{{ senlin_galera_database }}?charset=utf8{% if senlin_galera_use_ssl | bool %}&ssl_verify_cert=true{% if senlin_galera_ssl_ca_cert | length > 0 %}&ssl_ca={{ senlin_galera_ssl_ca_cert }}{% endif %}{% endif +%} -max_overflow = {{ senlin_db_max_overflow }} -max_pool_size = {{ senlin_db_max_pool_size }} -pool_timeout = {{ senlin_db_pool_timeout }} -connection_recycle_time = {{ senlin_db_connection_recycle_time }} - -[senlin_api] -bind_port = {{ senlin_service_port }} -workers = {{ senlin_api_workers | default(senlin_api_threads) }} - -[oslo_messaging_rabbit] -ssl = {{ senlin_oslomsg_rpc_use_ssl }} -rabbit_quorum_queue = {{ senlin_oslomsg_rabbit_quorum_queues }} -rabbit_quorum_delivery_limit = {{ senlin_oslomsg_rabbit_quorum_delivery_limit }} -rabbit_quorum_max_memory_bytes = {{ senlin_oslomsg_rabbit_quorum_max_memory_bytes }} - -{% if senlin_service_publicuri_proto != senlin_service_internaluri_proto %} -[oslo_middleware] -enable_proxy_headers_parsing = True -{% endif %} - -# Ceilometer options -[oslo_messaging_notifications] -driver = {{ (senlin_ceilometer_enabled | bool) | ternary('messagingv2', 'noop') }} -transport_url = {{ senlin_oslomsg_notify_transport }}://{% for host in senlin_oslomsg_notify_servers.split(',') %}{{ senlin_oslomsg_notify_userid }}:{{ senlin_oslomsg_notify_password }}@{{ host }}:{{ senlin_oslomsg_notify_port }}{% if not loop.last %},{% else %}/{{ _senlin_oslomsg_notify_vhost_conf }}{% if senlin_oslomsg_notify_use_ssl | bool %}?ssl=1&ssl_version={{ senlin_oslomsg_notify_ssl_version }}&ssl_ca_file={{ senlin_oslomsg_notify_ssl_ca_file }}{% else %}?ssl=0{% endif %}{% endif %}{% endfor %} - - -[profiler] -enabled = {{ senlin_profiler_enabled }} -trace_sqlalchemy = {{ senlin_profiler_trace_sqlalchemy }} - - -[keystone_authtoken] -insecure = {{ keystone_service_internaluri_insecure | bool }} -auth_type = {{ senlin_keystone_auth_plugin }} -auth_url = {{ keystone_service_adminurl }} -www_authenticate_uri = {{ keystone_service_internaluri }} -project_domain_id = {{ senlin_service_project_domain_id }} -user_domain_id = {{ senlin_service_user_domain_id }} -project_name = {{ senlin_service_project_name }} -username = {{ senlin_service_user_name }} -password = {{ senlin_service_password }} -region_name = {{ keystone_service_region }} - -service_token_roles_required = {{ senlin_service_token_roles_required | bool }} -service_token_roles = {{ senlin_service_token_roles | join(',') }} -service_type = {{ senlin_service_type }} - -memcached_servers = {{ senlin_memcached_servers }} - -token_cache_time = 300 - -# if your memcached server is shared, use these settings to avoid cache poisoning -memcache_security_strategy = ENCRYPT -memcache_secret_key = {{ memcached_encryption_key }} - -[authentication] -auth_url = {{ keystone_service_adminurl }} -service_username = {{ senlin_service_user_name }} -service_password = {{ senlin_service_password }} -service_project_name = {{ senlin_service_project_name }} - -[engine] -workers = {{ senlin_engine_workers | default(senlin_api_threads) }} - -[conductor] -workers = {{ senlin_conductor_workers | default(senlin_api_threads) }} - -[health_manager] -workers = {{ senlin_health_manager_workers | default(senlin_api_threads) }} - -[trustee] -insecure = {{ keystone_service_internaluri_insecure | bool }} -auth_type = {{ senlin_keystone_trustee_auth_plugin }} -auth_url = {{ keystone_service_adminurl }} -user_domain_id = {{ senlin_service_trustee_user_domain_id }} -username = {{ senlin_service_trustee_user_name }} -password = {{ senlin_service_trustee_password }} diff --git a/tests/ansible-role-requirements.yml b/tests/ansible-role-requirements.yml deleted file mode 100644 index 87f3aee..0000000 --- a/tests/ansible-role-requirements.yml +++ /dev/null @@ -1,53 +0,0 @@ ---- -- name: apt_package_pinning - src: https://opendev.org/openstack/openstack-ansible-apt_package_pinning - scm: git - version: master -- name: memcached_server - src: https://opendev.org/openstack/openstack-ansible-memcached_server - scm: git - version: master -- name: openstack_hosts - src: https://opendev.org/openstack/openstack-ansible-openstack_hosts - scm: git - version: master -- name: lxc_hosts - src: https://opendev.org/openstack/openstack-ansible-lxc_hosts - scm: git - version: master -- name: lxc_container_create - src: https://opendev.org/openstack/openstack-ansible-lxc_container_create - scm: git - version: master -- name: galera_client - src: https://opendev.org/openstack/openstack-ansible-galera_client - scm: git - version: master -- name: galera_server - src: https://opendev.org/openstack/openstack-ansible-galera_server - scm: git - version: master -- name: rabbitmq_server - src: https://opendev.org/openstack/openstack-ansible-rabbitmq_server - scm: git - version: master -- name: os_keystone - src: https://opendev.org/openstack/openstack-ansible-os_keystone - scm: git - version: master -- name: openstack_openrc - src: https://opendev.org/openstack/openstack-ansible-openstack_openrc - scm: git - version: master -- name: systemd_service - src: https://opendev.org/openstack/ansible-role-systemd_service - scm: git - version: master -- name: python_venv_build - src: https://opendev.org/openstack/ansible-role-python_venv_build - scm: git - version: master -- name: uwsgi - src: https://opendev.org/openstack/ansible-role-uwsgi - scm: git - version: master diff --git a/tests/group_vars/all_containers.yml b/tests/group_vars/all_containers.yml deleted file mode 100644 index 802a50f..0000000 --- a/tests/group_vars/all_containers.yml +++ /dev/null @@ -1,25 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -container_networks: - management_address: - address: "{{ ansible_host }}" - bridge: "br-mgmt" - interface: "eth1" - netmask: "255.255.255.0" - type: "veth" -physical_host: localhost -properties: - service_name: "{{ inventory_hostname }}" diff --git a/tests/host_vars/infra1.yml b/tests/host_vars/infra1.yml deleted file mode 100644 index fcf92eb..0000000 --- a/tests/host_vars/infra1.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -ansible_host: 10.1.0.2 -ansible_become: True -ansible_user: root -container_name: infra1 diff --git a/tests/host_vars/localhost.yml b/tests/host_vars/localhost.yml deleted file mode 100644 index 6c26f31..0000000 --- a/tests/host_vars/localhost.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -bridges: - - "br-mgmt" diff --git a/tests/host_vars/openstack1.yml b/tests/host_vars/openstack1.yml deleted file mode 100644 index 0290962..0000000 --- a/tests/host_vars/openstack1.yml +++ /dev/null @@ -1,19 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -ansible_host: 10.1.0.3 -ansible_become: True -ansible_user: root -container_name: openstack1 diff --git a/tests/inventory b/tests/inventory deleted file mode 100644 index c271bf5..0000000 --- a/tests/inventory +++ /dev/null @@ -1,80 +0,0 @@ -[all] -localhost -infra1 -openstack1 - -[all_containers] -infra1 -openstack1 - -[oslomsg_rpc_all] -infra1 - -[oslomsg_notify_all] -infra1 - -[rabbitmq_all] -infra1 - -[galera_all] -infra1 - -[memcached_all] -infra1 - -[service_all:children] -rabbitmq_all -galera_all -memcached_all - -[utility_all] -openstack1 - -[keystone_all] -openstack1 - -[senlin-api] -openstack1 - -[senlin-engine] -openstack1 - -[senlin-conductor] -openstack1 - -[senlin-health-manager] -openstack1 - -[senlin-engine_container] -openstack1 - -[senlin-apis_container] -openstack1 - -[senlin_all:children] -senlin-api -senlin-engine -senlin-conductor -senlin-health-manager - -[heat_api] -openstack1 - -[heat_engine] -openstack1 - -[heat_api_cfn] -openstack1 - -[heat_engine_container] -openstack1 - -[heat_apis_container] -openstack1 - -[heat_all:children] -heat_api -heat_engine -heat_api_cfn -heat_engine_container -heat_apis_container diff --git a/tests/test-senlin-functional.yml b/tests/test-senlin-functional.yml deleted file mode 100644 index 1bd63da..0000000 --- a/tests/test-senlin-functional.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -# Copyright 2016, Rackspace US, Inc. -# -# 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. - -- name: Ensure senlin APIs are reachable - hosts: senlin_all - user: root - gather_facts: false - vars_files: - - common/test-vars.yml - - test-vars.yml - roles: - - { role: "os_senlin", tags: [ "os-senlin" ] } - post_tasks: - - name: check senlin api - uri: - url: "http://localhost:{{ item }}" - status_code: 300 - register: result - until: result.status == 300 - retries: 5 - delay: 10 - with_items: - - 8778 diff --git a/tests/test-vars.yml b/tests/test-vars.yml deleted file mode 100644 index 8ea747f..0000000 --- a/tests/test-vars.yml +++ /dev/null @@ -1,6 +0,0 @@ ---- - -senlin_galera_address: "{{ galera_address }}" -senlin_galera_password: "{{ galera_root_password }}" -senlin_oslomsg_rpc_password: "{{ oslomsg_rpc_password }}" -senlin_service_password: secrete diff --git a/tests/test.yml b/tests/test.yml deleted file mode 100644 index 9d1d5c4..0000000 --- a/tests/test.yml +++ /dev/null @@ -1,26 +0,0 @@ ---- -# Copyright 2015, Rackspace US, Inc. -# -# 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. - -# Setup the host -- import_playbook: common/test-setup-host.yml - -# Install RabbitMQ/MariaDB -- import_playbook: common/test-install-infra.yml - -# Install Keystone -- import_playbook: common/test-install-keystone.yml - -# Install Senlin -- import_playbook: test-senlin-functional.yml diff --git a/tox.ini b/tox.ini deleted file mode 100644 index e73f467..0000000 --- a/tox.ini +++ /dev/null @@ -1,103 +0,0 @@ -[tox] -minversion = 3.1 -skipsdist = True -envlist = docs,linters,functional -ignore_basepython_conflict = True - -[testenv] -basepython = python3 -usedevelop = False -install_command = - pip install -c{env:UPPER_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master} {opts} {packages} -commands = - /usr/bin/find . -type f -name "*.pyc" -delete -passenv = - COMMON_TESTS_PATH - HOME - http_proxy - HTTP_PROXY - https_proxy - HTTPS_PROXY - no_proxy - NO_PROXY - TESTING_BRANCH - TESTING_HOME - USER -allowlist_externals = - bash -setenv = - PYTHONUNBUFFERED=1 - ROLE_NAME=os_senlin - TEST_IDEMPOTENCE=false - VIRTUAL_ENV={envdir} - WORKING_DIR={toxinidir} - -[testenv:docs] -deps = -r{toxinidir}/doc/requirements.txt -commands = - bash -c "rm -rf doc/build" - doc8 doc - sphinx-build -W --keep-going -b html doc/source doc/build/html - -[testenv:pdf-docs] -deps = {[testenv:docs]deps} -allowlist_externals = - make -commands = - sphinx-build -W --keep-going -b latex doc/source doc/build/pdf - make -C doc/build/pdf - -[doc8] -# Settings for doc8: -extensions = .rst - -[testenv:releasenotes] -deps = -r{toxinidir}/doc/requirements.txt -commands = - sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html releasenotes/source releasenotes/build/html - -# environment used by the -infra templated docs job -[testenv:venv] -commands = - {posargs} - -[testenv:pep8] -commands = - bash -c "{toxinidir}/tests/common/test-pep8.sh" - -[flake8] -# Ignores the following rules due to how ansible modules work in general -# F403 'from ansible.module_utils.basic import *' used; -# unable to detect undefined names -ignore=F403 - -[testenv:bashate] -commands = - bash -c "{toxinidir}/tests/common/test-bashate.sh" - -[testenv:ansible-syntax] -commands = - bash -c "{toxinidir}/tests/common/test-ansible-syntax.sh" - -[testenv:ansible-lint] -commands = - bash -c "{toxinidir}/tests/common/test-ansible-lint.sh" - -[testenv:functional] -commands = - bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" - -[testenv:distro_install] -setenv = - {[testenv]setenv} - ANSIBLE_PARAMETERS=-e @{toxinidir}/tests/common/test-distro_install-vars.yml -commands = - bash -c "{toxinidir}/tests/common/test-ansible-functional.sh" - -[testenv:linters] -commands = - bash -c "{toxinidir}/tests/common/test-ansible-env-prep.sh" - {[testenv:pep8]commands} - {[testenv:bashate]commands} - {[testenv:ansible-lint]commands} - {[testenv:ansible-syntax]commands} diff --git a/vars/debian.yml b/vars/debian.yml deleted file mode 100644 index 45f909c..0000000 --- a/vars/debian.yml +++ /dev/null @@ -1,34 +0,0 @@ ---- -# Copyright 2014, Rackspace US, Inc. -# -# 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. - -## APT Cache options -cache_timeout: 600 - -senlin_distro_packages: - - rsync - - libxslt1.1 - - libopenmpi-dev - -senlin_devel_distro_packages: - - libsystemd-dev - -senlin_service_distro_packages: - - python3-senlin - - senlin-common - - python3-systemd - -senlin_oslomsg_amqp1_distro_packages: - - libsasl2-modules - - sasl2-bin diff --git a/vars/distro_install.yml b/vars/distro_install.yml deleted file mode 100644 index c28ff7f..0000000 --- a/vars/distro_install.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -# Copyright 2018, SUSE LINUX GmbH. -# -# 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. - -senlin_package_list: |- - {% set packages = senlin_service_distro_packages %} - {% if senlin_oslomsg_amqp1_enabled | bool %} - {% set _ = packages.extend(senlin_oslomsg_amqp1_distro_packages) %} - {% endif %} - {{ packages }} - -senlin_bin: "/usr/bin" diff --git a/vars/main.yml b/vars/main.yml deleted file mode 100644 index 9fb0d6e..0000000 --- a/vars/main.yml +++ /dev/null @@ -1,85 +0,0 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# 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. - -_senlin_is_first_play_host: >- - {{ - (senlin_services['senlin-api']['group'] in group_names and - inventory_hostname == (groups[senlin_services['senlin-api']['group']] | intersect(ansible_play_hosts)) | first) | bool - }} -_senlin_oslomsg_rpc_vhost_conf: >- - {{ - (senlin_oslomsg_rpc_vhost is string) | ternary( - senlin_oslomsg_rpc_vhost, senlin_oslomsg_rpc_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first) - }} -_senlin_oslomsg_notify_vhost_conf: >- - {{ - (senlin_oslomsg_notify_vhost is string) | ternary( - senlin_oslomsg_notify_vhost, senlin_oslomsg_notify_vhost | selectattr('state', 'eq', 'present') | map(attribute='name') | first) - }} - -# -# Compile a list of the services on a host based on whether -# the host is in the host group and the service is enabled. -# The service list is provided in the defined start order. -# -filtered_senlin_services: |- - {% set services = [] %} - {% for key, value in senlin_services.items() %} - {% if (value['group'] in group_names) and - (('condition' not in value) or - ('condition' in value and value['condition'])) and - not ('wsgi_app' in value and value['wsgi_app']) %} - {% set _ = value.update( - { - 'service_key': key, - 'enabled': value['enabled'] | default(True), - 'state': value['state'] | default('started'), - 'config_overrides': value.init_config_overrides - } - ) - %} - {% set _ = value.pop('init_config_overrides') -%} - {% set _ = services.append(value) %} - {% endif %} - {% endfor %} - {{ services | sort(attribute='start_order') }} - -senlin_uwsgi_services: |- - {% set services = {} %} - {% for key, value in senlin_services.items() %} - {% if (value['group'] in group_names) and - (('condition' not in value) or ('condition' in value and value['condition'])) - and ('wsgi_app' in value and value['wsgi_app']) %} - {% set _ = value.update( - { - 'wsgi_path': senlin_bin ~ '/' ~ value.wsgi_name, - 'wsgi_venv': ((senlin_install_method == 'source') | ternary(senlin_bin | dirname, None)), - 'uwsgi_uid': senlin_system_user_name, - 'uwsgi_guid': senlin_system_group_name, - 'uwsgi_processes': senlin_wsgi_processes, - 'uwsgi_threads': senlin_wsgi_threads - } - ) %} - {% set _ = services.update({key: value}) %} - {% endif %} - {% endfor %} - {{ services }} - -senlin_core_files: - - tmp_f: "/tmp/api-paste.ini" - target_f: "{{ (senlin_install_method == 'distro' and ansible_facts['os_family'] == 'RedHat') | ternary('/usr/share/senlin', '/etc/senlin') }}/api-paste.ini" - config_overrides: "{{ senlin_api_paste_ini_overrides }}" - config_type: "ini" - condition: "{{ not ((senlin_install_method == 'distro') and ((ansible_facts['os_family'] | lower) == 'redhat')) }}" diff --git a/vars/redhat.yml b/vars/redhat.yml deleted file mode 100644 index 409d303..0000000 --- a/vars/redhat.yml +++ /dev/null @@ -1,35 +0,0 @@ ---- -# Copyright 2020, Satish Patel -# -# 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. - -senlin_distro_packages: - - rsync - - libxslt - - which - - openmpi-devel - -senlin_devel_distro_packages: - - systemd-devel - -senlin_service_distro_packages: - - openstack-senlin-engine - - openstack-senlin-api - - openstack-senlin-conductor - - openstack-senlin-health-manager - - python3-systemd - -senlin_oslomsg_amqp1_distro_packages: - - cyrus-sasl-lib - - cyrus-sasl-plain - - cyrus-sasl-md5 diff --git a/vars/source_install.yml b/vars/source_install.yml deleted file mode 100644 index aeb5922..0000000 --- a/vars/source_install.yml +++ /dev/null @@ -1,23 +0,0 @@ ---- -# Copyright 2018, SUSE LINUX GmbH. -# -# 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. - -senlin_package_list: |- - {% set packages = senlin_distro_packages %} - {% if senlin_oslomsg_amqp1_enabled | bool %} - {% set _ = packages.extend(senlin_oslomsg_amqp1_distro_packages) %} - {% endif %} - {{ packages }} - -_senlin_bin: "/openstack/venvs/senlin-{{ senlin_venv_tag }}/bin" diff --git a/zuul.d/project.yaml b/zuul.d/project.yaml deleted file mode 100644 index 57aa946..0000000 --- a/zuul.d/project.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -# Copyright 2017, Rackspace US, Inc. -# -# 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. - -- project: - templates: - - check-requirements - - openstack-ansible-linters-jobs - # - openstack-ansible-deploy-aio_distro_metal-jobs - # - openstack-ansible-deploy-aio_metal-jobs - - publish-openstack-docs-pti - - build-release-notes-jobs-python3