From 48266cefb5da610d57d4392a4c2d736b3b18dbb5 Mon Sep 17 00:00:00 2001 From: Jesse Pretorius Date: Tue, 26 Mar 2019 19:37:27 +0000 Subject: [PATCH] Add panko to integrated build In order to enable the testing of the complete telemetry stack, we add panko to the integrated build. Change-Id: Ica12e3c0a586609bf5a3e5b50905922932a0bbce --- ansible-role-requirements.yml | 5 +++ deploy-guide/source/configure.rst | 2 + .../contributor/role-maturity-matrix.html | 11 ++++- etc/openstack_deploy/conf.d/panko.yml.aio | 3 ++ etc/openstack_deploy/conf.d/panko.yml.example | 8 ++++ .../env.d/aio_metal.yml.example | 3 ++ etc/openstack_deploy/user_secrets.yml | 4 ++ inventory/env.d/panko.yml | 36 ++++++++++++++++ inventory/group_vars/all/panko.yml | 15 +++++++ inventory/group_vars/haproxy/haproxy.yml | 11 +++++ inventory/group_vars/panko_all.yml | 24 +++++++++++ inventory/inventory.ini | 3 ++ .../repo_packages/openstack_services.yml | 8 ++++ playbooks/os-panko-install.yml | 42 +++++++++++++++++++ playbooks/setup-openstack.yml | 1 + tests/test_inventory.py | 6 +++ 16 files changed, 181 insertions(+), 1 deletion(-) create mode 100644 etc/openstack_deploy/conf.d/panko.yml.aio create mode 100644 etc/openstack_deploy/conf.d/panko.yml.example create mode 100644 inventory/env.d/panko.yml create mode 100644 inventory/group_vars/all/panko.yml create mode 100644 inventory/group_vars/panko_all.yml create mode 100644 playbooks/os-panko-install.yml diff --git a/ansible-role-requirements.yml b/ansible-role-requirements.yml index 6629d4fdce..b03ebcd4ed 100644 --- a/ansible-role-requirements.yml +++ b/ansible-role-requirements.yml @@ -163,6 +163,11 @@ src: https://git.openstack.org/openstack/openstack-ansible-os_octavia version: master trackbranch: master +- name: os_panko + scm: git + src: https://git.openstack.org/openstack/openstack-ansible-os_panko + version: master + trackbranch: master - name: os_rally scm: git src: https://git.openstack.org/openstack/openstack-ansible-os_rally diff --git a/deploy-guide/source/configure.rst b/deploy-guide/source/configure.rst index 09ec363c53..d14dc6cddd 100644 --- a/deploy-guide/source/configure.rst +++ b/deploy-guide/source/configure.rst @@ -160,6 +160,8 @@ OpenStack service roles - :role_docs:`os_octavia` +- :role_docs:`os_panko` + - :role_docs:`os_rally` - :role_docs:`os_sahara` diff --git a/doc/source/contributor/role-maturity-matrix.html b/doc/source/contributor/role-maturity-matrix.html index b8ee73dec4..6c427ec04d 100644 --- a/doc/source/contributor/role-maturity-matrix.html +++ b/doc/source/contributor/role-maturity-matrix.html @@ -315,6 +315,15 @@ ✘ ✘ + + os_panko + Rocky + Inclubated + ✔ + ✔ + ✘ + ✘ + os_rally Newton @@ -475,4 +484,4 @@ pip_lock_down Liberty Newton - \ No newline at end of file + diff --git a/etc/openstack_deploy/conf.d/panko.yml.aio b/etc/openstack_deploy/conf.d/panko.yml.aio new file mode 100644 index 0000000000..003af0987e --- /dev/null +++ b/etc/openstack_deploy/conf.d/panko.yml.aio @@ -0,0 +1,3 @@ +event-infra_hosts: + aio1: + ip: 172.29.236.100 diff --git a/etc/openstack_deploy/conf.d/panko.yml.example b/etc/openstack_deploy/conf.d/panko.yml.example new file mode 100644 index 0000000000..9f4b98a644 --- /dev/null +++ b/etc/openstack_deploy/conf.d/panko.yml.example @@ -0,0 +1,8 @@ +# The infra nodes that will be running the event services +event-infra_hosts: + infra1: + ip: 172.20.236.111 + infra2: + ip: 172.20.236.112 + infra3: + ip: 172.20.236.113 diff --git a/etc/openstack_deploy/env.d/aio_metal.yml.example b/etc/openstack_deploy/env.d/aio_metal.yml.example index 67617205ff..dd0d0d07a5 100644 --- a/etc/openstack_deploy/env.d/aio_metal.yml.example +++ b/etc/openstack_deploy/env.d/aio_metal.yml.example @@ -90,6 +90,9 @@ container_skel: octavia_server_container: properties: is_metal: true + panko_container: + properties: + is_metal: true repo_container: properties: is_metal: true diff --git a/etc/openstack_deploy/user_secrets.yml b/etc/openstack_deploy/user_secrets.yml index a2246f313b..5627756bb7 100644 --- a/etc/openstack_deploy/user_secrets.yml +++ b/etc/openstack_deploy/user_secrets.yml @@ -270,3 +270,7 @@ congress_oslomsg_rpc_password: # your user variables. #congress_oslomsg_notify_password: congress_service_password: + +## panko passwords +panko_container_db_password: +panko_service_password: diff --git a/inventory/env.d/panko.yml b/inventory/env.d/panko.yml new file mode 100644 index 0000000000..80e374fe26 --- /dev/null +++ b/inventory/env.d/panko.yml @@ -0,0 +1,36 @@ +--- +# 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. + +component_skel: + panko_api: + belongs_to: + - panko_all + +container_skel: + panko_container: + belongs_to: + - event-infra_containers + contains: + - panko_api + properties: + service_name: panko + +physical_skel: + event-infra_containers: + belongs_to: + - all_containers + event-infra_hosts: + belongs_to: + - hosts + + diff --git a/inventory/group_vars/all/panko.yml b/inventory/group_vars/all/panko.yml new file mode 100644 index 0000000000..27157e77d3 --- /dev/null +++ b/inventory/group_vars/all/panko.yml @@ -0,0 +1,15 @@ +--- +# +# 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. + +panko_service_region: "{{ service_region }}" diff --git a/inventory/group_vars/haproxy/haproxy.yml b/inventory/group_vars/haproxy/haproxy.yml index 14ffa05084..972c6e0cad 100644 --- a/inventory/group_vars/haproxy/haproxy.yml +++ b/inventory/group_vars/haproxy/haproxy.yml @@ -401,3 +401,14 @@ haproxy_default_services: haproxy_backend_options: - tcpka haproxy_service_enabled: "{{ (neutron_plugin_type == 'ml2.ovn') and (groups['neutron_ovn_northd'] is defined and groups['neutron_ovn_northd'] | length > 0) }}" + - service: + haproxy_service_name: panko_api + haproxy_backend_nodes: "{{ groups['panko_api'] | default([]) }}" + haproxy_ssl: "{{ haproxy_ssl }}" + haproxy_port: 8777 + haproxy_balance_type: http + haproxy_backend_options: + - "forwardfor" + - "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck" + - "httplog" + haproxy_service_enabled: "{{ groups['panko_all'] is defined and groups['panko_all'] | length > 0 }}" diff --git a/inventory/group_vars/panko_all.yml b/inventory/group_vars/panko_all.yml new file mode 100644 index 0000000000..185bfcb416 --- /dev/null +++ b/inventory/group_vars/panko_all.yml @@ -0,0 +1,24 @@ +--- +# +# 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. + + +panko_service_in_ldap: "{{ service_ldap_backend_enabled }}" +panko_service_publicuri: "{{ openstack_service_publicuri_proto|default(panko_service_proto) }}://{{ external_lb_vip_address }}:{{ panko_service_port }}" + +# Ensure that the package state matches the global setting +panko_package_state: "{{ package_state }}" + +# venv fetch configuration +panko_venv_tag: "{{ venv_tag }}" +panko_venv_download_url: "{{ venv_base_download_url }}/panko-{{ openstack_release }}-{{ ansible_architecture | lower }}.tgz" diff --git a/inventory/inventory.ini b/inventory/inventory.ini index 3e913e251a..41e843b15f 100644 --- a/inventory/inventory.ini +++ b/inventory/inventory.ini @@ -197,6 +197,9 @@ nova_scheduler [octavia_all] +[panko_all:children] +panko_api + [rsyslog_all] [sahara_all:children] diff --git a/playbooks/defaults/repo_packages/openstack_services.yml b/playbooks/defaults/repo_packages/openstack_services.yml index 26628fa21e..2a5fe4f9c8 100644 --- a/playbooks/defaults/repo_packages/openstack_services.yml +++ b/playbooks/defaults/repo_packages/openstack_services.yml @@ -288,12 +288,20 @@ octavia_git_project_group: octavia_all octavia_git_track_branch: master +## Panko service +panko_git_repo: https://git.openstack.org/openstack/panko +panko_git_install_branch: 91f809625560d770f39299f782eff2b56ec84874 # HEAD as of 23.03.2019 +panko_git_project_group: panko_all +panko_git_track_branch: master + + ## Tacker service tacker_git_repo: https://git.openstack.org/openstack/tacker tacker_git_install_branch: 1a3c02772442a358baea762e9a67721efdd56595 # HEAD as of 23.03.2019 tacker_git_project_group: tacker_all tacker_git_track_branch: master + ## Congress service congress_git_repo: https://git.openstack.org/openstack/congress congress_git_install_branch: 030eed8c5519d44a69b3b458cf5169086852ae0d # HEAD as of 23.03.2019 diff --git a/playbooks/os-panko-install.yml b/playbooks/os-panko-install.yml new file mode 100644 index 0000000000..14ad2f2ba3 --- /dev/null +++ b/playbooks/os-panko-install.yml @@ -0,0 +1,42 @@ +--- +# +# 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: Install the panko components + hosts: panko_all + gather_facts: "{{ osa_gather_facts | default(True) }}" + user: root + environment: "{{ deployment_environment_variables | default({}) }}" + vars_files: + - "defaults/repo_packages/openstack_services.yml" + - "defaults/{{ install_method }}_install.yml" + tags: + - panko + pre_tasks: + - include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml" + when: not is_metal + + - include_tasks: common-tasks/os-log-dir-setup.yml + vars: + log_dirs: + - src: "/openstack/log/{{ inventory_hostname }}-panko" + dest: "/var/log/panko" + roles: + - role: "os_panko" + + post_tasks: + - include_tasks: "common-tasks/rsyslog-client.yml" + vars: + rsyslog_client_log_rotate_file: panko_log_rotate + rsyslog_client_log_dir: "/var/log/panko" + rsyslog_client_config_name: "99-panko-rsyslog-client.conf" diff --git a/playbooks/setup-openstack.yml b/playbooks/setup-openstack.yml index 4d19711a59..dd859e4e17 100644 --- a/playbooks/setup-openstack.yml +++ b/playbooks/setup-openstack.yml @@ -26,6 +26,7 @@ - import_playbook: os-swift-install.yml - import_playbook: os-ceilometer-install.yml - import_playbook: os-aodh-install.yml +- import_playbook: os-panko-install.yml - import_playbook: os-ironic-install.yml - import_playbook: os-magnum-install.yml - import_playbook: os-trove-install.yml diff --git a/tests/test_inventory.py b/tests/test_inventory.py index 45d424cb55..b51d60a5fa 100644 --- a/tests/test_inventory.py +++ b/tests/test_inventory.py @@ -207,6 +207,9 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase): 'etcd_container', 'etcd_containers', 'etcd_hosts', + 'event-infra_all', + 'event-infra_containers', + 'event-infra_hosts', 'galera', 'galera_all', 'galera_container', @@ -308,6 +311,9 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase): 'octavia-health-manager', 'octavia-infra_containers', 'octavia-infra_all', + 'panko_all', + 'panko_api', + 'panko_container', 'policy_all', 'policy_containers', 'policy_hosts',