Add support to deploy murano

Needed-By: https://review.opendev.org/677830
Depends-On: https://review.opendev.org/682896
Change-Id: If40e2aa07af9ae3099aeb8f1c58388765d3ddd33
This commit is contained in:
Guilherme Steinmüller 2019-08-30 18:49:40 +00:00 committed by Dmitriy Rabotyagov
parent 88360784d3
commit 0ff6e1fb34
18 changed files with 201 additions and 0 deletions

View File

@ -148,6 +148,11 @@
src: https://opendev.org/openstack/openstack-ansible-os_mistral src: https://opendev.org/openstack/openstack-ansible-os_mistral
version: master version: master
trackbranch: master trackbranch: master
- name: os_murano
scm: git
src: https://opendev.org/openstack/openstack-ansible-os_murano
version: master
trackbranch: master
- name: os_neutron - name: os_neutron
scm: git scm: git
src: https://opendev.org/openstack/openstack-ansible-os_neutron src: https://opendev.org/openstack/openstack-ansible-os_neutron

View File

@ -0,0 +1,3 @@
murano-infra_hosts:
aio1:
ip: 172.29.236.100

View File

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

View File

@ -87,6 +87,9 @@ container_skel:
mistral_container: mistral_container:
properties: properties:
is_metal: true is_metal: true
murano_container:
properties:
is_metal: true
neutron_agents_container: neutron_agents_container:
properties: properties:
is_metal: true is_metal: true

View File

@ -197,6 +197,11 @@ mistral_service_password:
mistral_galera_password: mistral_galera_password:
mistral_oslomsg_rpc_password: mistral_oslomsg_rpc_password:
# Murano Options
murano_service_password:
murano_galera_password:
murano_oslomsg_rpc_password:
## Rally Options: ## Rally Options:
rally_galera_password: rally_galera_password:

View File

@ -0,0 +1,39 @@
---
# 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.
component_skel:
murano_api:
belongs_to:
- murano_all
murano_engine:
belongs_to:
- murano_all
container_skel:
murano_container:
belongs_to:
- os-infra_containers
- murano-infra_containers
contains:
- murano_api
- murano_engine
physical_skel:
murano-infra_containers:
belongs_to:
- all_containers
murano-infra_hosts:
belongs_to:
- hosts

View File

@ -291,6 +291,17 @@ haproxy_default_services:
haproxy_backend_options: haproxy_backend_options:
- "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck" - "httpchk GET / HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
haproxy_service_enabled: "{{ groups['mistral_all'] is defined and groups['mistral_all'] | length > 0 }}" haproxy_service_enabled: "{{ groups['mistral_all'] is defined and groups['mistral_all'] | length > 0 }}"
- service:
haproxy_service_name: murano
haproxy_backend_nodes: "{{ groups['murano_all'] | default([]) }}"
haproxy_ssl: "{{ haproxy_ssl }}"
haproxy_port: 8082
haproxy_balance_type: http
haproxy_backend_options:
- "httpchk GET /v1 HTTP/1.0\\r\\nUser-agent:\\ osa-haproxy-healthcheck"
haproxy_backend_httpcheck_options:
- "expect status 401"
haproxy_service_enabled: "{{ groups['murano_all'] is defined and groups['murano_all'] | length > 0 }}"
- service: - service:
haproxy_service_name: trove haproxy_service_name: trove
haproxy_backend_nodes: "{{ groups['trove_api'] | default([]) }}" haproxy_backend_nodes: "{{ groups['trove_api'] | default([]) }}"

View File

@ -0,0 +1,26 @@
---
# 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.
murano_service_port: 8082
murano_service_proto: http
murano_service_publicuri_proto: "{{ openstack_service_publicuri_proto | default(murano_service_proto) }}"
murano_service_publicurl: "{{ murano_service_publicuri_proto }}://{{ external_lb_vip_address }}:{{ murano_service_port }}"
murano_service_internaluri_proto: "{{ openstack_service_internaluri_proto | default(murano_service_proto) }}"
murano_service_internalurl: "{{ murano_service_internaluri_proto }}://{{ internal_lb_vip_address }}:{{ murano_service_port }}"
murano_service_adminuri_proto: "{{ openstack_service_adminuri_proto | default(murano_service_proto) }}"
murano_service_adminurl: "{{ murano_service_adminuri_proto }}://{{ internal_lb_vip_address }}:{{ murano_service_port }}"
murano_service_region: "{{ service_region }}"

View File

@ -163,6 +163,11 @@ mistral_notifier
[mistral_executor] [mistral_executor]
[mistral_notifier] [mistral_notifier]
[murano_all:children]
murano_api
murano_engine
[murano_api]
[murano_engine]
[neutron_all:children] [neutron_all:children]
neutron_agent neutron_agent

View File

@ -44,6 +44,7 @@ keystone_install_method: distro
keystone_bin: /usr/bin keystone_bin: /usr/bin
magnum_install_method: distro magnum_install_method: distro
masakari_install_method: distro masakari_install_method: distro
murano_install_method: distro
monasca_install_method: distro monasca_install_method: distro
monasca-agent_install_method: distro monasca-agent_install_method: distro
monasca-ui_install_method: distro monasca-ui_install_method: distro

View File

@ -250,6 +250,12 @@ mistral_git_install_branch: e4f62dab1d6160f2a41cd05b0ec893d7dcc55989 # HEAD as
mistral_git_project_group: mistral_all mistral_git_project_group: mistral_all
mistral_git_track_branch: master mistral_git_track_branch: master
## Murano service
murano_git_repo: https://opendev.org/openstack/murano
murano_git_install_branch: f278aac4a836d20a7b8d01e290b5cf402a65ed3a # HEAD as of 22.08.2019
murano_git_project_group: murano_all
murano_git_track_branch: master
## Trove service ## Trove service
trove_git_repo: https://opendev.org/openstack/trove trove_git_repo: https://opendev.org/openstack/trove
trove_git_install_branch: cdac6278aff0ad564a881d16368bbdf9be732b99 # HEAD as of 30.09.2019 trove_git_install_branch: cdac6278aff0ad564a881d16368bbdf9be732b99 # HEAD as of 30.09.2019

View File

@ -0,0 +1,41 @@
---
# 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 murano components
hosts: murano_all
gather_facts: "{{ osa_gather_facts | default(True) }}"
environment: "{{ deployment_environment_variables | default({}) }}"
user: root
vars_files:
- "defaults/{{ install_method }}_install.yml"
tags:
- murano
pre_tasks:
- 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
- name: Configure package proxy cache
include_tasks: common-tasks/package-cache-proxy.yml
when: install_method == "source"
roles:
- role: "os_murano"
- role: "system_crontab_coordination"
tags:
- crontab

View File

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

View File

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

View File

@ -179,6 +179,9 @@
- src: user_variables_manila.yml.j2 - src: user_variables_manila.yml.j2
dest: user_variables_manila.yml dest: user_variables_manila.yml
condition: "{{ 'manila' in bootstrap_host_scenarios_expanded }}" condition: "{{ 'manila' in bootstrap_host_scenarios_expanded }}"
- src: user_variables_murano.yml.j2
dest: user_variables_murano.yml
condition: "{{ 'murano' in bootstrap_host_scenarios_expanded }}"
- src: user_variables_calico.yml.j2 - src: user_variables_calico.yml.j2
dest: user_variables_calico.yml dest: user_variables_calico.yml
condition: "{{ 'calico' in bootstrap_host_scenarios_expanded }}" condition: "{{ 'calico' in bootstrap_host_scenarios_expanded }}"

View File

@ -0,0 +1,30 @@
---
# 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.
tempest_test_whitelist:
- murano_tempest_tests.tests.api.application_catalog
tempest_tempest_conf_overrides:
application_catalog:
deployment_tests: True
endpoint_type: internalURL
linux_image: cirros
tempest_flavors:
- name: m1.tiny
id: 203
ram: 256
disk: 5
vcpus: 1

View File

@ -38,6 +38,9 @@ bootstrap_host_scenarios_expanded: |-
{% if 'ironic' in bootstrap_host_scenarios %} {% if 'ironic' in bootstrap_host_scenarios %}
{% set _ = scenario_list.extend(['swift']) %} {% set _ = scenario_list.extend(['swift']) %}
{% endif %} {% endif %}
{% if 'murano' in bootstrap_host_scenarios %}
{% set _ = scenario_list.extend(['heat']) %}
{% endif %}
{% if 'telemetry' in bootstrap_host_scenarios %} {% if 'telemetry' in bootstrap_host_scenarios %}
{% set _ = scenario_list.extend(['aodh', 'ceilometer', 'gnocchi', 'panko']) %} {% set _ = scenario_list.extend(['aodh', 'ceilometer', 'gnocchi', 'panko']) %}
{% endif %} {% endif %}

View File

@ -309,6 +309,13 @@ class TestAnsibleInventoryFormatConstraints(unittest.TestCase):
'mistral_engine', 'mistral_engine',
'mistral_executor', 'mistral_executor',
'mistral_notifier', 'mistral_notifier',
'murano-infra_all',
'murano-infra_containers',
'murano-infra_hosts',
'murano_all',
'murano_container',
'murano_api',
'murano_engine',
'mano_all', 'mano_all',
'mano_containers', 'mano_containers',
'mano_hosts', 'mano_hosts',