Added Openstack Adjutant role deployment

This commit adds experimental deployment of Adjutant role.

Depends-On: https://review.opendev.org/756313
Change-Id: I7203536111eb2120fa74d639ad9fc7b783d3cca7
This commit is contained in:
Dmitriy Rabotyagov 2020-10-06 17:07:09 +03:00 committed by Dmitriy Rabotyagov
parent 65ace792e7
commit 9949f3fb4a
16 changed files with 175 additions and 10 deletions

View File

@ -63,6 +63,11 @@
src: https://opendev.org/openstack/openstack-ansible-openstack_openrc src: https://opendev.org/openstack/openstack-ansible-openstack_openrc
version: master version: master
trackbranch: master trackbranch: master
- name: os_adjutant
scm: git
src: https://opendev.org/openstack/openstack-ansible-os_adjutant
version: master
trackbranch: master
- name: os_aodh - name: os_aodh
scm: git scm: git
src: https://opendev.org/openstack/openstack-ansible-os_aodh src: https://opendev.org/openstack/openstack-ansible-os_aodh

View File

@ -126,6 +126,8 @@ Infrastructure service roles
OpenStack service roles OpenStack service roles
----------------------- -----------------------
- :role_docs:`os_adjutant`
- :role_docs:`os_aodh` - :role_docs:`os_aodh`
- :role_docs:`os_barbican` - :role_docs:`os_barbican`

View File

@ -108,6 +108,15 @@
<td></td> <td></td>
<td></td> <td></td>
</tr> </tr>
<tr class="warning">
<td>os_adjutant</td>
<td>Ussuri</td>
<td>Incubated</td>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr > <tr >
<td>os_aodh</td> <td>os_aodh</td>
<td>Mitaka</td> <td>Mitaka</td>

View File

@ -0,0 +1,3 @@
registration_hosts:
aio1:
ip: 172.29.236.100

View File

@ -0,0 +1,8 @@
# The infra nodes that will be running the adjutant services
registration_hosts:
infra1:
ip: 172.20.236.111
infra2:
ip: 172.20.236.112
infra3:
ip: 172.20.236.113

View File

@ -39,16 +39,10 @@ keystone_oslomsg_rpc_password:
# your user variables. # your user variables.
#keystone_oslomsg_notify_password: #keystone_oslomsg_notify_password:
## Ceilometer Options: ## Adjutant Options:
ceilometer_container_db_password: adjutant_galera_password:
ceilometer_service_password: adjutant_service_password:
ceilometer_telemetry_secret: adjutant_secret_key:
ceilometer_oslomsg_rpc_password:
#NOTE: Please uncomment those
# if you want to split rpc and notify users
# Please also wire the appropriate userid in
# your user variables.
#ceilometer_oslomsg_notify_password:
## Aodh Options: ## Aodh Options:
aodh_container_db_password: aodh_container_db_password:
@ -60,6 +54,17 @@ aodh_oslomsg_rpc_password:
# your user variables. # your user variables.
#aodh_oslomsg_notify_password: #aodh_oslomsg_notify_password:
## Ceilometer Options:
ceilometer_container_db_password:
ceilometer_service_password:
ceilometer_telemetry_secret:
ceilometer_oslomsg_rpc_password:
#NOTE: Please uncomment those
# if you want to split rpc and notify users
# Please also wire the appropriate userid in
# your user variables.
#ceilometer_oslomsg_notify_password:
## Cinder Options ## Cinder Options
cinder_container_mysql_password: cinder_container_mysql_password:
cinder_service_password: cinder_service_password:

View File

@ -0,0 +1,34 @@
---
# Copyright 2020, City Network International AB.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
component_skel:
adjutant_api:
belongs_to:
- adjutant_all
container_skel:
adjutant_container:
belongs_to:
- registration_containers
contains:
- adjutant_api
physical_skel:
registration_containers:
belongs_to:
- all_containers
registration_hosts:
belongs_to:
- hosts

View File

@ -246,6 +246,17 @@ haproxy_default_services:
haproxy_backend_options: haproxy_backend_options:
- "httpchk GET /healthcheck HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck" - "httpchk GET /healthcheck HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
haproxy_service_enabled: "{{ groups['swift_proxy'] is defined and groups['swift_proxy'] | length > 0 }}" haproxy_service_enabled: "{{ groups['swift_proxy'] is defined and groups['swift_proxy'] | length > 0 }}"
- service:
haproxy_service_name: adjutant_api
haproxy_backend_nodes: "{{ groups['adjutant_api'] | default([]) }}"
haproxy_ssl: "{{ haproxy_ssl }}"
haproxy_ssl_all_vips: "{{ haproxy_ssl_all_vips }}"
haproxy_port: 5050
haproxy_balance_type: http
haproxy_balance_alg: source
haproxy_backend_options:
- "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
haproxy_service_enabled: "{{ groups['adjutant_api'] is defined and groups['adjutant_api'] | length > 0 }}"
- service: - service:
haproxy_service_name: aodh_api haproxy_service_name: aodh_api
haproxy_backend_nodes: "{{ groups['aodh_api'] | default([]) }}" haproxy_backend_nodes: "{{ groups['aodh_api'] | default([]) }}"

View File

@ -16,6 +16,7 @@
horizon_external_ssl: "{{ openstack_external_ssl }}" horizon_external_ssl: "{{ openstack_external_ssl }}"
horizon_service_region: "{{ service_region }}" horizon_service_region: "{{ service_region }}"
horizon_enable_cinder_backup: "{{ hostvars['localhost']['cinder_service_backup_program_enabled'] }}" horizon_enable_cinder_backup: "{{ hostvars['localhost']['cinder_service_backup_program_enabled'] }}"
horizon_enable_adjutant_ui: "{{ (groups['adjutant_all'] is defined) and (groups['adjutant_all'] | length > 0) }}"
horizon_enable_blazar_ui: "{{ (groups['blazar_all'] is defined) and (groups['blazar_all'] | length > 0) }}" horizon_enable_blazar_ui: "{{ (groups['blazar_all'] is defined) and (groups['blazar_all'] | length > 0) }}"
horizon_enable_heat_ui: "{{ (groups['heat_all'] is defined) and (groups['heat_all'] | length > 0) }}" horizon_enable_heat_ui: "{{ (groups['heat_all'] is defined) and (groups['heat_all'] | length > 0) }}"
horizon_enable_ironic_ui: "{{ (groups['ironic_all'] is defined) and (groups['ironic_all'] | length > 0) }}" horizon_enable_ironic_ui: "{{ (groups['ironic_all'] is defined) and (groups['ironic_all'] | length > 0) }}"

View File

@ -31,6 +31,10 @@ hosts
[utility_all] [utility_all]
## Mandatory groups for the setup-openstack playbooks ## Mandatory groups for the setup-openstack playbooks
[adjutant_all:children]
adjutant_api
[adjutant_api]
[aodh_all:children] [aodh_all:children]
aodh_alarm_evaluator aodh_alarm_evaluator
aodh_alarm_notifier aodh_alarm_notifier

View File

@ -34,6 +34,11 @@ requirements_git_repo: https://opendev.org/openstack/requirements
requirements_git_install_branch: 679941a9f4f9d2053d830ea44c58baadd03b3a11 # HEAD as of 19.10.2020 requirements_git_install_branch: 679941a9f4f9d2053d830ea44c58baadd03b3a11 # HEAD as of 19.10.2020
requirements_git_track_branch: stable/victoria requirements_git_track_branch: stable/victoria
## Adjutant service
adjutant_git_repo: https://opendev.org/openstack/adjutant
adjutant_git_install_branch: 43e0c625e39f826b578e3e5c25519606d9b72808 # HEAD as of 06.10.2020
adjutant_git_project_group: adjutant_all
adjutant_git_track_branch: stable/victoria
## Aodh service ## Aodh service
aodh_git_repo: https://opendev.org/openstack/aodh aodh_git_repo: https://opendev.org/openstack/aodh

View File

@ -0,0 +1,63 @@
---
# Copyright 2020, City Network International AB
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Gather adjutant facts
hosts: adjutant_all
gather_facts: "{{ osa_gather_facts | default(True) }}"
tags:
- always
- name: Install adjutant services
hosts: adjutant_all
gather_facts: false
serial: "{{ adjutant_api_serial | default(['1','100%']) }}"
user: root
environment: "{{ deployment_environment_variables | default({}) }}"
vars_files:
- "defaults/repo_packages/openstack_services.yml"
- "defaults/{{ install_method }}_install.yml"
tags:
- adjutant
pre_tasks:
# In order to ensure that any container, software or
# config file changes which causes a container/service
# restart do not cause an unexpected outage, we drain
# the load balancer back end for this container.
- include_tasks: common-tasks/haproxy-endpoint-manage.yml
vars:
haproxy_backend: adjutant_api-back
haproxy_state: disabled
when:
- "'adjutant_api' in group_names"
- "groups['adjutant_api'] | length > 1"
- include_tasks: common-tasks/unbound-clients.yml
when:
- hostvars['localhost']['resolvconf_enabled'] | bool
roles:
- role: "os_adjutant"
post_tasks:
# Now that container changes are done, we can set
# the load balancer back end for this container
# to available again.
- include_tasks: common-tasks/haproxy-endpoint-manage.yml
vars:
haproxy_backend: adjutant_api-back
haproxy_state: enabled
when:
- "'adjutant_api' in group_names"
- "groups['adjutant_api'] | length > 1"

View File

@ -25,6 +25,7 @@
- import_playbook: os-designate-install.yml - import_playbook: os-designate-install.yml
- import_playbook: os-gnocchi-install.yml - import_playbook: os-gnocchi-install.yml
- import_playbook: os-swift-install.yml - import_playbook: os-swift-install.yml
- import_playbook: os-adjutant-install.yml
- import_playbook: os-ceilometer-install.yml - import_playbook: os-ceilometer-install.yml
- import_playbook: os-aodh-install.yml - import_playbook: os-aodh-install.yml
- import_playbook: os-panko-install.yml - import_playbook: os-panko-install.yml

View File

@ -0,0 +1,6 @@
---
features:
- |
Experimental support has been added to allow the deployment of the
OpenStack Adjutant service when hosts are present in the host group
``registration_hosts``.

View File

@ -136,6 +136,9 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
'aio1-host_containers', 'aio1-host_containers',
'all', 'all',
'all_containers', 'all_containers',
'adjutant_all',
'adjutant_api',
'adjutant_container',
'aodh_alarm_evaluator', 'aodh_alarm_evaluator',
'aodh_alarm_notifier', 'aodh_alarm_notifier',
'aodh_all', 'aodh_all',
@ -426,6 +429,9 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
'rabbit_mq_container', 'rabbit_mq_container',
'rabbitmq', 'rabbitmq',
'rabbitmq_all', 'rabbitmq_all',
'registration_all',
'registration_containers',
'registration_hosts',
'remote', 'remote',
'remote_containers', 'remote_containers',
'repo-infra_all', 'repo-infra_all',

View File

@ -36,6 +36,7 @@
- name: openstack/openstack-ansible-openstack_hosts - name: openstack/openstack-ansible-openstack_hosts
- name: openstack/openstack-ansible-os_keystone - name: openstack/openstack-ansible-os_keystone
- name: openstack/openstack-ansible-openstack_openrc - name: openstack/openstack-ansible-openstack_openrc
- name: openstack/openstack-ansible-os_adjutant
- name: openstack/openstack-ansible-os_aodh - name: openstack/openstack-ansible-os_aodh
- name: openstack/openstack-ansible-os_barbican - name: openstack/openstack-ansible-os_barbican
- name: openstack/openstack-ansible-os_blazar - name: openstack/openstack-ansible-os_blazar
@ -79,6 +80,7 @@
- name: openstack/ansible-role-uwsgi - name: openstack/ansible-role-uwsgi
# OpenStack service repos - listed here to make cached repos available in CI # OpenStack service repos - listed here to make cached repos available in CI
- name: openstack/requirements - name: openstack/requirements
- name: openstack/adjutant
- name: openstack/aodh - name: openstack/aodh
- name: openstack/barbican - name: openstack/barbican
- name: openstack/ceilometer - name: openstack/ceilometer