Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
systemsmanagement:Ardana:8:CentOS
ardana-heat
ardana-heat-8.0+git.1571777596.14dce6a.obscpio
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ardana-heat-8.0+git.1571777596.14dce6a.obscpio of Package ardana-heat
07070100000000000081A40000000000000000000000015DAF6C3C00000065000000000000000000000000000000000000003800000000ardana-heat-8.0+git.1571777596.14dce6a/.copyrightignore.copyrightignore roles/heat-common/files/heat_api_audit_map.conf roles/heat-common/files/policy.json 07070100000001000081A40000000000000000000000015DAF6C3C00000080000000000000000000000000000000000000003200000000ardana-heat-8.0+git.1571777596.14dce6a/.gitreview[gerrit] host=gerrit.suse.provo.cloud port=29418 project=ardana/heat-ansible.git defaultremote=ardana defaultbranch=stable/pike 07070100000002000081A40000000000000000000000015DAF6C3C0000279F000000000000000000000000000000000000002F00000000ardana-heat-8.0+git.1571777596.14dce6a/LICENSE 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. 07070100000003000081A40000000000000000000000015DAF6C3C000005BB000000000000000000000000000000000000004600000000ardana-heat-8.0+git.1571777596.14dce6a/_heat-configure-monitoring.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-API:HEA-ACF:HEA-ACW:HEA-ENG:&MON-AGN roles: - heat-monitoring tasks: # set-up process check for heat processes - include: roles/heat-monitoring/tasks/process_check.yml - hosts: HEA-API:&MON-AGN roles: - heat-monitoring tasks: # set-up monitoring of heat-api local endpoint and internal VIP - include: roles/heat-monitoring/tasks/heat_api_check.yml - hosts: HEA-ACF:&MON-AGN roles: - heat-monitoring tasks: # set-up monitoring of heat-api-cfn local endpoint and internal VIP - include: roles/heat-monitoring/tasks/heat_api_cfn_check.yml - hosts: HEA-ACW:&MON-AGN roles: - heat-monitoring tasks: # set-up monitoring of heat-api-cloudwatch local endpoint and internal VIP - include: roles/heat-monitoring/tasks/heat_api_cloudwatch_check.yml 07070100000004000081A40000000000000000000000015DAF6C3C00000430000000000000000000000000000000000000003B00000000ardana-heat-8.0+git.1571777596.14dce6a/_heat-configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-API roles: - heat-api tasks: - include: roles/heat-api/tasks/configure.yml - hosts: HEA-ACF roles: - heat-api-cfn tasks: - include: roles/heat-api-cfn/tasks/configure.yml - hosts: HEA-ACW roles: - heat-api-cloudwatch tasks: - include: roles/heat-api-cloudwatch/tasks/configure.yml - hosts: HEA-ENG roles: - heat-engine tasks: - include: roles/heat-engine/tasks/configure.yml 07070100000005000081A40000000000000000000000015DAF6C3C00000428000000000000000000000000000000000000003900000000ardana-heat-8.0+git.1571777596.14dce6a/_heat-install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-API roles: - heat-api tasks: - include: roles/heat-api/tasks/install.yml - hosts: HEA-ACF roles: - heat-api-cfn tasks: - include: roles/heat-api-cfn/tasks/install.yml - hosts: HEA-ACW roles: - heat-api-cloudwatch tasks: - include: roles/heat-api-cloudwatch/tasks/install.yml - hosts: HEA-ENG roles: - heat-engine tasks: - include: roles/heat-engine/tasks/install.yml 07070100000006000081A40000000000000000000000015DAF6C3C00000325000000000000000000000000000000000000004000000000ardana-heat-8.0+git.1571777596.14dce6a/_heat-post-configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-ENG roles: - heat-post-configure # make sure to run only once tasks: - include: roles/heat-post-configure/tasks/db_configure.yml 07070100000007000081A40000000000000000000000015DAF6C3C00000676000000000000000000000000000000000000003F00000000ardana-heat-8.0+git.1571777596.14dce6a/_heat-pre-configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-API roles: - heat-pre-configure tasks: - include: roles/heat-pre-configure/tasks/keystone_conf.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" - include: roles/heat-pre-configure/tasks/keystone_domain_setup.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" # Force heat_domain_admin password update with the value taken from config # processor data. When upgrading legacy system with hardcoded password, this # will forcibly change password in Keystone. On systems with password coming # from config processor, Keystone will be updated with password it already # has (i.e. no change). Heat configuration files will be updated by # _heat-configure.yml. - include: roles/heat-pre-configure/tasks/keystone_change_domain_admin_password.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" 07070100000008000081A40000000000000000000000015DAF6C3C000002E2000000000000000000000000000000000000004200000000ardana-heat-8.0+git.1571777596.14dce6a/_heat-schedule-restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- # Schedule a restart of all heat services using ardana_notify_... variables - hosts: all tasks: - include: roles/heat-common/tasks/_schedule_restart.yml07070100000009000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000002E00000000ardana-heat-8.0+git.1571777596.14dce6a/config0707010000000A000081A40000000000000000000000015DAF6C3C00000698000000000000000000000000000000000000004000000000ardana-heat-8.0+git.1571777596.14dce6a/config/heat-symlinks.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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 following relative symlinks are created under the # my_cloud/config directory. --- symlinks: "heat/api.conf.j2": "roles/heat-api/templates/api.conf.j2" "heat/api-logging.conf.j2": "roles/heat-api/templates/api-logging.conf.j2" "heat/api-cfn.conf.j2": "roles/heat-api-cfn/templates/api-cfn.conf.j2" "heat/api-cfn-logging.conf.j2": "roles/heat-api-cfn/templates/api-cfn-logging.conf.j2" "heat/api-cloudwatch.conf.j2": "roles/heat-api-cloudwatch/templates/api-cloudwatch.conf.j2" "heat/api-cloudwatch-logging.conf.j2": "roles/heat-api-cloudwatch/templates/api-cloudwatch-logging.conf.j2" "heat/engine.conf.j2": "roles/heat-engine/templates/engine.conf.j2" "heat/engine-logging.conf.j2": "roles/heat-engine/templates/engine-logging.conf.j2" "heat/heat.conf.j2": "roles/heat-common/templates/heat.conf.j2" "heat/policy.json": "roles/heat-common/files/policy.json" "heat/api-paste.ini.j2": "roles/heat-common/templates/api-paste.ini.j2" "heat/heat_api_audit_map.conf": "roles/heat-common/files/heat_api_audit_map.conf" 0707010000000B000081A40000000000000000000000015DAF6C3C00000337000000000000000000000000000000000000003D00000000ardana-heat-8.0+git.1571777596.14dce6a/heat-caasp-deploy.yml# # (c) Copyright 2016 Hewlett Packard Enterprise Development Company LP # (c) Copyright 2017-2018 SUSE LLC # # 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: deploy caasp using caasp-openstack-heat-templates package hosts: localhost roles: - heat-caasp tasks: - include: roles/heat-caasp/tasks/install.yml 0707010000000C000081A40000000000000000000000015DAF6C3C00000364000000000000000000000000000000000000003700000000ardana-heat-8.0+git.1571777596.14dce6a/heat-deploy.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: heat-stop.yml - include: _heat-install.yml - include: _heat-pre-configure.yml - include: _heat-configure.yml - include: _heat-post-configure.yml - include: heat-start.yml - include: _heat-configure-monitoring.yml 0707010000000D000081A40000000000000000000000015DAF6C3C00000566000000000000000000000000000000000000004F00000000ardana-heat-8.0+git.1571777596.14dce6a/heat-reconfigure-credentials-change.yml# # (c) Copyright 2016-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-API roles: - heat-pre-configure tasks: - include: roles/heat-pre-configure/tasks/keystone_change_service_password.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" # get values of domain_id to be set in heat.conf - include: roles/heat-pre-configure/tasks/keystone_domain_setup.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" - include: roles/heat-pre-configure/tasks/keystone_change_domain_admin_password.yml ansible_python_interpreter: "{{ KEY_CLI.vars.keystone_client_python_interpreter }}" - include: _heat-configure.yml - include: heat-start.yml 0707010000000E000081A40000000000000000000000015DAF6C3C0000030A000000000000000000000000000000000000003C00000000ardana-heat-8.0+git.1571777596.14dce6a/heat-reconfigure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: _heat-pre-configure.yml - include: _heat-configure.yml - include: _heat-post-configure.yml - include: heat-start.yml 0707010000000F000081A40000000000000000000000015DAF6C3C00000285000000000000000000000000000000000000003800000000ardana-heat-8.0+git.1571777596.14dce6a/heat-restart.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- - include: _heat-schedule-restart.yml - include: heat-start.yml 07070100000010000081A40000000000000000000000015DAF6C3C00000420000000000000000000000000000000000000003600000000ardana-heat-8.0+git.1571777596.14dce6a/heat-start.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-API roles: - heat-api tasks: - include: roles/heat-api/tasks/start.yml - hosts: HEA-ACF roles: - heat-api-cfn tasks: - include: roles/heat-api-cfn/tasks/start.yml - hosts: HEA-ACW roles: - heat-api-cloudwatch tasks: - include: roles/heat-api-cloudwatch/tasks/start.yml - hosts: HEA-ENG roles: - heat-engine tasks: - include: roles/heat-engine/tasks/start.yml 07070100000011000081A40000000000000000000000015DAF6C3C00000488000000000000000000000000000000000000003700000000ardana-heat-8.0+git.1571777596.14dce6a/heat-status.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-API max_fail_percentage: 0 roles: - heat-api tasks: - include: roles/heat-api/tasks/status.yml - hosts: HEA-ACF max_fail_percentage: 0 roles: - heat-api-cfn tasks: - include: roles/heat-api-cfn/tasks/status.yml - hosts: HEA-ACW max_fail_percentage: 0 roles: - heat-api-cloudwatch tasks: - include: roles/heat-api-cloudwatch/tasks/status.yml - hosts: HEA-ENG max_fail_percentage: 0 roles: - heat-engine tasks: - include: roles/heat-engine/tasks/status.yml 07070100000012000081A40000000000000000000000015DAF6C3C0000041C000000000000000000000000000000000000003500000000ardana-heat-8.0+git.1571777596.14dce6a/heat-stop.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - hosts: HEA-API roles: - heat-api tasks: - include: roles/heat-api/tasks/stop.yml - hosts: HEA-ACF roles: - heat-api-cfn tasks: - include: roles/heat-api-cfn/tasks/stop.yml - hosts: HEA-ACW roles: - heat-api-cloudwatch tasks: - include: roles/heat-api-cloudwatch/tasks/stop.yml - hosts: HEA-ENG roles: - heat-engine tasks: - include: roles/heat-engine/tasks/stop.yml 07070100000013000081A40000000000000000000000015DAF6C3C00000375000000000000000000000000000000000000003800000000ardana-heat-8.0+git.1571777596.14dce6a/heat-upgrade.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: heat-status.yml - include: _heat-install.yml - include: heat-stop.yml - include: _heat-pre-configure.yml - include: _heat-configure.yml - include: _heat-post-configure.yml - include: heat-start.yml - include: heat-status.yml 07070100000014000041ED00000000000000000000000B5DAF6C3C00000000000000000000000000000000000000000000002D00000000ardana-heat-8.0+git.1571777596.14dce6a/roles07070100000015000041ED0000000000000000000000065DAF6C3C00000000000000000000000000000000000000000000003600000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api07070100000016000041ED0000000000000000000000065DAF6C3C00000000000000000000000000000000000000000000003A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn07070100000017000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/defaults07070100000018000081A40000000000000000000000015DAF6C3C000002A6000000000000000000000000000000000000004C00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- heat_component: heat-api-cfn 07070100000019000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/meta0707010000001A000081A40000000000000000000000015DAF6C3C000002A7000000000000000000000000000000000000004800000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: heat-common 0707010000001B000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004000000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/tasks0707010000001C000081A40000000000000000000000015DAF6C3C00000837000000000000000000000000000000000000004E00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../heat-common/tasks/_set_directories.yml vars: install_package_result: "{{ ardana_notify_heat_api_cfn_install_result }}" - include: ../../heat-common/tasks/configure.yml - include: ../../heat-common/tasks/_write_conf.yml src: "../../heat-api-cfn/templates/api-cfn.conf.j2" dest: "{{ heat_service_conf_dir }}/api-cfn.conf" - name: heat-api-cfn | configure | notify on api-cfn.conf change command: /bin/true register: ardana_notify_heat_api_cfn_restart_required when: write_conf_result.changed - name: heat-api-cfn | configure | Create api-cfn-logging.conf become: yes template: src: "api-cfn-logging.conf.j2" dest: "{{ heat_service_conf_dir }}/api-cfn-logging.conf" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: "0400" register: ardana_notify_heat_api_cfn_restart_required - name: heat-api-cfn | configure | touch audit log file become: yes file: path: "{{ heat_audit_log_location }}/heat-api-cfn-audit.log" owner: "{{ heat_system_user }}" group: "{{ heat_log_group }}" mode: 0640 state: touch when: heat_audit_enable - name: heat-api-cfn | configure | touch api-cfn log files become: yes file: path: "{{ item }}" owner: "{{ heat_system_user }}" group: "{{ heat_log_group }}" mode: 0640 state: touch with_items: - "{{ heat_log_location }}/heat-api-cfn-json.log" - "{{ heat_log_location }}/heat-api-cfn.log" 0707010000001D000081A40000000000000000000000015DAF6C3C000006BC000000000000000000000000000000000000004C00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api-cfn | install | update venv cache become: yes install_package: cache: update - name: heat-api-cfn | install | install heat-api-cfn service become: yes install_package: name: heat service: heat-api-cfn state: present activate: act_off register: ardana_notify_heat_api_cfn_install_result - name: heat-api-cfn | install | register persistent fact of install command: /bin/true register: ardana_notify_heat_api_cfn_restart_required when: ardana_notify_heat_api_cfn_install_result.changed - include: ../../heat-common/tasks/_set_directories.yml vars: install_package_result: "{{ ardana_notify_heat_api_cfn_install_result }}" - name: heat-api-cfn | install | register heat-api-cfn service become: yes setup_systemd: service: heat-api-cfn cmd: heat-api-cfn user: "{{ heat_system_user }}" group: "{{ heat_system_user }}" args: > --config-file={{ heat_service_conf_dir }}/heat.conf --config-file={{ heat_service_conf_dir }}/api-cfn.conf - include: ../../heat-common/tasks/install.yml 0707010000001E000081A40000000000000000000000015DAF6C3C000006A9000000000000000000000000000000000000004A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/tasks/start.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api-cfn | start | activate the latest installed version become: yes install_package: name: heat service: heat-api-cfn activate: act_on version: "{{ ardana_notify_heat_api_cfn_install_result.version }}" when: ardana_notify_heat_api_cfn_install_result is defined - name: heat-api-cfn | start | register persistent fact of activate command: /bin/true register: ardana_notify_heat_api_cfn_restart_required when: (ardana_notify_heat_api_cfn_install_result is defined and ardana_notify_heat_api_cfn_install_result.changed) - name: heat-api-cfn | start | restart heat-api-cfn service become: yes service: name=heat-api-cfn state=restarted when: (ardana_notify_heat_all_restart_required is defined and ardana_notify_heat_all_restart_required.changed) or (ardana_notify_heat_api_cfn_restart_required is defined and ardana_notify_heat_api_cfn_restart_required.changed) - name: heat-api-cfn | start | start heat-api-cfn service become: yes service: name=heat-api-cfn state=started 0707010000001F000081A40000000000000000000000015DAF6C3C000002BB000000000000000000000000000000000000004B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../heat-common/tasks/_service_status.yml 07070100000020000081A40000000000000000000000015DAF6C3C00000365000000000000000000000000000000000000004900000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/tasks/stop.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api-cfn | stop | stop heat-api service become: yes service: name=heat-api-cfn state=stopped register: stop_result failed_when: "stop_result|failed and 'service not found' not in stop_result.msg" 07070100000021000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004400000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/templates07070100000022000081A40000000000000000000000015DAF6C3C0000088B000000000000000000000000000000000000005C00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/templates/api-cfn-logging.conf.j2{# # # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [loggers] keys: root, iso8601{%- if heat_audit_enable|bool %}, audit{% endif %} [handlers] keys: watchedfile, logstash{%- if heat_audit_enable|bool %}, auditfile{% endif %} [formatters] keys: context, logstash [logger_root] qualname: root handlers: watchedfile, logstash level: NOTSET {%- if heat_audit_enable|bool %} [logger_audit] qualname: oslo.messaging.notification.audit handlers: auditfile propagate: 0 level: INFO {% endif %} [logger_iso8601] qualname: iso8601 handlers: watchedfile level: WARNING # Writes to disk [handler_watchedfile] class: handlers.WatchedFileHandler args: ('/var/log/heat/heat-api-cfn.log',) formatter: context level: INFO # Writes JSON to disk, beaver will ship to logstash [handler_logstash] class: handlers.WatchedFileHandler args: ('/var/log/heat/heat-api-cfn-json.log',) formatter: logstash level: INFO {%- if heat_audit_enable|bool %} # Writes to disk [handler_auditfile] class: handlers.WatchedFileHandler args: ('{{ heat_audit_log_location }}/heat-api-cfn-audit.log',) formatter: context level: INFO {% endif %} # datefmt must be set otherwise you end up with too many (msecs) fields [formatter_context] class: oslo_log.formatters.ContextFormatter args: (datefmt=datefmt) format: %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)s datefmt: %Y-%m-%d %H:%M:%S # the "format" and "datefmt" actually set the "type" and "tags" [formatter_logstash] class: logstash.LogstashFormatterVersion1 format: heat datefmt: heat-api-cfn 07070100000023000081A40000000000000000000000015DAF6C3C000002D2000000000000000000000000000000000000005400000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cfn/templates/api-cfn.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [DEFAULT] log_config_append={{ heat_service_conf_dir }}/api-cfn-logging.conf 07070100000024000041ED0000000000000000000000065DAF6C3C00000000000000000000000000000000000000000000004100000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch07070100000025000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/defaults07070100000026000081A40000000000000000000000015DAF6C3C000002AD000000000000000000000000000000000000005300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- heat_component: heat-api-cloudwatch 07070100000027000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004600000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/meta07070100000028000081A40000000000000000000000015DAF6C3C000002A7000000000000000000000000000000000000004F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: heat-common 07070100000029000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004700000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/tasks0707010000002A000081A40000000000000000000000015DAF6C3C000008BC000000000000000000000000000000000000005500000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../heat-common/tasks/_set_directories.yml vars: install_package_result: "{{ ardana_notify_heat_api_cloudwatch_install_result }}" - include: ../../heat-common/tasks/configure.yml - include: ../../heat-common/tasks/_write_conf.yml src: "../../heat-api-cloudwatch/templates/api-cloudwatch.conf.j2" dest: "{{ heat_service_conf_dir }}/api-cloudwatch.conf" - name: heat-api-cloudwatch | configure | notify on api-cloudwatch.conf change command: /bin/true register: ardana_notify_heat_api_cloudwatch_restart_required when: write_conf_result.changed - name: heat-api-cloudwatch | configure | Create /api-cloudwatch-logging.conf become: yes template: src: "api-cloudwatch-logging.conf.j2" dest: "{{ heat_service_conf_dir }}/api-cloudwatch-logging.conf" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: "0400" register: ardana_notify_heat_api_cloudwatch_restart_required - name: heat-api-cloudwatch | configure | touch audit log file become: yes file: path: "{{ heat_audit_log_location }}/heat-api-cloudwatch-audit.log" owner: "{{ heat_system_user }}" group: "{{ heat_log_group }}" mode: 0640 state: touch when: heat_audit_enable - name: heat-api-cloudwatch | configure | touch api-cloudwatch log files become: yes file: path: "{{ item }}" owner: "{{ heat_system_user }}" group: "{{ heat_log_group }}" mode: 0640 state: touch with_items: - "{{ heat_log_location }}/heat-api-cloudwatch-json.log" - "{{ heat_log_location }}/heat-api-cloudwatch.log" 0707010000002B000081A40000000000000000000000015DAF6C3C00000724000000000000000000000000000000000000005300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api-cloudwatch | install | update venv cache become: yes install_package: cache: update - name: heat-api-cloudwatch | install | install heat-api-cloudwatch service become: yes install_package: name: heat service: heat-api-cloudwatch state: present activate: act_off register: ardana_notify_heat_api_cloudwatch_install_result - name: heat-api-cloudwatch | install | register persistent fact of install command: /bin/true register: ardana_notify_heat_api_cloudwatch_restart_required when: ardana_notify_heat_api_cloudwatch_install_result.changed - include: ../../heat-common/tasks/_set_directories.yml vars: install_package_result: "{{ ardana_notify_heat_api_cloudwatch_install_result }}" - name: heat-api-cloudwatch | install | register heat-api-cloudwatch service become: yes setup_systemd: service: heat-api-cloudwatch cmd: heat-api-cloudwatch user: "{{ heat_system_user }}" group: "{{ heat_system_user }}" args: > --config-file={{ heat_service_conf_dir }}/heat.conf --config-file={{ heat_service_conf_dir }}/api-cloudwatch.conf - include: ../../heat-common/tasks/install.yml 0707010000002C000081A40000000000000000000000015DAF6C3C0000071B000000000000000000000000000000000000005100000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/tasks/start.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api-cloudwatch | start | activate the latest installed version become: yes install_package: name: heat service: heat-api-cloudwatch activate: act_on version: "{{ ardana_notify_heat_api_cloudwatch_install_result.version }}" when: ardana_notify_heat_api_cloudwatch_install_result is defined - name: heat-api-cloudwatch | start | register persistent fact of activate command: /bin/true register: ardana_notify_heat_api_cloudwatch_restart_required when: (ardana_notify_heat_api_cloudwatch_install_result is defined and ardana_notify_heat_api_cloudwatch_install_result.changed) - name: heat-api-cloudwatch | start | restart heat-api-cloudwatch service become: yes service: name=heat-api-cloudwatch state=restarted when: (ardana_notify_heat_all_restart_required is defined and ardana_notify_heat_all_restart_required.changed) or (ardana_notify_heat_api_cloudwatch_restart_required is defined and ardana_notify_heat_api_cloudwatch_restart_required.changed) - name: heat-api-cloudwatch | start | start heat-api-cloudwatch service become: yes service: name=heat-api-cloudwatch state=started 0707010000002D000081A40000000000000000000000015DAF6C3C000002BB000000000000000000000000000000000000005200000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../heat-common/tasks/_service_status.yml 0707010000002E000081A40000000000000000000000015DAF6C3C00000373000000000000000000000000000000000000005000000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/tasks/stop.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api-cloudwatch | stop | stop heat-api service become: yes service: name=heat-api-cloudwatch state=stopped register: stop_result failed_when: "stop_result|failed and 'service not found' not in stop_result.msg" 0707010000002F000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/templates07070100000030000081A40000000000000000000000015DAF6C3C0000089B000000000000000000000000000000000000006A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/templates/api-cloudwatch-logging.conf.j2{# # # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [loggers] keys: root, iso8601{%- if heat_audit_enable|bool %}, audit{% endif %} [handlers] keys: watchedfile, logstash{%- if heat_audit_enable|bool %}, auditfile{% endif %} [formatters] keys: context, logstash [logger_root] qualname: root handlers: watchedfile, logstash level: NOTSET {%- if heat_audit_enable|bool %} [logger_audit] qualname: oslo.messaging.notification.audit handlers: auditfile propagate: 0 level: INFO {% endif %} [logger_iso8601] qualname: iso8601 handlers: watchedfile level: WARNING # Writes to disk [handler_watchedfile] class: handlers.WatchedFileHandler args: ('/var/log/heat/heat-api-cloudwatch.log',) formatter: context # Writes JSON to disk, beaver will ship to logstash [handler_logstash] class: handlers.WatchedFileHandler args: ('/var/log/heat/heat-api-cloudwatch-json.log',) formatter: logstash level: INFO {%- if heat_audit_enable|bool %} # Writes to disk [handler_auditfile] class: handlers.WatchedFileHandler args: ('{{ heat_audit_log_location }}/heat-api-cloudwatch-audit.log',) formatter: context level: INFO {% endif %} # datefmt must be set otherwise you end up with too many (msecs) fields [formatter_context] class: oslo_log.formatters.ContextFormatter args: (datefmt=datefmt) format: %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)s datefmt: %Y-%m-%d %H:%M:%S # the "format" and "datefmt" actually set the "type" and "tags" [formatter_logstash] class: logstash.LogstashFormatterVersion1 format: heat datefmt: heat-api-cloudwatch 07070100000031000081A40000000000000000000000015DAF6C3C000002D9000000000000000000000000000000000000006200000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api-cloudwatch/templates/api-cloudwatch.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [DEFAULT] log_config_append={{ heat_service_conf_dir }}/api-cloudwatch-logging.conf 07070100000032000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/defaults07070100000033000081A40000000000000000000000015DAF6C3C000002A2000000000000000000000000000000000000004800000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- heat_component: heat-api 07070100000034000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/meta07070100000035000081A40000000000000000000000015DAF6C3C000002A7000000000000000000000000000000000000004400000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: heat-common 07070100000036000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003C00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/tasks07070100000037000081A40000000000000000000000015DAF6C3C000007EF000000000000000000000000000000000000004A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../heat-common/tasks/_set_directories.yml vars: install_package_result: "{{ ardana_notify_heat_api_install_result }}" - include: ../../heat-common/tasks/configure.yml - include: ../../heat-common/tasks/_write_conf.yml src: "../../heat-api/templates/api.conf.j2" dest: "{{ heat_service_conf_dir }}/api.conf" - name: heat-api | configure | notify on api.conf change command: /bin/true register: ardana_notify_heat_api_restart_required when: write_conf_result.changed - name: heat-api | configure | Create api-logging.conf become: yes template: src: "api-logging.conf.j2" dest: "{{ heat_service_conf_dir }}/api-logging.conf" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: "0400" register: ardana_notify_heat_api_restart_required - name: heat-api | configure | touch audit log file become: yes file: path: "{{ heat_audit_log_location }}/heat-api-audit.log" owner: "{{ heat_system_user }}" group: "{{ heat_log_group }}" mode: 0640 state: touch when: heat_audit_enable - name: heat-api | configure | touch api log files become: yes file: path: "{{ item }}" owner: "{{ heat_system_user }}" group: "{{ heat_log_group }}" mode: 0640 state: touch with_items: - "{{ heat_log_location }}/heat-api-json.log" - "{{ heat_log_location }}/heat-api.log" 07070100000038000081A40000000000000000000000015DAF6C3C00000684000000000000000000000000000000000000004800000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api | install | update venv cache become: yes install_package: cache: update - name: heat-api | install | install heat-api service become: yes install_package: name: heat service: heat-api state: present activate: act_off register: ardana_notify_heat_api_install_result - name: heat-api | install | register persistent fact of install command: /bin/true register: ardana_notify_heat_api_restart_required when: ardana_notify_heat_api_install_result.changed - include: ../../heat-common/tasks/_set_directories.yml vars: install_package_result: "{{ ardana_notify_heat_api_install_result }}" - name: heat-api | install | register heat-api service become: yes setup_systemd: service: heat-api cmd: heat-api user: "{{ heat_system_user }}" group: "{{ heat_system_user }}" args: > --config-file={{ heat_service_conf_dir }}/heat.conf --config-file={{ heat_service_conf_dir }}/api.conf - include: ../../heat-common/tasks/install.yml 07070100000039000081A40000000000000000000000015DAF6C3C00000669000000000000000000000000000000000000004600000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/tasks/start.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api | start | activate the latest installed version become: yes install_package: name: heat service: heat-api activate: act_on version: "{{ ardana_notify_heat_api_install_result.version }}" when: ardana_notify_heat_api_install_result is defined - name: heat-api | start | register persistent fact of activate command: /bin/true register: ardana_notify_heat_api_restart_required when: (ardana_notify_heat_api_install_result is defined and ardana_notify_heat_api_install_result.changed) - name: heat-api | start | restart heat-api service become: yes service: name=heat-api state=restarted when: (ardana_notify_heat_all_restart_required is defined and ardana_notify_heat_all_restart_required.changed) or (ardana_notify_heat_api_restart_required is defined and ardana_notify_heat_api_restart_required.changed) - name: heat-api | start | start heat-api service become: yes service: name=heat-api state=started 0707010000003A000081A40000000000000000000000015DAF6C3C000002BB000000000000000000000000000000000000004700000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../heat-common/tasks/_service_status.yml 0707010000003B000081A40000000000000000000000015DAF6C3C0000035D000000000000000000000000000000000000004500000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/tasks/stop.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-api | stop | stop heat-api service become: yes service: name=heat-api state=stopped register: stop_result failed_when: "stop_result|failed and 'service not found' not in stop_result.msg" 0707010000003C000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004000000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/templates0707010000003D000081A40000000000000000000000015DAF6C3C0000087B000000000000000000000000000000000000005400000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/templates/api-logging.conf.j2{# # # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [loggers] keys: root, iso8601{%- if heat_audit_enable|bool %}, audit{% endif %} [handlers] keys: watchedfile, logstash{%- if heat_audit_enable|bool %}, auditfile{% endif %} [formatters] keys: context, logstash [logger_root] qualname: root handlers: watchedfile, logstash level: NOTSET {%- if heat_audit_enable|bool %} [logger_audit] qualname: oslo.messaging.notification.audit handlers: auditfile propagate: 0 level: INFO {% endif %} [logger_iso8601] qualname: iso8601 handlers: watchedfile level: WARNING # Writes to disk [handler_watchedfile] class: handlers.WatchedFileHandler args: ('/var/log/heat/heat-api.log',) formatter: context level: INFO # Writes JSON to disk, beaver will ship to logstash [handler_logstash] class: handlers.WatchedFileHandler args: ('/var/log/heat/heat-api-json.log',) formatter: logstash level: INFO {%- if heat_audit_enable|bool %} # Writes to disk [handler_auditfile] class: handlers.WatchedFileHandler args: ('{{ heat_audit_log_location }}/heat-api-audit.log',) formatter: context level: INFO {% endif %} # datefmt must be set otherwise you end up with too many (msecs) fields [formatter_context] class: oslo_log.formatters.ContextFormatter args: (datefmt=datefmt) format: %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)s datefmt: %Y-%m-%d %H:%M:%S # the "format" and "datefmt" actually set the "type" and "tags" [formatter_logstash] class: logstash.LogstashFormatterVersion1 format: heat datefmt: heat-api 0707010000003E000081A40000000000000000000000015DAF6C3C000002CE000000000000000000000000000000000000004C00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-api/templates/api.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [DEFAULT] log_config_append={{ heat_service_conf_dir }}/api-logging.conf 0707010000003F000041ED0000000000000000000000055DAF6C3C00000000000000000000000000000000000000000000003800000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-caasp07070100000040000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004100000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-caasp/defaults07070100000041000081A40000000000000000000000015DAF6C3C00000475000000000000000000000000000000000000004A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-caasp/defaults/main.yml# # (c) Copyright 2018 SUSE LLC # # 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.in # --- heat_component: heat-caasp caasp_image_url: "http://download.suse.de/install/SUSE-CaaSP-3-GM/SUSE-CaaS-Platform-3.0-for-OpenStack-Cloud.x86_64-3.0.0-GM.qcow2" caasp_image_tmp_path: "/tmp/SUSE-CaaS-Platform-3.0-for-OpenStack-Cloud.x86_64-3.0.0-GM.qcow2" caasp_image_name: "SUSE-CaaS-Platform-3.0-for-OpenStack-Cloud" caasp_stack_name: "caasp-stack" ardana_service_osrc_file: "~ardana/service.osrc" caasp_stack_yaml_dir: "/usr/share/caasp-openstack-heat-templates/" caasp_stack_yaml_file: "caasp-stack.yaml" caasp_stack_env_yaml_file: "caasp-environment.yaml" 07070100000042000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003D00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-caasp/meta07070100000043000081A40000000000000000000000015DAF6C3C00000268000000000000000000000000000000000000004600000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-caasp/meta/main.yml# # (c) Copyright 2018 SUSE LLC # # 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. # --- dependencies: - role: heat-common 07070100000044000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003E00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-caasp/tasks07070100000045000081A40000000000000000000000015DAF6C3C00000C5F000000000000000000000000000000000000004A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-caasp/tasks/install.yml# # (c) Copyright 2018 SUSE LLC # # 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: heat-caasp | install | install caasp-openstack-heat-templates package become: yes zypper: name: caasp-openstack-heat-templates state: present - name: heat-caasp | install | check if caasp image exists in glance shell: | source {{ ardana_service_osrc_file }} openstack image show "{{ caasp_image_name }}" register: caasp_image_exists_result args: executable: /bin/bash ignore_errors: True - name: heat-caasp | install | download caasp openstack qcow image to tmp get_url: url: "{{ caasp_image_url }}" dest: "{{ caasp_image_tmp_path }}" mode: 0600 register: _download_caasp_image_result until: _download_caasp_image_result | success retries: 5 delay: 2 when: caasp_image_exists_result.rc > 0 - name: heat-caasp | install | upload caasp openstack qcow image to glance shell: | source {{ ardana_service_osrc_file }} openstack image create --public --disk-format qcow2 \ --container-format bare \ --file "{{ caasp_image_tmp_path }}" "{{ caasp_image_name }}" args: executable: /bin/bash when: caasp_image_exists_result.rc > 0 - name: heat-caasp | install | delete caasp openstack qcow image from tmp file: state: absent path: "{{ caasp_image_tmp_path }}" when: caasp_image_exists_result.rc > 0 - name: heat-caasp | install | check if caasp stack exists shell: | source {{ ardana_service_osrc_file }} openstack stack show "{{ caasp_stack_name }}" register: caasp_stack_exists_result args: executable: /bin/bash ignore_errors: True - name: heat-caasp | install | create caasp stack shell: | source {{ ardana_service_osrc_file }} openstack stack create --wait --timeout 120 \ --template "{{ caasp_stack_yaml_file }}" \ --environment "{{ caasp_stack_env_yaml_file }}" \ --parameter image="{{ caasp_image_name }}" "{{ caasp_stack_name }}" args: executable: /bin/bash chdir: "{{ caasp_stack_yaml_dir }}" when: caasp_stack_exists_result.rc > 0 - name: heat-caasp | install | get caasp stack status shell: | source {{ ardana_service_osrc_file }} openstack stack show "{{ caasp_stack_name }}" \ | grep -w stack_status | awk '{print $4}' args: executable: /bin/bash register: create_caasp_stack_result when: caasp_stack_exists_result.rc > 0 - name: heat-caasp | install | check caasp stack status fail: msg: "Failed to create stack: {{ caasp_stack_exists_result.stdout }}" when: - caasp_stack_exists_result.rc > 0 - create_caasp_stack_result.stdout != 'CREATE_COMPLETE' 07070100000046000041ED0000000000000000000000075DAF6C3C00000000000000000000000000000000000000000000003900000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common07070100000047000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004200000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/defaults07070100000048000081A40000000000000000000000015DAF6C3C0000148D000000000000000000000000000000000000004B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/defaults/main.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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. # --- heat_system_user: heat heat_system_group: heat heat_home_dir: /var/lib/heat heat_log_file_location: /var/log/heat heat_stack_user_domain_name: heat heat_stack_domain_admin_user: "{{ HEA_ENG.consumes_KEY_API.vars.keystone_heat_domain_admin_user }}" heat_stack_domain_admin_user_password: "{{ HEA_ENG.consumes_KEY_API.vars.keystone_heat_domain_admin_password | quote }}" # This variable is set by the keystone_domain_setup.yml playbook in pre configure task heat_stack_domain_id: unset # Number of maximum worker allowed regardless of CPUs available num_engine_max_workers: 8 # Number of num_engine_workers. The default will be the maximum allowed # by variable num_engine_max_workers num_engine_worker_count: "{{ ansible_processor_count * ansible_processor_cores * 2 | default('{{ num_engine_max_workers }}') }}" # Audit heat_api_audit_config: "{{ heat_service_conf_dir }}/heat_api_audit_map.conf" heat_audit_enable: "{{ HEA.audit.enabled }}" heat_audit_log_location: "{{ HEA.audit.dir }}/heat" heat_audit_notification_driver: log heat_log_group: adm heat_log_location: "/var/log/heat" # heat.conf config options ## [DEFAULT] heat_debug: "True" heat_region_name_for_services: "{{ HEA_API.advertises.vips.public[0].region_name }}" heat_auth_encryption_key: "040b67e76d211aaa326db524bc026666" heat_watch_server_url: > {{ HEA_ACW | item('advertises.vips.public[0].url', default='http://' ~ HEA_ACW.advertises.vips.public[0].host ~ ':' ~ HEA_ACW.advertises.vips.public[0].port) }} heat_waitcondition_server_url: > {{ HEA_ACF | item('advertises.vips.public[0].url', default='http://' ~ HEA_ACF.advertises.vips.public[0].host ~ ':' ~ HEA_ACF.advertises.vips.public[0].port) }}/v1/waitcondition heat_metadata_server_url: > {{ HEA_ACF | item('advertises.vips.public[0].url', default='http://' ~ HEA_ACF.advertises.vips.public[0].host ~ ':' ~ HEA_ACF.advertises.vips.public[0].port) }} heat_rabbit_userid: "{{ HEA.consumes_FND_RMQ.vars.accounts.heat.username }}" heat_rabbit_password: "{{ HEA.consumes_FND_RMQ.vars.accounts.heat.password }}" _heat_rabbit_hosts_list: > {{ HEA_API | item('consumes_FND_RMQ.members.private', default=( HEA_API | item('consumes_FND_RMQ.members.public') )) }} heat_rabbit_hosts: "{% for x in _heat_rabbit_hosts_list %}{{ heat_rabbit_userid }}:{{ heat_rabbit_password }}@{{ x.host }}:{{ x.port }}{%if not loop.last %},{% endif %}{% endfor %}" heat_rabbit_use_ssl: "{{ HEA.consumes_FND_RMQ.members.private[0].use_tls }}" heat_notification_topic: "notifications" heat_notification_driver: "messaging" heat_stack_user_role: "heat_stack_user" heat_encrypt_parameters_and_properties: "True" ## [database] heat_database_connection: > {{ 'mysql+pymysql://' ~ HEA_ENG.consumes_FND_MDB.vars.accounts.heat.username ~ ':' ~ HEA_ENG.consumes_FND_MDB.vars.accounts.heat.password | urlencode ~ '@' ~ HEA_ENG.consumes_FND_MDB.vips.private[0].host ~ '/heat?charset=utf8' }}{{ heat_db_ssl }} ## [keystone_authtoken] heat_keystone_admin_project_name: "{{ KEY_API.vars.keystone_service_tenant }}" heat_keystone_admin_password: "{{ HEA_API.consumes_KEY_API.vars.keystone_heat_password | quote }}" heat_keystone_admin_user: "{{ HEA_API.consumes_KEY_API.vars.keystone_heat_user }}" heat_keystone_admin_user_domain_id: "{{ KEY_API.vars.keystone_default_domain }}" heat_keystone_admin_project_domain_id: "{{ KEY_API.vars.keystone_default_domain }}" service_token_roles: "{{KEY_API.vars.keystone_service_role}}" heat_keystone_auth_uri: "{{ KEY_API.advertises.vips.public[0].url }}/v3" heat_keystone_auth_url: "{{ HEA_API.consumes_KEY_API.vips.private[0].url }}" memcached_servers: "{% for x in HEA.consumes_FND_MEM.members.private %}{{ x.host }}:{{ x.port }}{%if not loop.last %},{% endif %}{% endfor %}" memcache_secret_key: "{{ HEA.consumes_FND_MEM.vars.memcached.heat.secret_key | quote }}" ## [ec2authtoken] heat_ec2_auth_uri: > {{ HEA_API.consumes_KEY_API.vips.private[0].url }}/v3 ## [heat_api] heat_api_workers: "2" heat_api_bind_host: > {{ host | item('bind.HEA_API.internal.ip_address') }} ## [heat_api_cfn] heat_api_cfn_bind_host: > {{ host | item('bind.HEA_ACF.internal.ip_address') }} ## [heat_api_cloudwatch] heat_api_cloudwatch_bind_host: > {{ host | item('bind.HEA_ACW.internal.ip_address') }} ## [paste_deploy] heat_api_paste_config_path: "{{ heat_service_conf_dir }}/api-paste.ini" ## [clients] heat_endpoint_type: "internalURL" ## [ssl] heat_ca_file: "{{ trusted_ca_bundle }}" heat_db_ssl: "{% if HEA_ENG.consumes_FND_MDB.vips.private[0].use_tls %}&ssl_ca={{ heat_ca_file }} {% endif %}" 07070100000049000041ED0000000000000000000000035DAF6C3C00000000000000000000000000000000000000000000003F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/files0707010000004A000081A40000000000000000000000015DAF6C3C000002D7000000000000000000000000000000000000005700000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/files/heat_api_audit_map.conf[DEFAULT] # default target endpoint type # should match the endpoint type defined in service catalog target_endpoint_type = None # possible end path of api requests [path_keywords] stacks = stack resources = resource preview = None detail = None abandon = None snapshots = snapshot restore = None outputs = output metadata = server signal = None events = event template = None template_versions = template_version functions = None validate = None resource_types = resource_type build_info = None actions = None software_configs = software_config software_deployments = software_deployment services = None # map endpoint type defined in service catalog to CADF typeURI [service_endpoints] orchestration = service/orchestration0707010000004B000081A40000000000000000000000015DAF6C3C00001292000000000000000000000000000000000000004B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/files/policy.json{ "context_is_admin": "role:admin and is_admin_project:True", "project_admin": "role:admin", "deny_stack_user": "not role:heat_stack_user", "deny_everybody": "!", "cloudformation:ListStacks": "rule:deny_stack_user", "cloudformation:CreateStack": "rule:deny_stack_user", "cloudformation:DescribeStacks": "rule:deny_stack_user", "cloudformation:DeleteStack": "rule:deny_stack_user", "cloudformation:UpdateStack": "rule:deny_stack_user", "cloudformation:CancelUpdateStack": "rule:deny_stack_user", "cloudformation:DescribeStackEvents": "rule:deny_stack_user", "cloudformation:ValidateTemplate": "rule:deny_stack_user", "cloudformation:GetTemplate": "rule:deny_stack_user", "cloudformation:EstimateTemplateCost": "rule:deny_stack_user", "cloudformation:DescribeStackResource": "", "cloudformation:DescribeStackResources": "rule:deny_stack_user", "cloudformation:ListStackResources": "rule:deny_stack_user", "cloudwatch:DeleteAlarms": "rule:deny_stack_user", "cloudwatch:DescribeAlarmHistory": "rule:deny_stack_user", "cloudwatch:DescribeAlarms": "rule:deny_stack_user", "cloudwatch:DescribeAlarmsForMetric": "rule:deny_stack_user", "cloudwatch:DisableAlarmActions": "rule:deny_stack_user", "cloudwatch:EnableAlarmActions": "rule:deny_stack_user", "cloudwatch:GetMetricStatistics": "rule:deny_stack_user", "cloudwatch:ListMetrics": "rule:deny_stack_user", "cloudwatch:PutMetricAlarm": "rule:deny_stack_user", "cloudwatch:PutMetricData": "", "cloudwatch:SetAlarmState": "rule:deny_stack_user", "actions:action": "rule:deny_stack_user", "build_info:build_info": "rule:deny_stack_user", "events:index": "rule:deny_stack_user", "events:show": "rule:deny_stack_user", "resource:index": "rule:deny_stack_user", "resource:metadata": "", "resource:signal": "", "resource:mark_unhealthy": "rule:deny_stack_user", "resource:show": "rule:deny_stack_user", "stacks:abandon": "rule:deny_stack_user", "stacks:create": "rule:deny_stack_user", "stacks:delete": "rule:deny_stack_user", "stacks:detail": "rule:deny_stack_user", "stacks:export": "rule:deny_stack_user", "stacks:generate_template": "rule:deny_stack_user", "stacks:global_index": "rule:deny_everybody", "stacks:index": "rule:deny_stack_user", "stacks:list_resource_types": "rule:deny_stack_user", "stacks:list_template_versions": "rule:deny_stack_user", "stacks:list_template_functions": "rule:deny_stack_user", "stacks:lookup": "", "stacks:preview": "rule:deny_stack_user", "stacks:resource_schema": "rule:deny_stack_user", "stacks:show": "rule:deny_stack_user", "stacks:template": "rule:deny_stack_user", "stacks:environment": "rule:deny_stack_user", "stacks:files": "rule:deny_stack_user", "stacks:update": "rule:deny_stack_user", "stacks:update_patch": "rule:deny_stack_user", "stacks:preview_update": "rule:deny_stack_user", "stacks:preview_update_patch": "rule:deny_stack_user", "stacks:validate_template": "rule:deny_stack_user", "stacks:snapshot": "rule:deny_stack_user", "stacks:show_snapshot": "rule:deny_stack_user", "stacks:delete_snapshot": "rule:deny_stack_user", "stacks:list_snapshots": "rule:deny_stack_user", "stacks:restore_snapshot": "rule:deny_stack_user", "stacks:list_outputs": "rule:deny_stack_user", "stacks:show_output": "rule:deny_stack_user", "software_configs:global_index": "rule:deny_everybody", "software_configs:index": "rule:deny_stack_user", "software_configs:create": "rule:deny_stack_user", "software_configs:show": "rule:deny_stack_user", "software_configs:delete": "rule:deny_stack_user", "software_deployments:index": "rule:deny_stack_user", "software_deployments:create": "rule:deny_stack_user", "software_deployments:show": "rule:deny_stack_user", "software_deployments:update": "rule:deny_stack_user", "software_deployments:delete": "rule:deny_stack_user", "software_deployments:metadata": "", "service:index": "rule:context_is_admin", "resource_types:OS::Nova::Flavor": "rule:project_admin", "resource_types:OS::Cinder::EncryptedVolumeType": "rule:project_admin", "resource_types:OS::Cinder::VolumeType": "rule:project_admin", "resource_types:OS::Cinder::Quota": "rule:project_admin", "resource_types:OS::Manila::ShareType": "rule:project_admin", "resource_types:OS::Neutron::QoSPolicy": "rule:project_admin", "resource_types:OS::Neutron::QoSBandwidthLimitRule": "rule:project_admin", "resource_types:OS::Nova::HostAggregate": "rule:project_admin", "resource_types:OS::Cinder::QoSSpecs": "rule:project_admin" } 0707010000004C000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004900000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/files/templates0707010000004D000081A40000000000000000000000015DAF6C3C000009F4000000000000000000000000000000000000006300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/files/templates/AWS_CloudWatch_Alarm.yamlHeatTemplateFormatVersion: '2012-12-12' Description: AWS::CloudWatch::Alarm using Ceilometer. Parameters: AlarmDescription: Type: String Default: An alarm EvaluationPeriods: Type: String MetricName: Type: String Namespace: Type: String Default: system/linux Period: Type: String ComparisonOperator: Type: String AllowedValues: [GreaterThanOrEqualToThreshold, GreaterThanThreshold, LessThanThreshold, LessThanOrEqualToThreshold] Statistic: Type: String AllowedValues: [SampleCount, Average, Sum, Minimum, Maximum] Threshold: Type: String Units: Type: String AllowedValues: [Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, None] Default: None AlarmActions: Type: CommaDelimitedList Default: '' OKActions: Type: CommaDelimitedList Default: '' InsufficientDataActions: Type: CommaDelimitedList Default: '' Dimensions: Type: CommaDelimitedList Default: '' Mappings: ComparisonOperatorMap: LessThanOrEqualToThreshold: {Ceilometer: le} LessThanThreshold: {Ceilometer: lt} GreaterThanThreshold: {Ceilometer: gt} GreaterThanOrEqualToThreshold: {Ceilometer: ge} StatisticMap: SampleCount: {Ceilometer: count} Average: {Ceilometer: avg} Sum: {Ceilometer: sum} Minimum: {Ceilometer: min} Maximum: {Ceilometer: max} Resources: __alarm__: Type: OS::Ceilometer::Alarm Properties: description: Ref: AlarmDescription meter_name: Ref: MetricName period: Ref: Period evaluation_periods: Ref: EvaluationPeriods repeat_actions: true threshold: Ref: Threshold alarm_actions: Ref: AlarmActions ok_actions: Ref: OKActions insufficient_data_actions: Ref: InsufficientDataActions statistic: "Fn::FindInMap": [StatisticMap, {Ref: Statistic}, Ceilometer] comparison_operator: "Fn::FindInMap": [ComparisonOperatorMap, {Ref: ComparisonOperator}, Ceilometer] matching_metadata: "Fn::MemberListToMap": [Name, Value, {Ref: Dimensions}] 0707010000004E000081A40000000000000000000000015DAF6C3C00000EC6000000000000000000000000000000000000006100000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/files/templates/AWS_RDS_DBInstance.yamlHeatTemplateFormatVersion: '2012-12-12' Description: 'Builtin AWS::RDS::DBInstance' Parameters: AllocatedStorage: Type: String DBInstanceClass: Type: String DBName: Type: String DBSecurityGroups: Type: CommaDelimitedList Default: '' Engine: Type: String AllowedValues: ['MySQL'] MasterUsername: Type: String MasterUserPassword: Type: String Port: Type: String Default: '3306' KeyName: Type: String Default: '' Mappings: DBInstanceToInstance: db.m1.small: {Instance: m1.small} db.m1.large: {Instance: m1.large} db.m1.xlarge: {Instance: m1.xlarge} db.m2.xlarge: {Instance: m2.xlarge} db.m2.2xlarge: {Instance: m2.2xlarge} db.m2.4xlarge: {Instance: m2.4xlarge} Resources: ServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: 'Enable SSH access' SecurityGroupIngress: - IpProtocol: icmp FromPort: '-1' ToPort: '-1' CidrIp: '0.0.0.0/0' - IpProtocol: tcp FromPort: '22' ToPort : '22' CidrIp : '0.0.0.0/0' - IpProtocol: tcp FromPort: {Ref: Port} ToPort : {Ref: Port} CidrIp : '0.0.0.0/0' DatabaseInstance: Type: AWS::EC2::Instance Metadata: AWS::CloudFormation::Init: config: files: /tmp/db_setup.sql: content: 'Fn::Replace': - DBName: {Ref: DBName} MasterUserPassword: {Ref: MasterUserPassword} MasterUsername: {Ref: MasterUsername} - | CREATE DATABASE DBName; GRANT ALL PRIVILEGES ON DBName.* TO "MasterUsername"@"%" IDENTIFIED BY "MasterUserPassword"; FLUSH PRIVILEGES; EXIT mode: '000644' owner: root group: root packages: yum: mariadb: [] mariadb-server: [] services: systemd: mysqld: enabled: true ensureRunning: true Properties: ImageId: F19-x86_64-cfntools InstanceType: {'Fn::FindInMap': [DBInstanceToInstance, {Ref: DBInstanceClass}, Instance]} KeyName: {Ref: KeyName} SecurityGroups: [{"Ref" : "ServerSecurityGroup"}] UserData: Fn::Base64: Fn::Replace: - 'AWS::StackName': {Ref: 'AWS::StackName'} 'AWS::Region': {Ref: 'AWS::Region'} MasterUserPassword: {Ref: MasterUserPassword} WaitHandle: {Ref: WaitHandle} - | #!/bin/bash -v # iptables -F # Helper function function error_exit { /opt/aws/bin/cfn-signal -e 1 -r \"$1\" 'WaitHandle' exit 1 } /opt/aws/bin/cfn-init -s AWS::StackName -r DatabaseInstance --region AWS::Region || error_exit 'Failed to run cfn-init' # Setup MySQL root password and create a user mysqladmin -u root password 'MasterUserPassword' mysql -u root --password='MasterUserPassword' < /tmp/db_setup.sql || error_exit 'Failed to setup mysql' # Database setup completed, signal success /opt/aws/bin/cfn-signal -e 0 -r "MySQL server setup complete" 'WaitHandle' WaitHandle: Type: AWS::CloudFormation::WaitConditionHandle WaitCondition: Type: AWS::CloudFormation::WaitCondition DependsOn: DatabaseInstance Properties: Handle: {Ref: WaitHandle} Timeout: "600" Outputs: Endpoint.Address: {'Fn::GetAtt': [DatabaseInstance, PublicIp]} Endpoint.Port: {Ref: Port} 0707010000004F000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003E00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/meta07070100000050000081A40000000000000000000000015DAF6C3C00000263000000000000000000000000000000000000004700000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/meta/main.yml# (c) Copyright 2018 SUSE LLC # # 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. # --- dependencies: - role: tls-vars 07070100000051000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/tasks07070100000052000081A40000000000000000000000015DAF6C3C00000314000000000000000000000000000000000000005500000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/tasks/_schedule_restart.yml# # (c) Copyright 2018 SUSE LLC # # 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: heat-common | _schedule_restart | Schedule a restart for all services debug: msg: "Trigger a change notification in heat" changed_when: true register: ardana_notify_heat_all_restart_required07070100000053000081A40000000000000000000000015DAF6C3C0000053A000000000000000000000000000000000000005300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/tasks/_service_status.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-common | _service_status | Print service being checked debug: msg: "Running service check for {{ heat_component }}" run_once: true - name: heat-common | _service_status | Check systemd service running become: yes command: systemctl status "{{ heat_component }}" ignore_errors: yes changed_when: false register: systemctl_status_result - name: heat-common | _service_status | Report status of "{{ heat_component }}" fail: msg: | {{ heat_component }} is not running. systemctl status {{ heat_component }} output: {{ systemctl_status_result.stdout }} {{ systemctl_status_result.stderr }} when: systemctl_status_result | failed 07070100000054000081A40000000000000000000000015DAF6C3C00000707000000000000000000000000000000000000005400000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/tasks/_set_directories.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-common | _set_directories | set service etc and venv directory - configure set_fact: heat_service_conf_dir: "{{ heat_component | config_dir(install_package_result.version) }}/heat" heat_service_bin_dir: "{{ heat_component | bin_dir(install_package_result.version) }}" heat_service_venv_share_dir: "{{ heat_component | share_dir(install_package_result.version) }}" when: install_package_result.version is defined - name: heat-common | _set_directories | set service etc and venv directory - reconfigure set_fact: heat_service_conf_dir: "{{ heat_component | config_dir() }}/heat" heat_service_bin_dir: "{{ heat_component | bin_dir() }}" heat_service_venv_share_dir: "{{ heat_component | share_dir() }}" when: install_package_result.version is undefined - name: heat-common | _set_directories | set plugins directory set_fact: heat_plugins_dir: "{{ heat_service_venv_share_dir }}/lib/heat" heat_docker_plugin_source_dir: "{{ heat_service_venv_share_dir }}/heat/contrib/heat_docker/heat_docker" heat_environment_dir: "{{ heat_service_conf_dir }}/environment.d" 07070100000055000081A40000000000000000000000015DAF6C3C00000730000000000000000000000000000000000000004F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/tasks/_write_conf.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-common | _write_conf | Check for pre-existing version of {{ dest }} become: yes stat: path="{{ dest }}" register: conf_stat_result - name: heat-common | _write_conf | get timestamp command: date +%Y%m%d%H%M%S register: time_result changed_when: False - name: heat-common | _write_conf | Create a backup version of the existing {{ dest }} file become: yes command: cp {{ dest }} {{ dest }}.{{ time_result.stdout }} when: conf_stat_result.stat.exists changed_when: False - name: heat-common | _write_conf | Template {{ dest }} become: yes template: src: "{{ src }}" dest: "{{ dest }}" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: 0600 register: write_conf_result - name: heat-common | _write_conf | Delete backup file that has not changed. become: yes file: path: "{{ dest }}.{{ time_result.stdout }}" state: absent when: write_conf_result.changed==false changed_when: False - name: heat-common | _write_conf | remove all but last 10 backups of {{ dest }} become: yes shell: ls -td {{ dest }}.* |awk 'NR>10' |xargs rm -f when: conf_stat_result.stat.exists changed_when: False 07070100000056000081A40000000000000000000000015DAF6C3C000007BA000000000000000000000000000000000000004D00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-common | configure | Set max worker count to 8 if dynamic CPU based count is greater than {{ num_engine_max_workers }} set_fact: num_engine_worker_count: "{{ num_engine_max_workers }}" when: num_engine_worker_count > num_engine_max_workers - include: _write_conf.yml src: "heat.conf.j2" dest: "{{ heat_service_conf_dir }}/heat.conf" - name: "heat-common | configure | notify on heat.conf change" command: /bin/true register: ardana_notify_heat_all_restart_required when: write_conf_result.changed #TODO : Move this to api specific configure task - name: heat-common | configure | Copy the files to config dir become: yes copy: src: "{{ item }}" dest: "{{ heat_service_conf_dir }}" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: 0640 with_items: - heat_api_audit_map.conf - policy.json register: ardana_notify_heat_all_restart_required - include: _write_conf.yml src: "api-paste.ini.j2" dest: "{{ heat_service_conf_dir }}/api-paste.ini" - name: heat-common | configure | Create heat audit logging directory become: yes file: path: "{{ heat_audit_log_location }}" owner: "{{ heat_system_user }}" group: "{{ heat_system_group | default('root') }}" mode: "0755" state: directory when: heat_audit_enable 07070100000057000081A40000000000000000000000015DAF6C3C000009A7000000000000000000000000000000000000004B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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: heat-common | install | check for presence of heat group become: yes command: "grep -q {{ heat_system_group }} /etc/group" ignore_errors: True register: group_chk_result - name: heat-common | install | create heat group become: yes group: name: "{{ heat_system_group }}" state: present system: yes when: group_chk_result|failed - name: heat-common | install | check for presence of heat user become: yes command: "id {{ heat_system_user }}" ignore_errors: True register: user_chk_result - name: heat-common | install | create heat user become: yes user: name: "{{ heat_system_user }}" group: "{{ heat_system_group }}" createhome: no home: "{{ heat_home_dir }}" shell: /bin/true system: yes when: user_chk_result|failed - name: heat-common | install | create heat user home become: yes file: path: "{{ heat_home_dir }}" state: directory owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: 0700 when: user_chk_result|failed - name: heat-common | install | create heat directories become: yes file: path: "{{ item.path }}" state: directory owner: "{{ item.owner }}" group: "{{ item.group }}" mode: "{{ item.mode }}" with_items: - path: "{{ heat_service_conf_dir }}" mode: "755" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" - path: "{{ heat_log_file_location }}" mode: "755" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" - path: "{{ heat_plugins_dir }}" mode: "755" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" - path: "{{ heat_environment_dir }}" mode: "755" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" 07070100000058000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/templates07070100000059000081A40000000000000000000000015DAF6C3C000011CB000000000000000000000000000000000000005400000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/templates/api-paste.ini.j2{# # # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} # heat-api pipeline [pipeline:heat-api] pipeline = request_id faultwrap ssl versionnegotiation osprofiler authurl authtoken {%- if heat_audit_enable|bool %} audit{% endif %} context apiv1app # heat-api pipeline for standalone heat # ie. uses alternative auth backend that authenticates users against keystone # using username and password instead of validating token (which requires # an admin/service token). # To enable, in heat.conf: # [paste_deploy] # flavor = standalone # [pipeline:heat-api-standalone] pipeline = request_id faultwrap ssl versionnegotiation authurl authpassword context apiv1app # heat-api pipeline for custom cloud backends # i.e. in heat.conf: # [paste_deploy] # flavor = custombackend # [pipeline:heat-api-custombackend] pipeline = request_id faultwrap versionnegotiation context custombackendauth apiv1app # heat-api-cfn pipeline [pipeline:heat-api-cfn] pipeline = cfnversionnegotiation osprofiler ec2authtoken authtoken {%- if heat_audit_enable|bool %} audit{% endif %} context apicfnv1app # heat-api-cfn pipeline for standalone heat # relies exclusively on authenticating with ec2 signed requests [pipeline:heat-api-cfn-standalone] pipeline = cfnversionnegotiation ec2authtoken context apicfnv1app # heat-api-cloudwatch pipeline [pipeline:heat-api-cloudwatch] pipeline = versionnegotiation osprofiler ec2authtoken authtoken {%- if heat_audit_enable|bool %} audit{% endif %} context apicwapp # heat-api-cloudwatch pipeline for standalone heat # relies exclusively on authenticating with ec2 signed requests [pipeline:heat-api-cloudwatch-standalone] pipeline = versionnegotiation ec2authtoken context apicwapp [app:apiv1app] paste.app_factory = heat.common.wsgi:app_factory heat.app_factory = heat.api.openstack.v1:API [app:apicfnv1app] paste.app_factory = heat.common.wsgi:app_factory heat.app_factory = heat.api.cfn.v1:API [app:apicwapp] paste.app_factory = heat.common.wsgi:app_factory heat.app_factory = heat.api.cloudwatch:API [filter:versionnegotiation] paste.filter_factory = heat.common.wsgi:filter_factory heat.filter_factory = heat.api.openstack:version_negotiation_filter [filter:faultwrap] paste.filter_factory = heat.common.wsgi:filter_factory heat.filter_factory = heat.api.openstack:faultwrap_filter [filter:cfnversionnegotiation] paste.filter_factory = heat.common.wsgi:filter_factory heat.filter_factory = heat.api.cfn:version_negotiation_filter [filter:cwversionnegotiation] paste.filter_factory = heat.common.wsgi:filter_factory heat.filter_factory = heat.api.cloudwatch:version_negotiation_filter [filter:context] paste.filter_factory = heat.common.context:ContextMiddleware_filter_factory [filter:ec2authtoken] paste.filter_factory = heat.api.aws.ec2token:EC2Token_filter_factory [filter:ssl] paste.filter_factory = heat.common.wsgi:filter_factory heat.filter_factory = heat.api.openstack:sslmiddleware_filter # Middleware to set auth_url header appropriately [filter:authurl] paste.filter_factory = heat.common.auth_url:filter_factory # Auth middleware that validates token against keystone [filter:authtoken] paste.filter_factory = keystonemiddleware.auth_token:filter_factory # Auth middleware that validates username/password against keystone [filter:authpassword] paste.filter_factory = heat.common.auth_password:filter_factory # Auth middleware that validates against custom backend [filter:custombackendauth] paste.filter_factory = heat.common.custom_backend_auth:filter_factory # Middleware to set x-openstack-request-id in http response header [filter:request_id] paste.filter_factory = oslo_middleware.request_id:RequestId.factory [filter:osprofiler] paste.filter_factory = osprofiler.web:WsgiMiddleware.factory hmac_keys = SECRET_KEY enabled = yes {% if heat_audit_enable|bool %} [filter:audit] paste.filter_factory = keystonemiddleware.audit:filter_factory audit_map_file = {{ heat_api_audit_config }} {% endif %} 0707010000005A000081A40000000000000000000000015DAF6C3C000120F4000000000000000000000000000000000000005000000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-common/templates/heat.conf.j2{# # # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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 configuration file includes the default values for Ardana Openstack # Changes may be made to this file by the customer. [DEFAULT] # # From heat.api.middleware.ssl # # The HTTP Header that will be used to determine which the original request # protocol scheme was, even if it was removed by an SSL terminator proxy. # (string value) # Deprecated group/name - [DEFAULT]/secure_proxy_ssl_header #secure_proxy_ssl_header = X-Forwarded-Proto # # From heat.common.config # # Name of the engine node. This can be an opaque identifier. It is not # necessarily a hostname, FQDN, or IP address. (string value) #host = # List of directories to search for plug-ins. (list value) plugin_dirs = {{ heat_plugins_dir }} # The directory to search for environment files. (string value) environment_dir = {{ heat_environment_dir }} # The directory to search for template files. (string value) #template_dir = /etc/heat/templates # Allow reauthentication on token expiry, such that long-running tasks may # complete. Note this defeats the expiry of any provided user tokens. (string # value) # Allowed values: '', trusts #reauthentication_auth_method = # Gap, in seconds, to determine whether the given token is about to expire. # (integer value) #stale_token_duration = 30 # Subset of trustor roles to be delegated to heat. If left unset, all roles of # a user will be delegated to heat when creating a stack. (list value) #trusts_delegated_roles = # Maximum resources allowed per top-level stack. -1 stands for unlimited. # (integer value) #max_resources_per_stack = 1000 # Maximum number of stacks any one tenant may have active at one time. (integer # value) #max_stacks_per_tenant = 100 # Number of times to retry to bring a resource to a non-error state. Set to 0 # to disable retries. (integer value) #action_retry_limit = 5 # Number of times to retry when a client encounters an expected intermittent # error. Set to 0 to disable retries. (integer value) #client_retry_limit = 2 # Maximum length of a server name to be used in nova. (integer value) # Maximum value: 53 #max_server_name_length = 53 # Number of times to check whether an interface has been attached or detached. # (integer value) # Minimum value: 1 #max_interface_check_attempts = 10 # Controls how many events will be pruned whenever a stack's events exceed # max_events_per_stack. Set this lower to keep more events at the expense of # more frequent purges. (integer value) #event_purge_batch_size = 10 # Maximum events that will be available per stack. Older events will be deleted # when this is reached. Set to 0 for unlimited events per stack. (integer # value) #max_events_per_stack = 1000 # Timeout in seconds for stack action (ie. create or update). (integer value) #stack_action_timeout = 3600 # The amount of time in seconds after an error has occurred that tasks may # continue to run before being cancelled. (integer value) #error_wait_time = 240 # RPC timeout for the engine liveness check that is used for stack locking. # (integer value) #engine_life_check_timeout = 2 # Enable the legacy OS::Heat::CWLiteAlarm resource. (boolean value) #enable_cloud_watch_lite = false # Enable the preview Stack Abandon feature. (boolean value) #enable_stack_abandon = false # Enable the preview Stack Adopt feature. (boolean value) #enable_stack_adopt = false # Enables engine with convergence architecture. All stacks with this option # will be created using convergence engine. (boolean value) #convergence_engine = true # On update, enables heat to collect existing resource properties from reality # and converge to updated template. (boolean value) #observe_on_update = false # Template default for how the server should receive the metadata required for # software configuration. POLL_SERVER_CFN will allow calls to the cfn API # action DescribeStackResource authenticated with the provided keypair # (requires enabled heat-api-cfn). POLL_SERVER_HEAT will allow calls to the # Heat API resource-show using the provided keystone credentials (requires # keystone v3 API, and configured stack_user_* config options). POLL_TEMP_URL # will create and populate a Swift TempURL with metadata for polling (requires # object-store endpoint which supports TempURL).ZAQAR_MESSAGE will create a # dedicated zaqar queue and post the metadata for polling. (string value) # Allowed values: POLL_SERVER_CFN, POLL_SERVER_HEAT, POLL_TEMP_URL, ZAQAR_MESSAGE #default_software_config_transport = POLL_SERVER_CFN # Template default for how the server should signal to heat with the deployment # output values. CFN_SIGNAL will allow an HTTP POST to a CFN keypair signed URL # (requires enabled heat-api-cfn). TEMP_URL_SIGNAL will create a Swift TempURL # to be signaled via HTTP PUT (requires object-store endpoint which supports # TempURL). HEAT_SIGNAL will allow calls to the Heat API resource-signal using # the provided keystone credentials. ZAQAR_SIGNAL will create a dedicated zaqar # queue to be signaled using the provided keystone credentials. (string value) # Allowed values: CFN_SIGNAL, TEMP_URL_SIGNAL, HEAT_SIGNAL, ZAQAR_SIGNAL #default_deployment_signal_transport = CFN_SIGNAL # Stacks containing these tag names will be hidden. Multiple tags should be # given in a comma-delimited list (eg. hidden_stack_tags=hide_me,me_too). (list # value) #hidden_stack_tags = data-processing-cluster # Deprecated. (string value) #onready = <None> # When this feature is enabled, scheduler hints identifying the heat stack # context of a server or volume resource are passed to the configured # schedulers in nova and cinder, for creates done using heat resource types # OS::Cinder::Volume, OS::Nova::Server, and AWS::EC2::Instance. # heat_root_stack_id will be set to the id of the root stack of the resource, # heat_stack_id will be set to the id of the resource's parent stack, # heat_stack_name will be set to the name of the resource's parent stack, # heat_path_in_stack will be set to a list of comma delimited strings of # stackresourcename and stackname with list[0] being 'rootstackname', # heat_resource_name will be set to the resource's name, and heat_resource_uuid # will be set to the resource's orchestration id. (boolean value) #stack_scheduler_hints = false # Encrypt template parameters that were marked as hidden and also all the # resource properties before storing them in database. (boolean value) encrypt_parameters_and_properties = {{ heat_encrypt_parameters_and_properties }} # Seconds between running periodic tasks. (integer value) #periodic_interval = 60 # URL of the Heat metadata server. NOTE: Setting this is only needed if you # require instances to use a different endpoint than in the keystone catalog # (string value) heat_metadata_server_url = {{ heat_metadata_server_url }} # URL of the Heat waitcondition server. (string value) heat_waitcondition_server_url = {{ heat_waitcondition_server_url }} # URL of the Heat CloudWatch server. (string value) heat_watch_server_url = {{ heat_watch_server_url }} # Instance connection to CFN/CW API via https. (string value) #instance_connection_is_secure = 0 # Instance connection to CFN/CW API validate certs if SSL is used. (string # value) #instance_connection_https_validate_certificates = 1 # Default region name used to get services endpoints. (string value) region_name_for_services = {{ heat_region_name_for_services }} # Keystone role for heat template-defined users. (string value) heat_stack_user_role = {{ heat_stack_user_role }} # Keystone domain ID which contains heat template-defined users. If this option # is set, stack_user_domain_name option will be ignored. (string value) # Deprecated group/name - [DEFAULT]/stack_user_domain stack_user_domain_id = {{ heat_stack_domain_id }} # Keystone domain name which contains heat template-defined users. If # `stack_user_domain_id` option is set, this option is ignored. (string value) #stack_user_domain_name = <None> # Keystone username, a user with roles sufficient to manage users and projects # in the stack_user_domain. (string value) stack_domain_admin = {{ heat_stack_domain_admin_user }} # Keystone password for stack_domain_admin user. (string value) stack_domain_admin_password = {{ heat_stack_domain_admin_user_password }} # Maximum raw byte size of any template. (integer value) #max_template_size = 524288 # Maximum depth allowed when using nested stacks. (integer value) #max_nested_stack_depth = 5 # Number of heat-engine processes to fork and run. Will default to either to 4 # or number of CPUs on the host, whichever is greater. (integer value) num_engine_workers = {{ num_engine_worker_count }} # # From heat.common.crypt # # Key used to encrypt authentication info in the database. Length of this key # must be 32 characters. (string value) auth_encryption_key = {{ heat_auth_encryption_key }} # # From heat.common.wsgi # # Maximum raw byte size of JSON request body. Should be larger than # max_template_size. (integer value) #max_json_body_size = 1048576 # # From heat.engine.clients # # Fully qualified class name to use as a client backend. (string value) #cloud_backend = heat.engine.clients.OpenStackClients # # From heat.engine.notification # # Default notification level for outgoing notifications. (string value) #default_notification_level = INFO # Default publisher_id for outgoing notifications. (string value) #default_publisher_id = <None> # # From heat.engine.resources # # Custom template for the built-in loadbalancer nested stack. (string value) #loadbalancer_template = <None> # # From oslo.log # # If set to true, the logging level will be set to DEBUG instead of the default # INFO level. (boolean value) # Note: This option can be changed without restarting. debug = {{ heat_debug }} # The name of a logging configuration file. This file is appended to any # existing logging configuration files. For details about logging configuration # files, see the Python logging module documentation. Note that when logging # configuration files are used then all logging configuration is set in the # configuration file and other logging configuration options are ignored (for # example, logging_context_format_string). (string value) # Note: This option can be changed without restarting. # Deprecated group/name - [DEFAULT]/log_config #log_config_append = <None> # Defines the format string for %%(asctime)s in log records. Default: # %(default)s . This option is ignored if log_config_append is set. (string # value) #log_date_format = %Y-%m-%d %H:%M:%S # (Optional) Name of log file to send logging output to. If no default is set, # logging will go to stderr as defined by use_stderr. This option is ignored if # log_config_append is set. (string value) # Deprecated group/name - [DEFAULT]/logfile #log_file = <None> # (Optional) The base directory used for relative log_file paths. This option # is ignored if log_config_append is set. (string value) # Deprecated group/name - [DEFAULT]/logdir log_dir = {{ heat_log_location }} # Uses logging handler designed to watch file system. When log file is moved or # removed this handler will open a new log file with specified path # instantaneously. It makes sense only if log_file option is specified and # Linux platform is used. This option is ignored if log_config_append is set. # (boolean value) #watch_log_file = false # Use syslog for logging. Existing syslog format is DEPRECATED and will be # changed later to honor RFC5424. This option is ignored if log_config_append # is set. (boolean value) use_syslog = False # Syslog facility to receive log lines. This option is ignored if # log_config_append is set. (string value) #syslog_log_facility = LOG_USER # Log output to standard error. This option is ignored if log_config_append is # set. (boolean value) #use_stderr = true # Format string to use for log messages with context. (string value) #logging_context_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user_identity)s] %(instance)s%(message)s # Format string to use for log messages when context is undefined. (string # value) #logging_default_format_string = %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [-] %(instance)s%(message)s # Additional data to append to log message when logging level for the message # is DEBUG. (string value) #logging_debug_format_suffix = %(funcName)s %(pathname)s:%(lineno)d # Prefix each line of exception output with this format. (string value) #logging_exception_prefix = %(asctime)s.%(msecs)03d %(process)d ERROR %(name)s %(instance)s # Defines the format string for %(user_identity)s that is used in # logging_context_format_string. (string value) #logging_user_identity_format = %(user)s %(tenant)s %(domain)s %(user_domain)s %(project_domain)s # List of package logging levels in logger=LEVEL pairs. This option is ignored # if log_config_append is set. (list value) #default_log_levels = amqp=WARN,amqplib=WARN,boto=WARN,qpid=WARN,sqlalchemy=WARN,suds=INFO,oslo.messaging=INFO,iso8601=WARN,requests.packages.urllib3.connectionpool=WARN,urllib3.connectionpool=WARN,websocket=WARN,requests.packages.urllib3.util.retry=WARN,urllib3.util.retry=WARN,keystonemiddleware=WARN,routes.middleware=WARN,stevedore=WARN,taskflow=WARN,keystoneauth=WARN,oslo.cache=INFO,dogpile.core.dogpile=INFO # Enables or disables publication of error events. (boolean value) #publish_errors = false # The format for an instance that is passed with the log message. (string # value) #instance_format = "[instance: %(uuid)s] " # The format for an instance UUID that is passed with the log message. (string # value) #instance_uuid_format = "[instance: %(uuid)s] " # Enables or disables fatal status of deprecations. (boolean value) #fatal_deprecations = false # # From oslo.messaging # # Size of RPC connection pool. (integer value) # Deprecated group/name - [DEFAULT]/rpc_conn_pool_size #rpc_conn_pool_size = 30 # The pool size limit for connections expiration policy (integer value) #conn_pool_min_size = 2 # The time-to-live in sec of idle connections in the pool (integer value) #conn_pool_ttl = 1200 # ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. # The "host" option should point or resolve to this address. (string value) # Deprecated group/name - [DEFAULT]/rpc_zmq_bind_address #rpc_zmq_bind_address = * # MatchMaker driver. (string value) # Allowed values: redis, dummy # Deprecated group/name - [DEFAULT]/rpc_zmq_matchmaker #rpc_zmq_matchmaker = redis # Number of ZeroMQ contexts, defaults to 1. (integer value) # Deprecated group/name - [DEFAULT]/rpc_zmq_contexts #rpc_zmq_contexts = 1 # Maximum number of ingress messages to locally buffer per topic. Default is # unlimited. (integer value) # Deprecated group/name - [DEFAULT]/rpc_zmq_topic_backlog #rpc_zmq_topic_backlog = <None> # Directory for holding IPC sockets. (string value) # Deprecated group/name - [DEFAULT]/rpc_zmq_ipc_dir #rpc_zmq_ipc_dir = /var/run/openstack # Name of this node. Must be a valid hostname, FQDN, or IP address. Must match # "host" option, if running Nova. (string value) # Deprecated group/name - [DEFAULT]/rpc_zmq_host #rpc_zmq_host = localhost # Seconds to wait before a cast expires (TTL). The default value of -1 # specifies an infinite linger period. The value of 0 specifies no linger # period. Pending messages shall be discarded immediately when the socket is # closed. Only supported by impl_zmq. (integer value) # Deprecated group/name - [DEFAULT]/rpc_cast_timeout #rpc_cast_timeout = -1 # The default number of seconds that poll should wait. Poll raises timeout # exception when timeout expired. (integer value) # Deprecated group/name - [DEFAULT]/rpc_poll_timeout #rpc_poll_timeout = 1 # Expiration timeout in seconds of a name service record about existing target # ( < 0 means no timeout). (integer value) # Deprecated group/name - [DEFAULT]/zmq_target_expire #zmq_target_expire = 300 # Update period in seconds of a name service record about existing target. # (integer value) # Deprecated group/name - [DEFAULT]/zmq_target_update #zmq_target_update = 180 # Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean # value) # Deprecated group/name - [DEFAULT]/use_pub_sub #use_pub_sub = true # Use ROUTER remote proxy. (boolean value) # Deprecated group/name - [DEFAULT]/use_router_proxy #use_router_proxy = true # Minimal port number for random ports range. (port value) # Minimum value: 0 # Maximum value: 65535 # Deprecated group/name - [DEFAULT]/rpc_zmq_min_port #rpc_zmq_min_port = 49153 # Maximal port number for random ports range. (integer value) # Minimum value: 1 # Maximum value: 65536 # Deprecated group/name - [DEFAULT]/rpc_zmq_max_port #rpc_zmq_max_port = 65536 # Number of retries to find free port number before fail with ZMQBindError. # (integer value) # Deprecated group/name - [DEFAULT]/rpc_zmq_bind_port_retries #rpc_zmq_bind_port_retries = 100 # Default serialization mechanism for serializing/deserializing # outgoing/incoming messages (string value) # Allowed values: json, msgpack # Deprecated group/name - [DEFAULT]/rpc_zmq_serialization #rpc_zmq_serialization = json # This option configures round-robin mode in zmq socket. True means not keeping # a queue when server side disconnects. False means to keep queue and messages # even if server is disconnected, when the server appears we send all # accumulated messages to it. (boolean value) #zmq_immediate = false # Size of executor thread pool. (integer value) # Deprecated group/name - [DEFAULT]/rpc_thread_pool_size #executor_thread_pool_size = 64 # Seconds to wait for a response from a call. (integer value) #rpc_response_timeout = 60 # A URL representing the messaging driver to use and its full configuration. # (string value) transport_url = rabbit://{{ heat_rabbit_hosts }}// # The default exchange under which topics are scoped. May be overridden by an # exchange name specified in the transport_url option. (string value) #control_exchange = openstack # # From oslo.service.periodic_task # # Some periodic tasks can be run in a separate process. Should we run them # here? (boolean value) #run_external_periodic_tasks = true # # From oslo.service.service # # Enable eventlet backdoor. Acceptable values are 0, <port>, and # <start>:<end>, where 0 results in listening on a random tcp port number; # <port> results in listening on the specified port number (and not enabling # backdoor if that port is in use); and <start>:<end> results in listening on # the smallest unused port number within the specified range of port numbers. # The chosen port is displayed in the service's log file. (string value) #backdoor_port = <None> # Enable eventlet backdoor, using the provided path as a unix socket that can # receive connections. This option is mutually exclusive with 'backdoor_port' # in that only one should be provided. If both are provided then the existence # of this option overrides the usage of that option. (string value) #backdoor_socket = <None> # Enables or disables logging values of all registered options when starting a # service (at DEBUG level). (boolean value) #log_options = true # Specify a timeout after which a gracefully shutdown server will exit. Zero # value means endless wait. (integer value) #graceful_shutdown_timeout = 60 notification_topic = {{ heat_notification_topic }} [auth_password] # # From heat.common.config # # Allow orchestration of multiple clouds. (boolean value) #multi_cloud = false # Allowed keystone endpoints for auth_uri when multi_cloud is enabled. At least # one endpoint needs to be specified. (list value) #allowed_auth_uris = [clients] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) endpoint_type = {{ heat_endpoint_type }} # Optional CA cert file to use in SSL connections. (string value) ca_file = {{ heat_ca_file }} # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = false [clients_aodh] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_barbican] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_ceilometer] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_cinder] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> # Allow client's debug log output. (boolean value) #http_log_debug = false [clients_designate] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_glance] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_heat] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) endpoint_type = publicURL # Optional CA cert file to use in SSL connections. (string value) ca_file = {{ heat_ca_file }} # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> # Optional heat url in format like http://0.0.0.0:8004/v1/%(tenant_id)s. # (string value) #url = [clients_keystone] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> # Unversioned keystone url in format like http://0.0.0.0:5000. (string value) #auth_uri = [clients_magnum] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_manila] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_mistral] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_monasca] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_neutron] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_nova] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> # Allow client's debug log output. (boolean value) #http_log_debug = false [clients_sahara] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_senlin] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_swift] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_trove] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [clients_zaqar] # # From heat.common.config # # Type of endpoint in Identity service catalog to use for communication with # the OpenStack service. (string value) #endpoint_type = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = <None> [cors] # # From oslo.middleware # # Indicate whether this resource may be shared with the domain received in the # requests "origin" header. Format: "<protocol>://<host>[:<port>]", no trailing # slash. Example: https://horizon.example.com (list value) #allowed_origin = <None> # Indicate that the actual request can include user credentials (boolean value) #allow_credentials = true # Indicate which headers are safe to expose to the API. Defaults to HTTP Simple # Headers. (list value) #expose_headers = X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID # Maximum cache age of CORS preflight requests. (integer value) #max_age = 3600 # Indicate which methods can be used during the actual request. (list value) #allow_methods = GET,PUT,POST,DELETE,PATCH # Indicate which header field names may be used during the actual request. # (list value) #allow_headers = X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID [cors.subdomain] # # From oslo.middleware # # Indicate whether this resource may be shared with the domain received in the # requests "origin" header. Format: "<protocol>://<host>[:<port>]", no trailing # slash. Example: https://horizon.example.com (list value) #allowed_origin = <None> # Indicate that the actual request can include user credentials (boolean value) #allow_credentials = true # Indicate which headers are safe to expose to the API. Defaults to HTTP Simple # Headers. (list value) #expose_headers = X-Auth-Token,X-Subject-Token,X-Service-Token,X-OpenStack-Request-ID # Maximum cache age of CORS preflight requests. (integer value) #max_age = 3600 # Indicate which methods can be used during the actual request. (list value) #allow_methods = GET,PUT,POST,DELETE,PATCH # Indicate which header field names may be used during the actual request. # (list value) #allow_headers = X-Auth-Token,X-Identity-Status,X-Roles,X-Service-Catalog,X-User-Id,X-Tenant-Id,X-OpenStack-Request-ID [database] # # From oslo.db # # If True, SQLite uses synchronous mode. (boolean value) # Deprecated group/name - [DEFAULT]/sqlite_synchronous #sqlite_synchronous = true # The back end to use for the database. (string value) # Deprecated group/name - [DEFAULT]/db_backend #backend = sqlalchemy # The SQLAlchemy connection string to use to connect to the database. (string # value) # Deprecated group/name - [DEFAULT]/sql_connection # Deprecated group/name - [DATABASE]/sql_connection # Deprecated group/name - [sql]/connection connection = {{ heat_database_connection }} # The SQLAlchemy connection string to use to connect to the slave database. # (string value) #slave_connection = <None> # The SQL mode to be used for MySQL sessions. This option, including the # default, overrides any server-set SQL mode. To use whatever SQL mode is set # by the server configuration, set this to no value. Example: mysql_sql_mode= # (string value) #mysql_sql_mode = TRADITIONAL # Timeout before idle SQL connections are reaped. (integer value) # Deprecated group/name - [DEFAULT]/sql_idle_timeout # Deprecated group/name - [DATABASE]/sql_idle_timeout # Deprecated group/name - [sql]/idle_timeout #idle_timeout = 3600 # Minimum number of SQL connections to keep open in a pool. (integer value) # Deprecated group/name - [DEFAULT]/sql_min_pool_size # Deprecated group/name - [DATABASE]/sql_min_pool_size #min_pool_size = 1 # Maximum number of SQL connections to keep open in a pool. Setting a value of # 0 indicates no limit. (integer value) # Deprecated group/name - [DEFAULT]/sql_max_pool_size # Deprecated group/name - [DATABASE]/sql_max_pool_size #max_pool_size = 5 # Maximum number of database connection retries during startup. Set to -1 to # specify an infinite retry count. (integer value) # Deprecated group/name - [DEFAULT]/sql_max_retries # Deprecated group/name - [DATABASE]/sql_max_retries #max_retries = 10 # Interval between retries of opening a SQL connection. (integer value) # Deprecated group/name - [DEFAULT]/sql_retry_interval # Deprecated group/name - [DATABASE]/reconnect_interval #retry_interval = 10 # If set, use this value for max_overflow with SQLAlchemy. (integer value) # Deprecated group/name - [DEFAULT]/sql_max_overflow # Deprecated group/name - [DATABASE]/sqlalchemy_max_overflow #max_overflow = 50 # Verbosity of SQL debugging information: 0=None, 100=Everything. (integer # value) # Minimum value: 0 # Maximum value: 100 # Deprecated group/name - [DEFAULT]/sql_connection_debug #connection_debug = 0 # Add Python stack traces to SQL as comment strings. (boolean value) # Deprecated group/name - [DEFAULT]/sql_connection_trace #connection_trace = false # If set, use this value for pool_timeout with SQLAlchemy. (integer value) # Deprecated group/name - [DATABASE]/sqlalchemy_pool_timeout #pool_timeout = <None> # Enable the experimental use of database reconnect on connection lost. # (boolean value) #use_db_reconnect = false # Seconds between retries of a database transaction. (integer value) #db_retry_interval = 1 # If True, increases the interval between retries of a database operation up to # db_max_retry_interval. (boolean value) #db_inc_retry_interval = true # If db_inc_retry_interval is set, the maximum seconds between retries of a # database operation. (integer value) #db_max_retry_interval = 10 # Maximum retries in case of connection error or deadlock error before error is # raised. Set to -1 to specify an infinite retry count. (integer value) #db_max_retries = 20 [ec2authtoken] # # From heat.api.aws.ec2token # # Authentication Endpoint URI. (string value) auth_uri = {{ heat_ec2_auth_uri }} # Allow orchestration of multiple clouds. (boolean value) #multi_cloud = false # Allowed keystone endpoints for auth_uri when multi_cloud is enabled. At least # one endpoint needs to be specified. (list value) #allowed_auth_uris = # Optional PEM-formatted certificate chain file. (string value) #cert_file = <None> # Optional PEM-formatted file that contains the private key. (string value) #key_file = <None> # Optional CA cert file to use in SSL connections. (string value) #ca_file = <None> # If set, then the server's certificate will not be verified. (boolean value) #insecure = false [eventlet_opts] # # From heat.common.wsgi # # If False, closes the client socket connection explicitly. (boolean value) #wsgi_keep_alive = true # Timeout for client connections' socket operations. If an incoming connection # is idle for this number of seconds it will be closed. A value of '0' means # wait forever. (integer value) #client_socket_timeout = 900 [heat_api] # # From heat.common.wsgi # # Address to bind the server. Useful when selecting a particular network # interface. (IP address value) # Deprecated group/name - [DEFAULT]/bind_host bind_host = {{ heat_api_bind_host }} # The port on which the server will listen. (port value) # Minimum value: 0 # Maximum value: 65535 # Deprecated group/name - [DEFAULT]/bind_port bind_port = 8004 # Number of backlog requests to configure the socket with. (integer value) # Deprecated group/name - [DEFAULT]/backlog #backlog = 4096 # Location of the SSL certificate file to use for SSL mode. (string value) # Deprecated group/name - [DEFAULT]/cert_file #cert_file = <None> # Location of the SSL key file to use for enabling SSL mode. (string value) # Deprecated group/name - [DEFAULT]/key_file #key_file = <None> # Number of workers for Heat service. Default value 0 means, that service will # start number of workers equal number of cores on server. (integer value) # Deprecated group/name - [DEFAULT]/workers workers = {{ heat_api_workers }} # Maximum line size of message headers to be accepted. max_header_line may need # to be increased when using large tokens (typically those generated by the # Keystone v3 API with big service catalogs). (integer value) #max_header_line = 16384 # The value for the socket option TCP_KEEPIDLE. This is the time in seconds # that the connection must be idle before TCP starts sending keepalive probes. # (integer value) #tcp_keepidle = 600 [heat_api_cfn] # # From heat.common.wsgi # # Address to bind the server. Useful when selecting a particular network # interface. (IP address value) # Deprecated group/name - [DEFAULT]/bind_host bind_host = {{ heat_api_cfn_bind_host }} # The port on which the server will listen. (port value) # Minimum value: 0 # Maximum value: 65535 # Deprecated group/name - [DEFAULT]/bind_port bind_port = 8000 # Number of backlog requests to configure the socket with. (integer value) # Deprecated group/name - [DEFAULT]/backlog #backlog = 4096 # Location of the SSL certificate file to use for SSL mode. (string value) # Deprecated group/name - [DEFAULT]/cert_file #cert_file = <None> # Location of the SSL key file to use for enabling SSL mode. (string value) # Deprecated group/name - [DEFAULT]/key_file #key_file = <None> # Number of workers for Heat service. (integer value) # Deprecated group/name - [DEFAULT]/workers #workers = 1 # Maximum line size of message headers to be accepted. max_header_line may need # to be increased when using large tokens (typically those generated by the # Keystone v3 API with big service catalogs). (integer value) #max_header_line = 16384 # The value for the socket option TCP_KEEPIDLE. This is the time in seconds # that the connection must be idle before TCP starts sending keepalive probes. # (integer value) #tcp_keepidle = 600 [heat_api_cloudwatch] # # From heat.common.wsgi # # Address to bind the server. Useful when selecting a particular network # interface. (IP address value) # Deprecated group/name - [DEFAULT]/bind_host bind_host = {{ heat_api_cloudwatch_bind_host }} # The port on which the server will listen. (port value) # Minimum value: 0 # Maximum value: 65535 # Deprecated group/name - [DEFAULT]/bind_port bind_port = 8003 # Number of backlog requests to configure the socket with. (integer value) # Deprecated group/name - [DEFAULT]/backlog #backlog = 4096 # Location of the SSL certificate file to use for SSL mode. (string value) # Deprecated group/name - [DEFAULT]/cert_file #cert_file = <None> # Location of the SSL key file to use for enabling SSL mode. (string value) # Deprecated group/name - [DEFAULT]/key_file #key_file = <None> # Number of workers for Heat service. (integer value) # Deprecated group/name - [DEFAULT]/workers #workers = 1 # Maximum line size of message headers to be accepted. max_header_line may need # to be increased when using large tokens (typically those generated by the # Keystone v3 API with big service catalogs.) (integer value) #max_header_line = 16384 # The value for the socket option TCP_KEEPIDLE. This is the time in seconds # that the connection must be idle before TCP starts sending keepalive probes. # (integer value) #tcp_keepidle = 600 [keystone_authtoken] # # From keystonemiddleware.auth_token # # Complete "public" Identity API endpoint. This endpoint should not be an # "admin" endpoint, as it should be accessible by all end users. # Unauthenticated clients are redirected to this endpoint to authenticate. # Although this endpoint should ideally be unversioned, client support in the # wild varies. If you're using a versioned v2 endpoint here, then this should # *not* be the same endpoint the service user utilizes for validating tokens, # because normal end users may not be able to reach that endpoint. (string # value) www_authenticate_uri = {{ heat_keystone_auth_uri }} auth_uri = {{ heat_keystone_auth_uri }} # API version of the admin Identity API endpoint. (string value) #auth_version = <None> # Do not handle authorization requests within the middleware, but delegate the # authorization decision to downstream WSGI components. (boolean value) #delay_auth_decision = false # Request timeout value for communicating with Identity API server. (integer # value) #http_connect_timeout = <None> # How many times are we trying to reconnect when communicating with Identity # API Server. (integer value) #http_request_max_retries = 3 # Request environment key where the Swift cache object is stored. When # auth_token middleware is deployed with a Swift cache, use this option to have # the middleware share a caching backend with swift. Otherwise, use the # ``memcached_servers`` option instead. (string value) #cache = <None> # Required if identity server requires client certificate (string value) #certfile = <None> # Required if identity server requires client certificate (string value) #keyfile = <None> # A PEM encoded Certificate Authority to use when verifying HTTPs connections. # Defaults to system CAs. (string value) cafile = {{ heat_ca_file }} # Verify HTTPS connections. (boolean value) #insecure = false # The region in which the identity server can be found. (string value) #region_name = <None> # Directory used to cache files related to PKI tokens. (string value) #signing_dir = <None> # Optionally specify a list of memcached server(s) to use for caching. If left # undefined, tokens will instead be cached in-process. (list value) # Deprecated group/name - [keystone_authtoken]/memcache_servers memcached_servers = {{ memcached_servers }} # In order to prevent excessive effort spent validating tokens, the middleware # caches previously-seen tokens for a configurable duration (in seconds). Set # to -1 to disable caching completely. (integer value) #token_cache_time = 300 # Determines the frequency at which the list of revoked tokens is retrieved # from the Identity service (in seconds). A high number of revocation events # combined with a low cache duration may significantly reduce performance. Only # valid for PKI tokens. (integer value) #revocation_cache_time = 10 # (Optional) If defined, indicate whether token data should be authenticated or # authenticated and encrypted. If MAC, token data is authenticated (with HMAC) # in the cache. If ENCRYPT, token data is encrypted and authenticated in the # cache. If the value is not one of these options or empty, auth_token will # raise an exception on initialization. (string value) # Allowed values: None, MAC, ENCRYPT memcache_security_strategy = ENCRYPT # (Optional, mandatory if memcache_security_strategy is defined) This string is # used for key derivation. (string value) memcache_secret_key = {{ memcache_secret_key }} # (Optional) Number of seconds memcached server is considered dead before it is # tried again. (integer value) #memcache_pool_dead_retry = 300 # (Optional) Maximum total number of open connections to every memcached # server. (integer value) #memcache_pool_maxsize = 10 # (Optional) Socket timeout in seconds for communicating with a memcached # server. (integer value) memcache_pool_socket_timeout = 1 # (Optional) Number of seconds a connection to memcached is held unused in the # pool before it is closed. (integer value) #memcache_pool_unused_timeout = 60 # (Optional) Number of seconds that an operation will wait to get a memcached # client connection from the pool. (integer value) #memcache_pool_conn_get_timeout = 10 # (Optional) Use the advanced (eventlet safe) memcached client pool. The # advanced pool will only work under python 2.x. (boolean value) #memcache_use_advanced_pool = false # (Optional) Indicate whether to set the X-Service-Catalog header. If False, # middleware will not ask for service catalog on token validation and will not # set the X-Service-Catalog header. (boolean value) #include_service_catalog = true # Used to control the use and type of token binding. Can be set to: "disabled" # to not check token binding. "permissive" (default) to validate binding # information if the bind type is of a form known to the server and ignore it # if not. "strict" like "permissive" but if the bind type is unknown the token # will be rejected. "required" any form of token binding is needed to be # allowed. Finally the name of a binding method that must be present in tokens. # (string value) #enforce_token_bind = permissive # If true, the revocation list will be checked for cached tokens. This requires # that PKI tokens are configured on the identity server. (boolean value) #check_revocations_for_cached = false # Hash algorithms to use for hashing PKI tokens. This may be a single algorithm # or multiple. The algorithms are those supported by Python standard # hashlib.new(). The hashes will be tried in the order given, so put the # preferred one first for performance. The result of the first hash will be # stored in the cache. This will typically be set to multiple values only while # migrating from a less secure algorithm to a more secure one. Once all the old # tokens are expired this option should be set to a single value for better # performance. (list value) #hash_algorithms = md5 # Authentication type to load (string value) # Deprecated group/name - [keystone_authtoken]/auth_plugin auth_type = password # Config Section from which to load plugin specific options (string value) #auth_section = <None> # A choice of roles that must be present in a service token. Service tokens are # allowed to request that an expired token can be used and so this check should # tightly control that only actual services should be sending this token. Roles # here are applied as an ANY check so any role in this list must be present. # For backwards compatibility reasons this currently only affects the # allow_expired check. service_token_roles = admin # For backwards compatibility reasons we must let valid service tokens pass # that don't pass the service_token_roles check as valid. Setting this true # will become the default in a future release and should be enabled if # possible. service_token_roles_required = True # password auth plugin options auth_url = {{ heat_keystone_auth_url }} username = {{ heat_keystone_admin_user }} password = {{ heat_keystone_admin_password }} project_name = {{ heat_keystone_admin_project_name }} user_domain_name = {{ heat_keystone_admin_user_domain_id }} project_domain_name = {{ heat_keystone_admin_user_domain_id }} [matchmaker_redis] # # From oslo.messaging # # Redis replica set name. (string value) #sentinel_group_name = oslo-messaging-zeromq # Time in ms to wait between connection attempts. (integer value) #wait_timeout = 2000 # Time in ms to wait before the transaction is killed. (integer value) #check_timeout = 20000 # Timeout in ms on blocking socket operations (integer value) #socket_timeout = 10000 [oslo_messaging_amqp] # # From oslo.messaging # # Name for the AMQP container. must be globally unique. Defaults to a generated # UUID (string value) # Deprecated group/name - [amqp1]/container_name #container_name = <None> # Timeout for inactive connections (in seconds) (integer value) # Deprecated group/name - [amqp1]/idle_timeout #idle_timeout = 0 # Debug: dump AMQP frames to stdout (boolean value) # Deprecated group/name - [amqp1]/trace #trace = false # CA certificate PEM file to verify server certificate (string value) # Deprecated group/name - [amqp1]/ssl_ca_file #ssl_ca_file = # Identifying certificate PEM file to present to clients (string value) # Deprecated group/name - [amqp1]/ssl_cert_file #ssl_cert_file = # Private key PEM file used to sign cert_file certificate (string value) # Deprecated group/name - [amqp1]/ssl_key_file #ssl_key_file = # Password for decrypting ssl_key_file (if encrypted) (string value) # Deprecated group/name - [amqp1]/ssl_key_password #ssl_key_password = <None> # Accept clients using either SSL or plain TCP (boolean value) # Deprecated group/name - [amqp1]/allow_insecure_clients #allow_insecure_clients = false # Space separated list of acceptable SASL mechanisms (string value) # Deprecated group/name - [amqp1]/sasl_mechanisms #sasl_mechanisms = # Path to directory that contains the SASL configuration (string value) # Deprecated group/name - [amqp1]/sasl_config_dir #sasl_config_dir = # Name of configuration file (without .conf suffix) (string value) # Deprecated group/name - [amqp1]/sasl_config_name #sasl_config_name = # User name for message broker authentication (string value) # Deprecated group/name - [amqp1]/username #username = # Password for message broker authentication (string value) # Deprecated group/name - [amqp1]/password #password = # Seconds to pause before attempting to re-connect. (integer value) # Minimum value: 1 #connection_retry_interval = 1 # Increase the connection_retry_interval by this many seconds after each # unsuccessful failover attempt. (integer value) # Minimum value: 0 #connection_retry_backoff = 2 # Maximum limit for connection_retry_interval + connection_retry_backoff # (integer value) # Minimum value: 1 #connection_retry_interval_max = 30 # Time to pause between re-connecting an AMQP 1.0 link that failed due to a # recoverable error. (integer value) # Minimum value: 1 #link_retry_delay = 10 # The deadline for an rpc reply message delivery. Only used when caller does # not provide a timeout expiry. (integer value) # Minimum value: 5 #default_reply_timeout = 30 # The deadline for an rpc cast or call message delivery. Only used when caller # does not provide a timeout expiry. (integer value) # Minimum value: 5 #default_send_timeout = 30 # The deadline for a sent notification message delivery. Only used when caller # does not provide a timeout expiry. (integer value) # Minimum value: 5 #default_notify_timeout = 30 # Indicates the addressing mode used by the driver. # Permitted values: # 'legacy' - use legacy non-routable addressing # 'routable' - use routable addresses # 'dynamic' - use legacy addresses if the message bus does not support routing # otherwise use routable addressing (string value) #addressing_mode = dynamic # address prefix used when sending to a specific server (string value) # Deprecated group/name - [amqp1]/server_request_prefix #server_request_prefix = exclusive # address prefix used when broadcasting to all servers (string value) # Deprecated group/name - [amqp1]/broadcast_prefix #broadcast_prefix = broadcast # address prefix when sending to any server in group (string value) # Deprecated group/name - [amqp1]/group_request_prefix #group_request_prefix = unicast # Address prefix for all generated RPC addresses (string value) #rpc_address_prefix = openstack.org/om/rpc # Address prefix for all generated Notification addresses (string value) #notify_address_prefix = openstack.org/om/notify # Appended to the address prefix when sending a fanout message. Used by the # message bus to identify fanout messages. (string value) #multicast_address = multicast # Appended to the address prefix when sending to a particular RPC/Notification # server. Used by the message bus to identify messages sent to a single # destination. (string value) #unicast_address = unicast # Appended to the address prefix when sending to a group of consumers. Used by # the message bus to identify messages that should be delivered in a round- # robin fashion across consumers. (string value) #anycast_address = anycast # Exchange name used in notification addresses. # Exchange name resolution precedence: # Target.exchange if set # else default_notification_exchange if set # else control_exchange if set # else 'notify' (string value) #default_notification_exchange = <None> # Exchange name used in RPC addresses. # Exchange name resolution precedence: # Target.exchange if set # else default_rpc_exchange if set # else control_exchange if set # else 'rpc' (string value) #default_rpc_exchange = <None> # Window size for incoming RPC Reply messages. (integer value) # Minimum value: 1 #reply_link_credit = 200 # Window size for incoming RPC Request messages (integer value) # Minimum value: 1 #rpc_server_credit = 100 # Window size for incoming Notification messages (integer value) # Minimum value: 1 #notify_server_credit = 100 [oslo_messaging_notifications] # # From oslo.messaging # # The Drivers(s) to handle sending notifications. Possible values are # messaging, messagingv2, routing, log, test, noop (multi valued) # Deprecated group/name - [DEFAULT]/notification_driver driver = {{ heat_notification_driver }} # A URL representing the messaging driver to use for notifications. If not set, # we fall back to the same configuration used for RPC. (string value) # Deprecated group/name - [DEFAULT]/notification_transport_url #transport_url = <None> # AMQP topic used for OpenStack notifications. (list value) # Deprecated group/name - [rpc_notifier2]/topics # Deprecated group/name - [DEFAULT]/notification_topics #topics = notifications [oslo_messaging_rabbit] # # From oslo.messaging # # Use durable queues in AMQP. (boolean value) # Deprecated group/name - [DEFAULT]/amqp_durable_queues # Deprecated group/name - [DEFAULT]/rabbit_durable_queues #amqp_durable_queues = false # Auto-delete queues in AMQP. (boolean value) # Deprecated group/name - [DEFAULT]/amqp_auto_delete #amqp_auto_delete = false # SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and # SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some # distributions. (string value) # Deprecated group/name - [DEFAULT]/kombu_ssl_version #kombu_ssl_version = # SSL key file (valid only if SSL enabled). (string value) # Deprecated group/name - [DEFAULT]/kombu_ssl_keyfile #kombu_ssl_keyfile = # SSL cert file (valid only if SSL enabled). (string value) # Deprecated group/name - [DEFAULT]/kombu_ssl_certfile #kombu_ssl_certfile = # SSL certification authority file (valid only if SSL enabled). (string value) # Deprecated group/name - [DEFAULT]/kombu_ssl_ca_certs #kombu_ssl_ca_certs = # How long to wait before reconnecting in response to an AMQP consumer cancel # notification. (floating point value) # Deprecated group/name - [DEFAULT]/kombu_reconnect_delay #kombu_reconnect_delay = 1.0 # EXPERIMENTAL: Possible values are: gzip, bz2. If not set compression will not # be used. This option may not be available in future versions. (string value) #kombu_compression = <None> # How long to wait a missing client before abandoning to send it its replies. # This value should not be longer than rpc_response_timeout. (integer value) # Deprecated group/name - [oslo_messaging_rabbit]/kombu_reconnect_timeout #kombu_missing_consumer_retry_timeout = 60 # Determines how the next RabbitMQ node is chosen in case the one we are # currently connected to becomes unavailable. Takes effect only if more than # one RabbitMQ node is provided in config. (string value) # Allowed values: round-robin, shuffle #kombu_failover_strategy = round-robin # Connect over SSL for RabbitMQ. (boolean value) # Deprecated group/name - [DEFAULT]/rabbit_use_ssl #rabbit_use_ssl = <None> # The RabbitMQ login method. (string value) # Deprecated group/name - [DEFAULT]/rabbit_login_method #rabbit_login_method = AMQPLAIN # How frequently to retry connecting with RabbitMQ. (integer value) #rabbit_retry_interval = 1 # How long to backoff for between retries when connecting to RabbitMQ. (integer # value) # Deprecated group/name - [DEFAULT]/rabbit_retry_backoff #rabbit_retry_backoff = 2 # Maximum interval of RabbitMQ connection retries. Default is 30 seconds. # (integer value) #rabbit_interval_max = 30 # Try to use HA queues in RabbitMQ (x-ha-policy: all). If you change this # option, you must wipe the RabbitMQ database. In RabbitMQ 3.0, queue mirroring # is no longer controlled by the x-ha-policy argument when declaring a queue. # If you just want to make sure that all queues (except those with auto- # generated names) are mirrored across all nodes, run: "rabbitmqctl set_policy # HA '^(?!amq\.).*' '{"ha-mode": "all"}' " (boolean value) # Deprecated group/name - [DEFAULT]/rabbit_ha_queues #rabbit_ha_queues = false # Positive integer representing duration in seconds for queue TTL (x-expires). # Queues which are unused for the duration of the TTL are automatically # deleted. The parameter affects only reply and fanout queues. (integer value) # Minimum value: 1 #rabbit_transient_queues_ttl = 1800 # Specifies the number of messages to prefetch. Setting to zero allows # unlimited messages. (integer value) #rabbit_qos_prefetch_count = 0 # Number of seconds after which the Rabbit broker is considered down if # heartbeat's keep-alive fails (0 disable the heartbeat). EXPERIMENTAL (integer # value) #heartbeat_timeout_threshold = 60 # How often times during the heartbeat_timeout_threshold we check the # heartbeat. (integer value) #heartbeat_rate = 2 # Deprecated, use rpc_backend=kombu+memory or rpc_backend=fake (boolean value) # Deprecated group/name - [DEFAULT]/fake_rabbit #fake_rabbit = false # Maximum number of channels to allow (integer value) #channel_max = <None> # The maximum byte size for an AMQP frame (integer value) #frame_max = <None> # How often to send heartbeats for consumer's connections (integer value) #heartbeat_interval = 3 # Enable SSL (boolean value) ssl = {{ heat_rabbit_use_ssl }} # Arguments passed to ssl.wrap_socket (dict value) #ssl_options = <None> # Set socket timeout in seconds for connection's socket (floating point value) #socket_timeout = 0.25 # Set TCP_USER_TIMEOUT in seconds for connection's socket (floating point # value) #tcp_user_timeout = 0.25 # Set delay for reconnection to some host which has connection error (floating # point value) #host_connection_reconnect_delay = 0.25 # Connection factory implementation (string value) # Allowed values: new, single, read_write #connection_factory = single # Maximum number of connections to keep queued. (integer value) #pool_max_size = 30 # Maximum number of connections to create above `pool_max_size`. (integer # value) #pool_max_overflow = 0 # Default number of seconds to wait for a connections to available (integer # value) #pool_timeout = 30 # Lifetime of a connection (since creation) in seconds or None for no # recycling. Expired connections are closed on acquire. (integer value) #pool_recycle = 600 # Threshold at which inactive (since release) connections are considered stale # in seconds or None for no staleness. Stale connections are closed on acquire. # (integer value) #pool_stale = 60 # Persist notification messages. (boolean value) #notification_persistence = false # Exchange name for sending notifications (string value) #default_notification_exchange = ${control_exchange}_notification # Max number of not acknowledged message which RabbitMQ can send to # notification listener. (integer value) #notification_listener_prefetch_count = 100 # Reconnecting retry count in case of connectivity problem during sending # notification, -1 means infinite retry. (integer value) #default_notification_retry_attempts = -1 # Reconnecting retry delay in case of connectivity problem during sending # notification message (floating point value) #notification_retry_delay = 0.25 # Time to live for rpc queues without consumers in seconds. (integer value) #rpc_queue_expiration = 60 # Exchange name for sending RPC messages (string value) #default_rpc_exchange = ${control_exchange}_rpc # Exchange name for receiving RPC replies (string value) #rpc_reply_exchange = ${control_exchange}_rpc_reply # Max number of not acknowledged message which RabbitMQ can send to rpc # listener. (integer value) #rpc_listener_prefetch_count = 100 # Max number of not acknowledged message which RabbitMQ can send to rpc reply # listener. (integer value) #rpc_reply_listener_prefetch_count = 100 # Reconnecting retry count in case of connectivity problem during sending # reply. -1 means infinite retry during rpc_timeout (integer value) #rpc_reply_retry_attempts = -1 # Reconnecting retry delay in case of connectivity problem during sending # reply. (floating point value) #rpc_reply_retry_delay = 0.25 # Reconnecting retry count in case of connectivity problem during sending RPC # message, -1 means infinite retry. If actual retry attempts in not 0 the rpc # request could be processed more then one time (integer value) #default_rpc_retry_attempts = -1 # Reconnecting retry delay in case of connectivity problem during sending RPC # message (floating point value) #rpc_retry_delay = 0.25 [oslo_messaging_zmq] # # From oslo.messaging # # ZeroMQ bind address. Should be a wildcard (*), an ethernet interface, or IP. # The "host" option should point or resolve to this address. (string value) # Deprecated group/name - [DEFAULT]/rpc_zmq_bind_address #rpc_zmq_bind_address = * # MatchMaker driver. (string value) # Allowed values: redis, dummy # Deprecated group/name - [DEFAULT]/rpc_zmq_matchmaker #rpc_zmq_matchmaker = redis # Number of ZeroMQ contexts, defaults to 1. (integer value) # Deprecated group/name - [DEFAULT]/rpc_zmq_contexts #rpc_zmq_contexts = 1 # Maximum number of ingress messages to locally buffer per topic. Default is # unlimited. (integer value) # Deprecated group/name - [DEFAULT]/rpc_zmq_topic_backlog #rpc_zmq_topic_backlog = <None> # Directory for holding IPC sockets. (string value) # Deprecated group/name - [DEFAULT]/rpc_zmq_ipc_dir #rpc_zmq_ipc_dir = /var/run/openstack # Name of this node. Must be a valid hostname, FQDN, or IP address. Must match # "host" option, if running Nova. (string value) # Deprecated group/name - [DEFAULT]/rpc_zmq_host #rpc_zmq_host = localhost # Seconds to wait before a cast expires (TTL). The default value of -1 # specifies an infinite linger period. The value of 0 specifies no linger # period. Pending messages shall be discarded immediately when the socket is # closed. Only supported by impl_zmq. (integer value) # Deprecated group/name - [DEFAULT]/rpc_cast_timeout #rpc_cast_timeout = -1 # The default number of seconds that poll should wait. Poll raises timeout # exception when timeout expired. (integer value) # Deprecated group/name - [DEFAULT]/rpc_poll_timeout #rpc_poll_timeout = 1 # Expiration timeout in seconds of a name service record about existing target # ( < 0 means no timeout). (integer value) # Deprecated group/name - [DEFAULT]/zmq_target_expire #zmq_target_expire = 300 # Update period in seconds of a name service record about existing target. # (integer value) # Deprecated group/name - [DEFAULT]/zmq_target_update #zmq_target_update = 180 # Use PUB/SUB pattern for fanout methods. PUB/SUB always uses proxy. (boolean # value) # Deprecated group/name - [DEFAULT]/use_pub_sub #use_pub_sub = true # Use ROUTER remote proxy. (boolean value) # Deprecated group/name - [DEFAULT]/use_router_proxy #use_router_proxy = true # Minimal port number for random ports range. (port value) # Minimum value: 0 # Maximum value: 65535 # Deprecated group/name - [DEFAULT]/rpc_zmq_min_port #rpc_zmq_min_port = 49153 # Maximal port number for random ports range. (integer value) # Minimum value: 1 # Maximum value: 65536 # Deprecated group/name - [DEFAULT]/rpc_zmq_max_port #rpc_zmq_max_port = 65536 # Number of retries to find free port number before fail with ZMQBindError. # (integer value) # Deprecated group/name - [DEFAULT]/rpc_zmq_bind_port_retries #rpc_zmq_bind_port_retries = 100 # Default serialization mechanism for serializing/deserializing # outgoing/incoming messages (string value) # Allowed values: json, msgpack # Deprecated group/name - [DEFAULT]/rpc_zmq_serialization #rpc_zmq_serialization = json # This option configures round-robin mode in zmq socket. True means not keeping # a queue when server side disconnects. False means to keep queue and messages # even if server is disconnected, when the server appears we send all # accumulated messages to it. (boolean value) #zmq_immediate = false [oslo_middleware] # # From oslo.middleware # # The maximum body size for each request, in bytes. (integer value) # Deprecated group/name - [DEFAULT]/osapi_max_request_body_size # Deprecated group/name - [DEFAULT]/max_request_body_size #max_request_body_size = 114688 # Whether the application is behind a proxy or not. This determines if the # middleware should parse the headers or not. (boolean value) enable_proxy_headers_parsing = True [oslo_policy] # # From oslo.policy # # The JSON file that defines policies. (string value) # Deprecated group/name - [DEFAULT]/policy_file #policy_file = policy.json # Default rule. Enforced when a requested rule is not found. (string value) # Deprecated group/name - [DEFAULT]/policy_default_rule #policy_default_rule = default # Directories where policy configuration files are stored. They can be relative # to any directory in the search path defined by the config_dir option, or # absolute paths. The file defined by policy_file must exist for these # directories to be searched. Missing or empty directories are ignored. (multi # valued) # Deprecated group/name - [DEFAULT]/policy_dirs #policy_dirs = policy.d [paste_deploy] # # From heat.common.config # # The flavor to use. (string value) #flavor = <None> # The API paste config file to use. (string value) api_paste_config = {{ heat_api_paste_config_path }} [profiler] # # From heat.common.config # # # Enables the profiling for all services on this node. Default value is False # (fully disable the profiling feature). # # Possible values: # # * True: Enables the feature # * False: Disables the feature. The profiling cannot be started via this # project # operations. If the profiling is triggered by another project, this project # part # will be empty. # (boolean value) # Deprecated group/name - [profiler]/profiler_enabled #enabled = false # # Enables SQL requests profiling in services. Default value is False (SQL # requests won't be traced). # # Possible values: # # * True: Enables SQL requests profiling. Each SQL query will be part of the # trace and can the be analyzed by how much time was spent for that. # * False: Disables SQL requests profiling. The spent time is only shown on a # higher level of operations. Single SQL queries cannot be analyzed this # way. # (boolean value) #trace_sqlalchemy = false # # Secret key(s) to use for encrypting context data for performance profiling. # This string value should have the following format: # <key1>[,<key2>,...<keyn>], # where each key is some random string. A user who triggers the profiling via # the REST API has to set one of these keys in the headers of the REST API call # to include profiling results of this node for this particular project. # # Both "enabled" flag and "hmac_keys" config options should be set to enable # profiling. Also, to generate correct profiling information across all # services # at least one key needs to be consistent between OpenStack projects. This # ensures it can be used from client side to generate the trace, containing # information from all possible resources. (string value) #hmac_keys = SECRET_KEY # # Connection string for a notifier backend. Default value is messaging:// which # sets the notifier to oslo_messaging. # # Examples of possible values: # # * messaging://: use oslo_messaging driver for sending notifications. # (string value) #connection_string = messaging:// [revision] # # From heat.common.config # # Heat build revision. If you would prefer to manage your build revision # separately, you can move this section to a different file and add it as # another config option. (string value) #heat_revision = unknown [ssl] # # From oslo.service.sslutils # # CA certificate file to use to verify connecting clients. (string value) # Deprecated group/name - [DEFAULT]/ssl_ca_file #ca_file = <None> # Certificate file to use when starting the server securely. (string value) # Deprecated group/name - [DEFAULT]/ssl_cert_file #cert_file = <None> # Private key file to use when starting the server securely. (string value) # Deprecated group/name - [DEFAULT]/ssl_key_file #key_file = <None> # SSL version to use (valid only if SSL enabled). Valid values are TLSv1 and # SSLv23. SSLv2, SSLv3, TLSv1_1, and TLSv1_2 may be available on some # distributions. (string value) #version = <None> # Sets the list of available ciphers. value should be a string in the OpenSSL # cipher list format. (string value) #ciphers = <None> [trustee] # # From heat.common.context # # Authentication type to load (string value) # Deprecated group/name - [trustee]/auth_plugin auth_type = password # Config Section from which to load plugin specific options (string value) #auth_section = <None> # Authentication URL (string value) auth_url = {{ heat_keystone_auth_url }} # Domain ID to scope to (string value) #domain_id = <None> # Domain name to scope to (string value) #domain_name = <None> # Project ID to scope to (string value) # Deprecated group/name - [trustee]/tenant-id #project_id = <None> # Project name to scope to (string value) # Deprecated group/name - [trustee]/tenant-name #project_name = <None> # Domain ID containing project (string value) #project_domain_id = <None> # Domain name containing project (string value) #project_domain_name = <None> # Trust ID (string value) #trust_id = <None> # Optional domain ID to use with v3 and v2 parameters. It will be used for both # the user and project domain in v3 and ignored in v2 authentication. (string # value) #default_domain_id = <None> # Optional domain name to use with v3 API and v2 parameters. It will be used # for both the user and project domain in v3 and ignored in v2 authentication. # (string value) #default_domain_name = <None> # User id (string value) #user_id = <None> # Username (string value) # Deprecated group/name - [trustee]/user-name username = {{ heat_keystone_admin_user }} # User's domain id (string value) #user_domain_id = <None> # User's domain name (string value) user_domain_name = {{ heat_keystone_admin_user_domain_id }} # User's password (string value) password = {{ heat_keystone_admin_password }} [volumes] # # From heat.common.config # # Indicate if cinder-backup service is enabled. This is a temporary workaround # until cinder-backup service becomes discoverable, see LP#1334856. (boolean # value) #backups_enabled = true [audit_middleware_notifications] driver = {{ heat_audit_notification_driver }} ### End of File ### ## Do NOT put anything after this line ## 0707010000005B000041ED0000000000000000000000075DAF6C3C00000000000000000000000000000000000000000000003900000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine0707010000005C000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004200000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/defaults0707010000005D000081A40000000000000000000000015DAF6C3C000002A7000000000000000000000000000000000000004B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- heat_component: "heat-engine" 0707010000005E000041ED0000000000000000000000035DAF6C3C00000000000000000000000000000000000000000000003F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/files0707010000005F000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004900000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/files/templates07070100000060000081A40000000000000000000000015DAF6C3C000009F4000000000000000000000000000000000000006300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/files/templates/AWS_CloudWatch_Alarm.yamlHeatTemplateFormatVersion: '2012-12-12' Description: AWS::CloudWatch::Alarm using Ceilometer. Parameters: AlarmDescription: Type: String Default: An alarm EvaluationPeriods: Type: String MetricName: Type: String Namespace: Type: String Default: system/linux Period: Type: String ComparisonOperator: Type: String AllowedValues: [GreaterThanOrEqualToThreshold, GreaterThanThreshold, LessThanThreshold, LessThanOrEqualToThreshold] Statistic: Type: String AllowedValues: [SampleCount, Average, Sum, Minimum, Maximum] Threshold: Type: String Units: Type: String AllowedValues: [Seconds, Microseconds, Milliseconds, Bytes, Kilobytes, Megabytes, Gigabytes, Terabytes, Bits, Kilobits, Megabits, Gigabits, Terabits, Percent, Count, Bytes/Second, Kilobytes/Second, Megabytes/Second, Gigabytes/Second, Terabytes/Second, Bits/Second, Kilobits/Second, Megabits/Second, Gigabits/Second, Terabits/Second, Count/Second, None] Default: None AlarmActions: Type: CommaDelimitedList Default: '' OKActions: Type: CommaDelimitedList Default: '' InsufficientDataActions: Type: CommaDelimitedList Default: '' Dimensions: Type: CommaDelimitedList Default: '' Mappings: ComparisonOperatorMap: LessThanOrEqualToThreshold: {Ceilometer: le} LessThanThreshold: {Ceilometer: lt} GreaterThanThreshold: {Ceilometer: gt} GreaterThanOrEqualToThreshold: {Ceilometer: ge} StatisticMap: SampleCount: {Ceilometer: count} Average: {Ceilometer: avg} Sum: {Ceilometer: sum} Minimum: {Ceilometer: min} Maximum: {Ceilometer: max} Resources: __alarm__: Type: OS::Ceilometer::Alarm Properties: description: Ref: AlarmDescription meter_name: Ref: MetricName period: Ref: Period evaluation_periods: Ref: EvaluationPeriods repeat_actions: true threshold: Ref: Threshold alarm_actions: Ref: AlarmActions ok_actions: Ref: OKActions insufficient_data_actions: Ref: InsufficientDataActions statistic: "Fn::FindInMap": [StatisticMap, {Ref: Statistic}, Ceilometer] comparison_operator: "Fn::FindInMap": [ComparisonOperatorMap, {Ref: ComparisonOperator}, Ceilometer] matching_metadata: "Fn::MemberListToMap": [Name, Value, {Ref: Dimensions}] 07070100000061000081A40000000000000000000000015DAF6C3C00000EC6000000000000000000000000000000000000006100000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/files/templates/AWS_RDS_DBInstance.yamlHeatTemplateFormatVersion: '2012-12-12' Description: 'Builtin AWS::RDS::DBInstance' Parameters: AllocatedStorage: Type: String DBInstanceClass: Type: String DBName: Type: String DBSecurityGroups: Type: CommaDelimitedList Default: '' Engine: Type: String AllowedValues: ['MySQL'] MasterUsername: Type: String MasterUserPassword: Type: String Port: Type: String Default: '3306' KeyName: Type: String Default: '' Mappings: DBInstanceToInstance: db.m1.small: {Instance: m1.small} db.m1.large: {Instance: m1.large} db.m1.xlarge: {Instance: m1.xlarge} db.m2.xlarge: {Instance: m2.xlarge} db.m2.2xlarge: {Instance: m2.2xlarge} db.m2.4xlarge: {Instance: m2.4xlarge} Resources: ServerSecurityGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: 'Enable SSH access' SecurityGroupIngress: - IpProtocol: icmp FromPort: '-1' ToPort: '-1' CidrIp: '0.0.0.0/0' - IpProtocol: tcp FromPort: '22' ToPort : '22' CidrIp : '0.0.0.0/0' - IpProtocol: tcp FromPort: {Ref: Port} ToPort : {Ref: Port} CidrIp : '0.0.0.0/0' DatabaseInstance: Type: AWS::EC2::Instance Metadata: AWS::CloudFormation::Init: config: files: /tmp/db_setup.sql: content: 'Fn::Replace': - DBName: {Ref: DBName} MasterUserPassword: {Ref: MasterUserPassword} MasterUsername: {Ref: MasterUsername} - | CREATE DATABASE DBName; GRANT ALL PRIVILEGES ON DBName.* TO "MasterUsername"@"%" IDENTIFIED BY "MasterUserPassword"; FLUSH PRIVILEGES; EXIT mode: '000644' owner: root group: root packages: yum: mariadb: [] mariadb-server: [] services: systemd: mysqld: enabled: true ensureRunning: true Properties: ImageId: F19-x86_64-cfntools InstanceType: {'Fn::FindInMap': [DBInstanceToInstance, {Ref: DBInstanceClass}, Instance]} KeyName: {Ref: KeyName} SecurityGroups: [{"Ref" : "ServerSecurityGroup"}] UserData: Fn::Base64: Fn::Replace: - 'AWS::StackName': {Ref: 'AWS::StackName'} 'AWS::Region': {Ref: 'AWS::Region'} MasterUserPassword: {Ref: MasterUserPassword} WaitHandle: {Ref: WaitHandle} - | #!/bin/bash -v # iptables -F # Helper function function error_exit { /opt/aws/bin/cfn-signal -e 1 -r \"$1\" 'WaitHandle' exit 1 } /opt/aws/bin/cfn-init -s AWS::StackName -r DatabaseInstance --region AWS::Region || error_exit 'Failed to run cfn-init' # Setup MySQL root password and create a user mysqladmin -u root password 'MasterUserPassword' mysql -u root --password='MasterUserPassword' < /tmp/db_setup.sql || error_exit 'Failed to setup mysql' # Database setup completed, signal success /opt/aws/bin/cfn-signal -e 0 -r "MySQL server setup complete" 'WaitHandle' WaitHandle: Type: AWS::CloudFormation::WaitConditionHandle WaitCondition: Type: AWS::CloudFormation::WaitCondition DependsOn: DatabaseInstance Properties: Handle: {Ref: WaitHandle} Timeout: "600" Outputs: Endpoint.Address: {'Fn::GetAtt': [DatabaseInstance, PublicIp]} Endpoint.Port: {Ref: Port} 07070100000062000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003E00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/meta07070100000063000081A40000000000000000000000015DAF6C3C000002A7000000000000000000000000000000000000004700000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: heat-common 07070100000064000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000003F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/tasks07070100000065000081A40000000000000000000000015DAF6C3C0000099E000000000000000000000000000000000000004D00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/tasks/configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../heat-common/tasks/_set_directories.yml vars: install_package_result: "{{ ardana_notify_heat_engine_install_result }}" - include: ../../heat-common/tasks/configure.yml - include: ../../heat-common/tasks/_write_conf.yml src: "../../heat-engine/templates/engine.conf.j2" dest: "{{ heat_service_conf_dir }}/engine.conf" - name: heat-engine | configure | notify on engine.conf change command: /bin/true register: ardana_notify_heat_engine_restart_required when: write_conf_result.changed - name: heat-engine | configure | Create engine-logging.conf become: yes template: src: "engine-logging.conf.j2" dest: "{{ heat_service_conf_dir }}/engine-logging.conf" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: "0400" register: ardana_notify_heat_engine_restart_required - name: heat-engine | configure | Copy files to config dir become: yes copy: src: "{{ item }}" dest: "{{ heat_service_conf_dir }}" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: 0640 with_items: - templates register: ardana_notify_heat_engine_restart_required - name: heat-engine | configure | Template environment.d default.yaml become: yes template: src: "environment.d/default.yaml" dest: "{{ heat_environment_dir }}/default.yaml" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: 0600 register: ardana_notify_heat_engine_restart_required - name: heat-engine | configure | touch engine log files become: yes file: path: "{{ item }}" owner: "{{ heat_system_user }}" group: "{{ heat_log_group }}" mode: 0640 state: touch with_items: - "{{ heat_log_location }}/heat-engine-json.log" - "{{ heat_log_location }}/heat-engine.log" 07070100000066000081A40000000000000000000000015DAF6C3C000008B8000000000000000000000000000000000000004B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/tasks/install.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017-2018 SUSE LLC # # 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: heat-engine | install | update venv cache become: yes install_package: cache: update - name: heat-engine | install | install heat-engine service become: yes install_package: name: heat service: heat-engine state: present activate: act_off register: ardana_notify_heat_engine_install_result - name: heat-engine | install | register persistent fact of install command: /bin/true register: ardana_notify_heat_engine_restart_required when: ardana_notify_heat_engine_install_result.changed - include: ../../heat-common/tasks/_set_directories.yml vars: install_package_result: "{{ ardana_notify_heat_engine_install_result }}" - name: heat-engine | install | register heat-engine service become: yes setup_systemd: service: heat-engine cmd: heat-engine user: "{{ heat_system_user }}" group: "{{ heat_system_group }}" args: > --config-file={{ heat_service_conf_dir }}/heat.conf --config-file={{ heat_service_conf_dir }}/engine.conf - include: ../../heat-common/tasks/install.yml - name: heat-engine | install | copy docker resource plugin to plugins directory become: yes command: cp -r {{ heat_docker_plugin_source_dir }} {{ heat_plugins_dir }} when: deployer_media_legacy_layout|bool - name: heat-engine | install | set correct permission for resource plugins become: yes file: path: "{{ heat_plugins_dir }}" owner: "{{ heat_system_user }}" group: "{{ heat_system_group }}" mode: 0755 recurse: yes state: directory when: deployer_media_legacy_layout|bool 07070100000067000081A40000000000000000000000015DAF6C3C00000699000000000000000000000000000000000000004900000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/tasks/start.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-engine | start | activate the latest installed version become: yes install_package: name: heat service: heat-engine activate: act_on version: "{{ ardana_notify_heat_engine_install_result.version }}" when: ardana_notify_heat_engine_install_result is defined - name: heat-engine | start | register persistent fact of activate command: /bin/true register: ardana_notify_heat_engine_restart_required when: (ardana_notify_heat_engine_install_result is defined and ardana_notify_heat_engine_install_result.changed) - name: heat-engine | start | restart heat-engine service become: yes service: name=heat-engine state=restarted when: (ardana_notify_heat_all_restart_required is defined and ardana_notify_heat_all_restart_required.changed) or (ardana_notify_heat_engine_restart_required is defined and ardana_notify_heat_engine_restart_required.changed) - name: heat-engine | start | start heat-engine service become: yes service: name=heat-engine state=started 07070100000068000081A40000000000000000000000015DAF6C3C000002BB000000000000000000000000000000000000004A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/tasks/status.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- - include: ../../heat-common/tasks/_service_status.yml 07070100000069000081A40000000000000000000000015DAF6C3C00000363000000000000000000000000000000000000004800000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/tasks/stop.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-engine | stop | stop heat-api service become: yes service: name=heat-engine state=stopped register: stop_result failed_when: "stop_result|failed and 'service not found' not in stop_result.msg" 0707010000006A000041ED0000000000000000000000035DAF6C3C00000000000000000000000000000000000000000000004300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/templates0707010000006B000081A40000000000000000000000015DAF6C3C000006B0000000000000000000000000000000000000005A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/templates/engine-logging.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [loggers] keys: root, iso8601 [handlers] keys: watchedfile, logstash [formatters] keys: context, logstash [logger_root] qualname: root handlers: watchedfile, logstash level: NOTSET [logger_iso8601] qualname: iso8601 handlers: watchedfile level: WARNING # Writes to disk [handler_watchedfile] class: handlers.WatchedFileHandler args: ('/var/log/heat/heat-engine.log',) formatter: context level: INFO # Writes JSON to disk, beaver will ship to logstash [handler_logstash] class: handlers.WatchedFileHandler args: ('/var/log/heat/heat-engine-json.log',) formatter: logstash level: INFO # datefmt must be set otherwise you end up with too many (msecs) fields [formatter_context] class: oslo_log.formatters.ContextFormatter args: (datefmt=datefmt) format: %(asctime)s.%(msecs)03d %(process)d %(levelname)s %(name)s [%(request_id)s %(user)s %(tenant)s] %(instance)s%(message)s datefmt: %Y-%m-%d %H:%M:%S # the "format" and "datefmt" actually set the "type" and "tags" [formatter_logstash] class: logstash.LogstashFormatterVersion1 format: heat datefmt: heat-engine 0707010000006C000081A40000000000000000000000015DAF6C3C000002D1000000000000000000000000000000000000005200000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/templates/engine.conf.j2{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} [DEFAULT] log_config_append={{ heat_service_conf_dir }}/engine-logging.conf 0707010000006D000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000005100000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/templates/environment.d0707010000006E000081A40000000000000000000000015DAF6C3C0000045C000000000000000000000000000000000000005E00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-engine/templates/environment.d/default.yaml{# # # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # #} resource_registry: # allow older templates with Quantum in them. "OS::Quantum*": "OS::Neutron*" # Choose your implementation of AWS::CloudWatch::Alarm "AWS::CloudWatch::Alarm": "file://{{ heat_service_conf_dir }}/templates/AWS_CloudWatch_Alarm.yaml" #"AWS::CloudWatch::Alarm": "OS::Heat::CWLiteAlarm" "OS::Metering::Alarm": "OS::Ceilometer::Alarm" "AWS::RDS::DBInstance": "file://{{ heat_service_conf_dir }}/templates/AWS_RDS_DBInstance.yaml" 0707010000006F000041ED0000000000000000000000055DAF6C3C00000000000000000000000000000000000000000000003D00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring07070100000070000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004600000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/defaults07070100000071000081A40000000000000000000000015DAF6C3C000004C7000000000000000000000000000000000000004F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- heat_api_local_url: 'http://{{ host.bind.HEA_API.internal.ip_address }}:{{ host.bind.HEA_API.internal.port }}' heat_api_cfn_local_url: 'http://{{ host.bind.HEA_ACF.internal.ip_address }}:{{ host.bind.HEA_ACF.internal.port }}' heat_api_cloudwatch_local_url: 'http://{{ host.bind.HEA_ACW.internal.ip_address }}:{{ host.bind.HEA_ACW.internal.port }}' heat_api_internal_url: "{{ HEA_API.advertises.vips.private[0].url }}" heat_api_cfn_internal_url: "{{ HEA_ACF.advertises.vips.private[0].url }}" heat_api_cloudwatch_internal_url: "{{ HEA_ACW.advertises.vips.private[0].url }}" 07070100000072000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004200000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/meta07070100000073000081A40000000000000000000000015DAF6C3C000002D2000000000000000000000000000000000000004B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - { role: monasca-agent, run_mode: Use } - role: heat-common 07070100000074000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/tasks07070100000075000081A40000000000000000000000015DAF6C3C000005E3000000000000000000000000000000000000005A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/tasks/heat_api_cfn_check.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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 Monasca http check on heat local http url - name: heat-monitoring | heat_api_cfn_check | Setup active check against local heat-api-cfn url become: yes monasca_agent_plugin: name: "httpcheck" args: url: "{{ heat_api_cfn_local_url }}" match_pattern: ".*v1.0.*" dimensions: "service:orchestration,\ component:heat-api-cfn,\ monitored_host_type:instance" # Setup monitoring of Internal VIP - name: heat-monitoring | heat_api_cfn_check | Setup active check against heat-api-cfn Internal VIP become: yes monasca_agent_plugin: name: "httpcheck" args: url: "{{ heat_api_cfn_internal_url }}" match_pattern: ".*v1.0.*" dimensions: "service:orchestration,\ component:heat-api-cfn,\ monitored_host_type:vip,\ api_endpoint:private" 07070100000076000081A40000000000000000000000015DAF6C3C000005C3000000000000000000000000000000000000005600000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/tasks/heat_api_check.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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 Monasca http check on heat local http url - name: heat-monitoring | heat_api_check | Setup active check against local heat-api url become: yes monasca_agent_plugin: name: "httpcheck" args: url: "{{ heat_api_local_url }}" match_pattern: ".*v1.0.*" dimensions: "service:orchestration,\ component:heat-api,\ monitored_host_type:instance" # Setup monitoring of Internal VIP - name: heat-monitoring | heat_api_check | Setup active check against heat-api Internal VIP become: yes monasca_agent_plugin: name: "httpcheck" args: url: "{{ heat_api_internal_url }}" match_pattern: ".*v1.0.*" dimensions: "service:orchestration,\ component:heat-api,\ monitored_host_type:vip,\ api_endpoint:private" 07070100000077000081A40000000000000000000000015DAF6C3C0000061B000000000000000000000000000000000000006100000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/tasks/heat_api_cloudwatch_check.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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 Monasca http check on heat local http url - name: heat-monitoring | heat_api_cloudwatch_check | Setup active check against local heat-api-cloudwatch url become: yes monasca_agent_plugin: name: "httpcheck" args: url: "{{ heat_api_cloudwatch_local_url }}" match_pattern: ".*v1.0.*" dimensions: "service:orchestration,\ component:heat-api-cloudwatch,\ monitored_host_type:instance" # Setup monitoring of Internal VIP - name: heat-monitoring | heat_api_cloudwatch_check | Setup active check against heat-api-cloudwatch Internal VIP become: yes monasca_agent_plugin: name: "httpcheck" args: url: "{{ heat_api_cloudwatch_internal_url }}" match_pattern: ".*v1.0.*" dimensions: "service:orchestration,\ component:heat-api-cloudwatch,\ monitored_host_type:vip,\ api_endpoint:private" 07070100000078000081A40000000000000000000000015DAF6C3C00000337000000000000000000000000000000000000005500000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-monitoring/tasks/process_check.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-monitoring | process_check | Run monasca agent heat detection plugin become: yes monasca_agent_plugin: name: Heat args: "disable_http_check=yes" 07070100000079000041ED0000000000000000000000055DAF6C3C00000000000000000000000000000000000000000000004100000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-post-configure0707010000007A000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004A00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-post-configure/defaults0707010000007B000081A40000000000000000000000015DAF6C3C000003C9000000000000000000000000000000000000005300000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-post-configure/defaults/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- mysql: login_host: > {{ HEA_ENG | item('consumes_FND_MDB.vips.private[0].host', default=HEA_ENG.consumes_FND_MDB.vips.private[0].host) }} heat_admin_user : "{{ HEA_ENG.consumes_FND_MDB.vars.accounts.heat.username }}" heat_admin_password : "{{ HEA_ENG.consumes_FND_MDB.vars.accounts.heat.password | quote }}" 0707010000007C000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004600000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-post-configure/meta0707010000007D000081A40000000000000000000000015DAF6C3C000002A7000000000000000000000000000000000000004F00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-post-configure/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: heat-engine 0707010000007E000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004700000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-post-configure/tasks0707010000007F000081A40000000000000000000000015DAF6C3C00000373000000000000000000000000000000000000005800000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-post-configure/tasks/db_configure.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-post-configure | db_configure | heat-manage db_sync become: yes command: > {{ heat_service_bin_dir }}/heat-manage --config-file {{ heat_service_conf_dir }}/heat.conf db_sync run_once_per: verb_hosts.HEA_ENG 07070100000080000041ED0000000000000000000000055DAF6C3C00000000000000000000000000000000000000000000004000000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure07070100000081000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004900000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/defaults07070100000082000081A40000000000000000000000015DAF6C3C00000488000000000000000000000000000000000000005200000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/defaults/main.yml# # (c) Copyright 2015-2016 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- keystone: service_tenant : "{{ KEY_API.vars.keystone_service_tenant }}" heat_admin_user : "{{ HEA_API.consumes_KEY_API.vars.keystone_heat_user }}" heat_admin_password : "{{ HEA_API.consumes_KEY_API.vars.keystone_heat_password | quote }}" role: "{{ KEY_API.vars.keystone_admin_role }}" default_domain : "Default" endpoint: "{{ HEA_API.consumes_KEY_API.vips.private[0].url }}/v3" admin_user: "{{ KEY_API.vars.keystone_admin_user }}" admin_password: "{{ KEY_API.vars.keystone_admin_pwd | quote }}" 07070100000083000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004500000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/meta07070100000084000081A40000000000000000000000015DAF6C3C000002A7000000000000000000000000000000000000004E00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/meta/main.yml# # (c) Copyright 2015 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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. # --- dependencies: - role: heat-common 07070100000085000041ED0000000000000000000000025DAF6C3C00000000000000000000000000000000000000000000004600000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/tasks07070100000086000081A40000000000000000000000015DAF6C3C00000617000000000000000000000000000000000000007000000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/tasks/keystone_change_domain_admin_password.yml# # (c) Copyright 2016-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-pre-configure | keystone_change_domain_admin_password | Get a domain scoped token keystone_v3: endpoint: "{{ keystone.endpoint }}" login_username: "{{ keystone.admin_user }}" login_password: "{{ keystone.admin_password }}" login_user_domain_name: "{{ keystone.default_domain }}" login_domain_name: "{{ keystone.default_domain }}" action: "token_get" run_once: true register: domain_scoped_token_result - name: heat-pre-configure | keystone_change_domain_admin_password | Change heat_domain_admin Keystone password keystone_v3: action: "reset_password_by_admin" endpoint: "{{ keystone.endpoint }}" login_token: "{{ domain_scoped_token_result.result }}" user_name: "{{ heat_stack_domain_admin_user }}" user_password: "{{ heat_stack_domain_admin_user_password }}" user_domain_name: "{{ heat_stack_user_domain_name }}" run_once: true 07070100000087000081A40000000000000000000000015DAF6C3C000005EF000000000000000000000000000000000000006B00000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/tasks/keystone_change_service_password.yml# # (c) Copyright 2016-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-pre-configure | keystone_change_service_password | Get a domain scoped token keystone_v3: endpoint: "{{ keystone.endpoint }}" login_username: "{{ keystone.admin_user }}" login_password: "{{ keystone.admin_password }}" login_user_domain_name: "{{ keystone.default_domain }}" login_domain_name: "{{ keystone.default_domain }}" action: "token_get" run_once: true register: domain_scoped_token_result - name: heat-pre-configure | keystone_change_service_password | Change heat Keystone password keystone_v3: action: "reset_password_by_admin" endpoint: "{{ keystone.endpoint }}" login_token: "{{ domain_scoped_token_result.result }}" user_name: "{{ keystone.heat_admin_user }}" user_password: "{{ keystone.heat_admin_password }}" user_domain_name: "{{ keystone.default_domain }}" run_once: true 07070100000088000081A40000000000000000000000015DAF6C3C000007A8000000000000000000000000000000000000005800000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/tasks/keystone_conf.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-pre-configure | keystone_conf | Get a domain scoped token keystone_v3: endpoint: "{{ keystone.endpoint }}" login_username: "{{ keystone.admin_user }}" login_password: "{{ keystone.admin_password }}" login_user_domain_name: "{{ keystone.default_domain }}" login_domain_name: "{{ keystone.default_domain }}" action: "token_get" run_once: true register: domain_scoped_token_result - name: heat-pre-configure | keystone_conf | create heat service user keystone_v3: action : "create_user" endpoint: "{{ keystone.endpoint }}" login_token: "{{ domain_scoped_token_result.result }}" user_name: "{{ keystone.heat_admin_user }}" user_password: "{{ keystone.heat_admin_password }}" user_domain_name: "{{ keystone.default_domain }}" run_once: true - name: heat-pre-configure | keystone_conf | create heat service user-role assignment keystone_v3: action: "grant_project_role" endpoint: "{{ keystone.endpoint }}" login_token: "{{ domain_scoped_token_result.result }}" project_name: "{{ keystone.service_tenant }}" user_name: "{{ keystone.heat_admin_user }}" role_name: "{{ keystone.role }}" user_domain_name: "{{ keystone.default_domain }}" project_domain_name: "{{ keystone.default_domain }}" run_once: true 07070100000089000081A40000000000000000000000015DAF6C3C00000A06000000000000000000000000000000000000006000000000ardana-heat-8.0+git.1571777596.14dce6a/roles/heat-pre-configure/tasks/keystone_domain_setup.yml# # (c) Copyright 2015-2017 Hewlett Packard Enterprise Development LP # (c) Copyright 2017 SUSE LLC # # 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: heat-pre-configure | keystone_domain_setup | create heat_stack_user role keystone_v3: action: "create_role" login_token: "{{ domain_scoped_token_result.result }}" endpoint: "{{ keystone.endpoint }}" role_name: "{{ heat_stack_user_role }}" run_once: true - name: heat-pre-configure | keystone_domain_setup | create heat domain keystone_v3: action: "create_domain" login_token: "{{ domain_scoped_token_result.result }}" endpoint: "{{ keystone.endpoint }}" domain_name: "{{ heat_stack_user_domain_name }}" description: "Owns users and projects created by heat" register: create_domain_result run_once: true - name: heat-pre-configure | keystone_domain_setup | set fact for heat domain id set_fact: heat_stack_domain_id: "{{ create_domain_result.result.id }}" run_once: true - name: heat-pre-configure | keystone_domain_setup | create heat domain admin user keystone_v3: action : "create_user" endpoint: "{{ keystone.endpoint }}" login_token: "{{ domain_scoped_token_result.result }}" user_name: "{{ heat_stack_domain_admin_user }}" user_password: "{{ heat_stack_domain_admin_user_password }}" user_domain_name: "{{ heat_stack_user_domain_name }}" register: create_user_result run_once: true - name: heat-pre-configure | keystone_domain_setup | Set fact for heat domain user id set_fact: stack_domain_user_id: "{{ create_user_result.result.id }}" - name: heat-pre-configure | keystone_domain_setup | create heat service user-role assignment keystone_v3: action: "grant_domain_role" endpoint: "{{ keystone.endpoint }}" login_token: "{{ domain_scoped_token_result.result }}" user_name: "{{ heat_stack_domain_admin_user }}" role_name: "{{ keystone.role }}" user_domain_name: "{{ heat_stack_user_domain_name }}" domain_name: "{{ heat_stack_user_domain_name }}" run_once: true 07070100000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000B00000000TRAILER!!!464 blocks
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor