Add support to deploy zun

This patch adds zun to the integrated repo, so that deployers
were able to use it out of the box and we have integrated tests

Depends-On: https://review.opendev.org/692406
Change-Id: I7785964668679d3f97a36daa83043f6c10a3d7ac
This commit is contained in:
Dmitriy Rabotyagov 2019-10-31 18:34:59 +02:00
parent 49cc6c656c
commit b4665609e2
14 changed files with 197 additions and 1 deletions

View File

@ -0,0 +1,7 @@
---
zun-infra_hosts:
aio1:
ip: 172.29.236.100
zun-compute_hosts:
aio1:
ip: 172.29.236.100

View File

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

View File

@ -153,3 +153,9 @@ container_skel:
utility_container:
properties:
is_metal: true
zun_api_container:
properties:
is_metal: true
zun_compute_container:
properties:
is_metal: true

View File

@ -295,3 +295,14 @@ placement_galera_password:
ironic_inspector_container_mysql_password:
ironic_inspector_service_password:
ironic_inspector_swift_password:
# zun passwords
zun_oslomsg_rpc_password:
zun_galera_password:
zun_service_password:
zun_kuryr_service_password:
#NOTE: Please uncomment those
# if you want to split rpc and notify users
# Please also wire the appropriate userid in
# your user variables.
#zun_oslomsg_notify_password:

36
inventory/env.d/zun.yml Normal file
View File

@ -0,0 +1,36 @@
---
component_skel:
zun_api:
belongs_to:
- zun_all
zun_compute:
belongs_to:
- zun_all
container_skel:
zun_api_container:
belongs_to:
- zun-infra_containers
contains:
- zun_api
zun_compute_container:
belongs_to:
- zun-compute_containers
contains:
- zun_compute
properties:
is_metal: true
physical_skel:
zun-compute_containers:
belongs_to:
- all_containers
zun-compute_hosts:
belongs_to:
- hosts
zun-infra_containers:
belongs_to:
- all_containers
zun-infra_hosts:
belongs_to:
- hosts

View File

@ -439,3 +439,12 @@ haproxy_default_services:
- "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 }}"
- service:
haproxy_service_name: zun_api
haproxy_backend_nodes: "{{ groups['zun_api'] | default([]) }}"
haproxy_ssl: "{{ haproxy_ssl }}"
haproxy_port: 9517
haproxy_balance_type: http
haproxy_backend_options:
- "httpchk GET /v1 HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
haproxy_service_enabled: "{{ groups['zun_api'] is defined and groups['zun_api'] | length > 0 }}"

View File

@ -249,3 +249,9 @@ swift_remote
[tacker_all]
[trove_all]
[zun_all:children]
zun_api
zun_compute
[zun_api]
[zun_compute]

View File

@ -322,3 +322,15 @@ blazar_nova_git_repo: https://opendev.org/openstack/blazar-nova
blazar_nova_git_install_branch: 9f030ebc27572909b9315f1a6dd88f36c00ae72c # HEAD as of 08.03.2020
blazar_nova_git_project_group: blazar_all
blazar_nova_git_track_branch: master
## Zun service
zun_git_repo: https://opendev.org/openstack/zun
zun_git_install_branch: 499a547007dc3d8a79230d3a3fade12efdc93dcf # HEAD as of 31.10.2019
zun_git_project_group: zun_all
zun_git_track_branch: master
## Zun kyrir service
zun_kuryr_git_repo: https://opendev.org/openstack/kuryr-libnetwork
zun_kuryr_git_install_branch: fc7cc09604041e628d9a48777aad77f666dea8a1 # HEAD as of 31.10.2019
zun_kuryr_git_project_group: zun_all
zun_kuryr_git_track_branch: master

View File

@ -0,0 +1,60 @@
---
# Copyright 2019, VEXXHOST, Inc
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
- name: Install the zun components
hosts: zun_all
gather_facts: "{{ osa_gather_facts | default(True) }}"
user: root
vars_files:
- "defaults/repo_packages/openstack_services.yml"
- "defaults/{{ install_method }}_install.yml"
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: zun_api-back
haproxy_state: disabled
when:
- "'zun_api' in group_names"
- "groups['zun_api'] | length > 1"
- include_tasks: "common-tasks/os-{{ container_tech | default('lxc') }}-container-setup.yml"
when: not is_metal
- include_tasks: common-tasks/unbound-clients.yml
when:
- hostvars['localhost']['resolvconf_enabled'] | bool
roles:
- role: "os_zun"
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: zun_api-back
haproxy_state: enabled
when:
- "'zun_api' in group_names"
- "groups['zun_api'] | length > 1"
environment: "{{ deployment_environment_variables | default({}) }}"
tags:
- zun

View File

@ -39,6 +39,7 @@
- import_playbook: os-manila-install.yml
- import_playbook: os-mistral-install.yml
- import_playbook: os-murano-install.yml
- import_playbook: os-zun-install.yml
# This is not an OpenStack service, but integrates with Keystone and must be
# deployed afterward.

View File

@ -0,0 +1,4 @@
---
features:
- A new playbook ``os-zun-install.yml`` has been added which will deploy the zun
service to hosts assigned to the host group ``zun-infra_hosts``.

View File

@ -188,6 +188,9 @@
- src: user_variables_calico.yml.j2
dest: user_variables_calico.yml
condition: "{{ 'calico' in bootstrap_host_scenarios_expanded }}"
- src: user_variables_zun.yml.j2
dest: user_variables_zun.yml
condition: "{{ 'zun' in bootstrap_host_scenarios_expanded }}"
- name: Copy modified cinder-volume env.d file for ceph scenario
copy:

View File

@ -0,0 +1,21 @@
---
# Copyright 2020, VEXXHOST, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
tempest_test_whitelist:
- zun_tempest_plugin.tests.tempest.api
tempest_tempest_conf_overrides:
container_service:
min_microversion: 1.12

View File

@ -488,7 +488,18 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
'unbound_hosts',
'utility',
'utility_all',
'utility_container'
'utility_container',
'zun-infra_all',
'zun-infra_containers',
'zun-infra_hosts',
'zun_all',
'zun_api',
'zun_api_container',
'zun_compute',
'zun-compute_containers',
'zun-compute_hosts',
'zun-compute_all',
'zun_compute_container',
]
@classmethod