Merge "Add support to deploy zun"

This commit is contained in:
Zuul
2020-04-02 23:42:47 +00:00
committed by Gerrit Code Review
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 22.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