Add test with detached haproxy role
- Add test with external load balancer. Controllers are
from different racks and haproxy is from rack-3
- Separate devops config with appropriate networks
assigned to nodes is used
- Local repos for cluster are used because public networks
are routed without internet connection
- OSTF isn't running because it's not implied to use
separate haproxy
Closes-Bug: #1583530
Change-Id: I0d3647c8eb13159c27e64ddf5925467f451b610c
(cherry picked from commit 7a5970fa64
)
This commit is contained in:
parent
3ee66417fa
commit
f72fe3ea15
@ -694,6 +694,11 @@ Test for separate keystone service and ceph
|
|||||||
.. automodule:: fuelweb_test.tests.tests_separate_services.test_separate_keystone_ceph
|
.. automodule:: fuelweb_test.tests.tests_separate_services.test_separate_keystone_ceph
|
||||||
:members:
|
:members:
|
||||||
|
|
||||||
|
Test for separate haproxy service
|
||||||
|
---------------------------------
|
||||||
|
.. automodule:: fuelweb_test.tests.tests_separate_services.test_separate_haproxy
|
||||||
|
:members:
|
||||||
|
|
||||||
Test for separate horizon service
|
Test for separate horizon service
|
||||||
---------------------------------
|
---------------------------------
|
||||||
.. automodule:: fuelweb_test.tests.tests_separate_services.test_separate_horizon
|
.. automodule:: fuelweb_test.tests.tests_separate_services.test_separate_horizon
|
||||||
|
@ -131,6 +131,11 @@ MULTIPLE_NETWORKS_TEMPLATE = os.environ.get(
|
|||||||
'MULTIPLE_NETWORKS_TEMPLATE',
|
'MULTIPLE_NETWORKS_TEMPLATE',
|
||||||
os.path.join(os.getcwd(),
|
os.path.join(os.getcwd(),
|
||||||
'system_test/tests_templates/tests_configs/multirack.yaml'))
|
'system_test/tests_templates/tests_configs/multirack.yaml'))
|
||||||
|
EXTERNAL_HAPROXY_TEMPLATE = os.environ.get(
|
||||||
|
'EXTERNAL_HAPROXY_TEMPLATE',
|
||||||
|
os.path.join(os.getcwd(),
|
||||||
|
'system_test/tests_templates/tests_configs/'
|
||||||
|
'external_haproxy.yaml'))
|
||||||
|
|
||||||
if MULTIPLE_NETWORKS:
|
if MULTIPLE_NETWORKS:
|
||||||
NODEGROUPS = (
|
NODEGROUPS = (
|
||||||
@ -482,6 +487,10 @@ SEPARATE_SERVICE_HORIZON_PLUGIN_PATH = os.environ.get(
|
|||||||
ETCKEEPER_PLUGIN_REPO = os.environ.get(
|
ETCKEEPER_PLUGIN_REPO = os.environ.get(
|
||||||
'ETCKEEPER_PLUGIN_REPO',
|
'ETCKEEPER_PLUGIN_REPO',
|
||||||
'https://github.com/Mirantis/fuel-plugin-etckeeper')
|
'https://github.com/Mirantis/fuel-plugin-etckeeper')
|
||||||
|
SEPARATE_SERVICE_HAPROXY_PLUGIN_PATH = os.environ.get(
|
||||||
|
'SEPARATE_SERVICE_HAPROXY_PLUGIN_PATH')
|
||||||
|
SEPARATE_SERVICE_BALANCER_PLUGIN_PATH = os.environ.get(
|
||||||
|
'SEPARATE_SERVICE_BALANCER_PLUGIN_PATH')
|
||||||
|
|
||||||
FUEL_STATS_CHECK = get_var_as_bool('FUEL_STATS_CHECK', False)
|
FUEL_STATS_CHECK = get_var_as_bool('FUEL_STATS_CHECK', False)
|
||||||
FUEL_STATS_ENABLED = get_var_as_bool('FUEL_STATS_ENABLED', True)
|
FUEL_STATS_ENABLED = get_var_as_bool('FUEL_STATS_ENABLED', True)
|
||||||
|
@ -27,10 +27,12 @@ from fuelweb_test.helpers.utils import get_test_method_name
|
|||||||
from fuelweb_test.helpers.utils import TimeStat
|
from fuelweb_test.helpers.utils import TimeStat
|
||||||
from fuelweb_test.helpers.ssh_manager import SSHManager
|
from fuelweb_test.helpers.ssh_manager import SSHManager
|
||||||
from fuelweb_test.models.environment import EnvironmentModel
|
from fuelweb_test.models.environment import EnvironmentModel
|
||||||
|
from fuelweb_test.settings import EXTERNAL_HAPROXY_TEMPLATE
|
||||||
from fuelweb_test.settings import MULTIPLE_NETWORKS
|
from fuelweb_test.settings import MULTIPLE_NETWORKS
|
||||||
from fuelweb_test.settings import MULTIPLE_NETWORKS_TEMPLATE
|
from fuelweb_test.settings import MULTIPLE_NETWORKS_TEMPLATE
|
||||||
from fuelweb_test.settings import REPLACE_DEFAULT_REPOS
|
from fuelweb_test.settings import REPLACE_DEFAULT_REPOS
|
||||||
from fuelweb_test.settings import REPLACE_DEFAULT_REPOS_ONLY_ONCE
|
from fuelweb_test.settings import REPLACE_DEFAULT_REPOS_ONLY_ONCE
|
||||||
|
from fuelweb_test.settings import SEPARATE_SERVICE_HAPROXY_PLUGIN_PATH
|
||||||
|
|
||||||
from gates_tests.helpers import exceptions
|
from gates_tests.helpers import exceptions
|
||||||
|
|
||||||
@ -344,6 +346,8 @@ class SetupEnvironment(TestBasic):
|
|||||||
if MULTIPLE_NETWORKS:
|
if MULTIPLE_NETWORKS:
|
||||||
from system_test.core.discover import load_yaml
|
from system_test.core.discover import load_yaml
|
||||||
self._devops_config = load_yaml(MULTIPLE_NETWORKS_TEMPLATE)
|
self._devops_config = load_yaml(MULTIPLE_NETWORKS_TEMPLATE)
|
||||||
|
if SEPARATE_SERVICE_HAPROXY_PLUGIN_PATH:
|
||||||
|
self._devops_config = load_yaml(EXTERNAL_HAPROXY_TEMPLATE)
|
||||||
|
|
||||||
self.check_run("empty")
|
self.check_run("empty")
|
||||||
|
|
||||||
|
@ -0,0 +1,171 @@
|
|||||||
|
# Copyright 2016 Mirantis, 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.
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from proboscis import asserts
|
||||||
|
from proboscis import test
|
||||||
|
|
||||||
|
from fuelweb_test.helpers.decorators import log_snapshot_after_test
|
||||||
|
from fuelweb_test.helpers import utils
|
||||||
|
from fuelweb_test.settings import NEUTRON
|
||||||
|
from fuelweb_test.settings import NEUTRON_SEGMENT
|
||||||
|
from fuelweb_test.settings import NODEGROUPS
|
||||||
|
from fuelweb_test.settings import MIRROR_UBUNTU
|
||||||
|
from fuelweb_test.settings import MULTIPLE_NETWORKS
|
||||||
|
from fuelweb_test.settings import SEPARATE_SERVICE_BALANCER_PLUGIN_PATH
|
||||||
|
from fuelweb_test.settings import SEPARATE_SERVICE_HAPROXY_PLUGIN_PATH
|
||||||
|
from fuelweb_test.tests.base_test_case import SetupEnvironment
|
||||||
|
from fuelweb_test.tests.test_net_templates_base import TestNetworkTemplatesBase
|
||||||
|
from gates_tests.helpers import exceptions
|
||||||
|
|
||||||
|
|
||||||
|
@test(groups=["multiracks_2"])
|
||||||
|
class TestSeparateHaproxy(TestNetworkTemplatesBase):
|
||||||
|
"""Test for verification of deployment with detached haproxy role."""
|
||||||
|
|
||||||
|
@test(depends_on=[SetupEnvironment.prepare_release],
|
||||||
|
groups=["separate_haproxy"])
|
||||||
|
@log_snapshot_after_test
|
||||||
|
def separate_haproxy(self):
|
||||||
|
"""Deploy HA environment with separate Haproxy.
|
||||||
|
|
||||||
|
Scenario:
|
||||||
|
1. Revert snapshot with ready master node
|
||||||
|
2. Copy and install external-lb and detach-haproxy plugins
|
||||||
|
3. Bootstrap 3 slaves from default nodegroup
|
||||||
|
4. Create cluster with Neutron VXLAN and custom nodegroups
|
||||||
|
5. Run 'fuel-mirror' to replace cluster repositories
|
||||||
|
with local mirrors
|
||||||
|
6. Bootstrap 2 slaves nodes from second nodegroup
|
||||||
|
and one node from third node group
|
||||||
|
7. Enable plugins for cluster
|
||||||
|
8. Add 2 controllers from default nodegroup and 1 controller
|
||||||
|
from second node group
|
||||||
|
9. Add 1 compute+cinder from default node group
|
||||||
|
and 1 compute+cinder from second node group
|
||||||
|
10. Add haproxy node from third node group
|
||||||
|
11. Verify networks
|
||||||
|
12. Deploy cluster
|
||||||
|
|
||||||
|
Duration 120m
|
||||||
|
Snapshot separate_haproxy
|
||||||
|
"""
|
||||||
|
|
||||||
|
if not MULTIPLE_NETWORKS:
|
||||||
|
raise exceptions.FuelQAVariableNotSet(
|
||||||
|
'MULTIPLE_NETWORKS', 'true')
|
||||||
|
|
||||||
|
self.show_step(1)
|
||||||
|
self.env.revert_snapshot('ready')
|
||||||
|
|
||||||
|
self.show_step(2)
|
||||||
|
utils.upload_tarball(
|
||||||
|
ip=self.ssh_manager.admin_ip,
|
||||||
|
tar_path=SEPARATE_SERVICE_HAPROXY_PLUGIN_PATH,
|
||||||
|
tar_target="/var")
|
||||||
|
|
||||||
|
utils.upload_tarball(
|
||||||
|
ip=self.ssh_manager.admin_ip,
|
||||||
|
tar_path=SEPARATE_SERVICE_BALANCER_PLUGIN_PATH,
|
||||||
|
tar_target="/var")
|
||||||
|
|
||||||
|
utils.install_plugin_check_code(
|
||||||
|
ip=self.ssh_manager.admin_ip,
|
||||||
|
plugin=os.path.basename(
|
||||||
|
SEPARATE_SERVICE_HAPROXY_PLUGIN_PATH))
|
||||||
|
|
||||||
|
utils.install_plugin_check_code(
|
||||||
|
ip=self.ssh_manager.admin_ip,
|
||||||
|
plugin=os.path.basename(
|
||||||
|
SEPARATE_SERVICE_BALANCER_PLUGIN_PATH))
|
||||||
|
|
||||||
|
self.show_step(3)
|
||||||
|
self.env.bootstrap_nodes(self.env.d_env.nodes().slaves[0:3])
|
||||||
|
self.show_step(4)
|
||||||
|
admin_ip = self.ssh_manager.admin_ip
|
||||||
|
cluster_id = self.fuel_web.create_cluster(
|
||||||
|
name=self.__class__.__name__,
|
||||||
|
settings={
|
||||||
|
'net_provider': NEUTRON,
|
||||||
|
'net_segment_type': NEUTRON_SEGMENT['tun'],
|
||||||
|
'tenant': 'separatehaproxy',
|
||||||
|
'user': 'separatehaproxy',
|
||||||
|
'password': 'separatehaproxy',
|
||||||
|
'ntp_list': [admin_ip],
|
||||||
|
}
|
||||||
|
)
|
||||||
|
self.show_step(5)
|
||||||
|
if MIRROR_UBUNTU != '':
|
||||||
|
ubuntu_url = MIRROR_UBUNTU.split()[1]
|
||||||
|
replace_cmd = \
|
||||||
|
"sed -i 's,http://archive.ubuntu.com/ubuntu,{0},g'" \
|
||||||
|
" /usr/share/fuel-mirror/ubuntu.yaml".format(
|
||||||
|
ubuntu_url)
|
||||||
|
self.ssh_manager.execute_on_remote(ip=admin_ip,
|
||||||
|
cmd=replace_cmd)
|
||||||
|
create_mirror_cmd = 'fuel-mirror create -P ubuntu -G mos ubuntu'
|
||||||
|
self.ssh_manager.execute_on_remote(ip=admin_ip, cmd=create_mirror_cmd)
|
||||||
|
apply_mirror_cmd = 'fuel-mirror apply -P ubuntu -G mos ubuntu ' \
|
||||||
|
'--env {0} --replace'.format(cluster_id)
|
||||||
|
self.ssh_manager.execute_on_remote(ip=admin_ip, cmd=apply_mirror_cmd)
|
||||||
|
|
||||||
|
self.show_step(6)
|
||||||
|
self.env.bootstrap_nodes(self.env.d_env.nodes().slaves[3:5])
|
||||||
|
self.env.bootstrap_nodes(self.env.d_env.nodes().slaves[6:7])
|
||||||
|
|
||||||
|
self.show_step(7)
|
||||||
|
plugin_name = 'detach_haproxy'
|
||||||
|
msg = "Plugin couldn't be enabled. Check plugin version. Test aborted"
|
||||||
|
asserts.assert_true(
|
||||||
|
self.fuel_web.check_plugin_exists(cluster_id, plugin_name),
|
||||||
|
msg)
|
||||||
|
options = {'metadata/enabled': True}
|
||||||
|
self.fuel_web.update_plugin_data(cluster_id, plugin_name, options)
|
||||||
|
|
||||||
|
plugin_name = 'external_loadbalancer'
|
||||||
|
msg = "Plugin couldn't be enabled. Check plugin version. Test aborted"
|
||||||
|
asserts.assert_true(
|
||||||
|
self.fuel_web.check_plugin_exists(cluster_id, plugin_name),
|
||||||
|
msg)
|
||||||
|
options = {'metadata/enabled': True}
|
||||||
|
self.fuel_web.update_plugin_data(cluster_id, plugin_name, options)
|
||||||
|
|
||||||
|
self.show_step(8)
|
||||||
|
self.show_step(9)
|
||||||
|
self.show_step(10)
|
||||||
|
nodegroup1 = NODEGROUPS[0]['name']
|
||||||
|
nodegroup2 = NODEGROUPS[1]['name']
|
||||||
|
nodegroup3 = NODEGROUPS[2]['name']
|
||||||
|
|
||||||
|
self.fuel_web.update_nodes(
|
||||||
|
cluster_id,
|
||||||
|
{
|
||||||
|
'slave-01': [['controller'], nodegroup1],
|
||||||
|
'slave-02': [['controller'], nodegroup1],
|
||||||
|
'slave-04': [['compute', 'cinder'], nodegroup2],
|
||||||
|
'slave-05': [['controller'], nodegroup2],
|
||||||
|
'slave-03': [['compute', 'cinder'], nodegroup1],
|
||||||
|
'slave-07': [['standalone-haproxy'], nodegroup3]
|
||||||
|
}
|
||||||
|
)
|
||||||
|
|
||||||
|
self.show_step(11)
|
||||||
|
self.fuel_web.verify_network(cluster_id)
|
||||||
|
|
||||||
|
self.show_step(12)
|
||||||
|
self.fuel_web.deploy_cluster_wait(cluster_id, timeout=180 * 60,
|
||||||
|
check_services=False)
|
||||||
|
|
||||||
|
self.env.make_snapshot('separate_haproxy')
|
451
system_test/tests_templates/devops_configs/external_haproxy.yaml
Normal file
451
system_test/tests_templates/devops_configs/external_haproxy.yaml
Normal file
@ -0,0 +1,451 @@
|
|||||||
|
---
|
||||||
|
aliases:
|
||||||
|
|
||||||
|
dynamic_address_pool:
|
||||||
|
- &pool_default !os_env POOL_DEFAULT, 10.109.0.0/16:24
|
||||||
|
|
||||||
|
default_interface_model:
|
||||||
|
- &interface_model !os_env INTERFACE_MODEL, e1000
|
||||||
|
|
||||||
|
default-slave-interfaces: &default-slave-interfaces
|
||||||
|
- label: enp0s3
|
||||||
|
l2_network_device: admin # Libvirt bridge name. It is *NOT* Nailgun networks
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s4
|
||||||
|
l2_network_device: public
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s5
|
||||||
|
l2_network_device: management
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s6
|
||||||
|
l2_network_device: private
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s7
|
||||||
|
l2_network_device: storage
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s13
|
||||||
|
l2_network_device: public3
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s14
|
||||||
|
l2_network_device: management3
|
||||||
|
interface_model: *interface_model
|
||||||
|
|
||||||
|
rack-02-slave-interfaces: &rack-02-slave-interfaces
|
||||||
|
- label: enp0s3
|
||||||
|
l2_network_device: admin2 # Libvirt bridge name. It is *NOT* Nailgun networks
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s4
|
||||||
|
l2_network_device: public2
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s5
|
||||||
|
l2_network_device: management2
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s6
|
||||||
|
l2_network_device: private2
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s7
|
||||||
|
l2_network_device: storage
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s13
|
||||||
|
l2_network_device: public3
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s14
|
||||||
|
l2_network_device: management3
|
||||||
|
interface_model: *interface_model
|
||||||
|
|
||||||
|
rack-03-slave-interfaces: &rack-03-slave-interfaces
|
||||||
|
- label: enp0s3
|
||||||
|
l2_network_device: admin3 # Libvirt bridge name. It is *NOT* Nailgun networks
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s4
|
||||||
|
l2_network_device: public3
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s5
|
||||||
|
l2_network_device: management3
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s6
|
||||||
|
l2_network_device: private3
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s7
|
||||||
|
l2_network_device: storage
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s13
|
||||||
|
l2_network_device: public
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s14
|
||||||
|
l2_network_device: management
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s15
|
||||||
|
l2_network_device: public2
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s16
|
||||||
|
l2_network_device: management2
|
||||||
|
interface_model: *interface_model
|
||||||
|
|
||||||
|
default-slave-network_config: &default-slave-network_config
|
||||||
|
enp0s3:
|
||||||
|
networks:
|
||||||
|
- fuelweb_admin
|
||||||
|
enp0s4:
|
||||||
|
networks:
|
||||||
|
- public
|
||||||
|
enp0s5:
|
||||||
|
networks:
|
||||||
|
- management
|
||||||
|
enp0s6:
|
||||||
|
networks:
|
||||||
|
- private
|
||||||
|
enp0s7:
|
||||||
|
networks:
|
||||||
|
- storage
|
||||||
|
|
||||||
|
rack-02-slave-network_config: &rack-02-slave-network_config
|
||||||
|
enp0s3:
|
||||||
|
networks:
|
||||||
|
- fuelweb_admin2
|
||||||
|
enp0s4:
|
||||||
|
networks:
|
||||||
|
- public2
|
||||||
|
enp0s5:
|
||||||
|
networks:
|
||||||
|
- management2
|
||||||
|
enp0s6:
|
||||||
|
networks:
|
||||||
|
- private2
|
||||||
|
enp0s7:
|
||||||
|
networks:
|
||||||
|
- storage
|
||||||
|
|
||||||
|
rack-03-slave-network_config: &rack-03-slave-network_config
|
||||||
|
enp0s3:
|
||||||
|
networks:
|
||||||
|
- fuelweb_admin3
|
||||||
|
enp0s4:
|
||||||
|
networks:
|
||||||
|
- public3
|
||||||
|
enp0s5:
|
||||||
|
networks:
|
||||||
|
- management3
|
||||||
|
enp0s6:
|
||||||
|
networks:
|
||||||
|
- private3
|
||||||
|
enp0s7:
|
||||||
|
networks:
|
||||||
|
- storage
|
||||||
|
|
||||||
|
default-slave-node-params: &default-slave-node-params
|
||||||
|
vcpu: !os_env SLAVE_NODE_CPU, 2
|
||||||
|
memory: !os_env SLAVE_NODE_MEMORY, 3072
|
||||||
|
boot:
|
||||||
|
- network
|
||||||
|
- hd
|
||||||
|
volumes:
|
||||||
|
- name: system
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
- name: cinder
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
- name: swift
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
interfaces: *default-slave-interfaces
|
||||||
|
network_config: *default-slave-network_config
|
||||||
|
|
||||||
|
rack-02-slave-node-params: &rack-02-slave-node-params
|
||||||
|
vcpu: !os_env SLAVE_NODE_CPU, 2
|
||||||
|
memory: !os_env SLAVE_NODE_MEMORY, 3072
|
||||||
|
boot:
|
||||||
|
- network
|
||||||
|
- hd
|
||||||
|
volumes:
|
||||||
|
- name: system
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
- name: cinder
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
- name: swift
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
interfaces: *rack-02-slave-interfaces
|
||||||
|
network_config: *rack-02-slave-network_config
|
||||||
|
|
||||||
|
rack-03-slave-node-params: &rack-03-slave-node-params
|
||||||
|
vcpu: !os_env SLAVE_NODE_CPU, 2
|
||||||
|
memory: !os_env SLAVE_NODE_MEMORY, 3072
|
||||||
|
boot:
|
||||||
|
- network
|
||||||
|
- hd
|
||||||
|
volumes:
|
||||||
|
- name: system
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
- name: cinder
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
- name: swift
|
||||||
|
capacity: !os_env NODE_VOLUME_SIZE, 55
|
||||||
|
format: qcow2
|
||||||
|
interfaces: *rack-03-slave-interfaces
|
||||||
|
network_config: *rack-03-slave-network_config
|
||||||
|
|
||||||
|
env_name: !os_env ENV_NAME
|
||||||
|
|
||||||
|
address_pools:
|
||||||
|
# Network pools used by the environment
|
||||||
|
fuelweb_admin-pool01:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 0
|
||||||
|
public-pool01:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 0
|
||||||
|
storage-pool01:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 101
|
||||||
|
management-pool01:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 102
|
||||||
|
private-pool01:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 103
|
||||||
|
|
||||||
|
fuelweb_admin-pool02:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 0
|
||||||
|
public-pool02:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 0
|
||||||
|
management-pool02:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 102
|
||||||
|
private-pool02:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 103
|
||||||
|
|
||||||
|
fuelweb_admin-pool03:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 0
|
||||||
|
public-pool03:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 0
|
||||||
|
management-pool03:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 102
|
||||||
|
private-pool03:
|
||||||
|
net: *pool_default
|
||||||
|
params:
|
||||||
|
tag: 103
|
||||||
|
|
||||||
|
groups:
|
||||||
|
- name: default
|
||||||
|
driver:
|
||||||
|
name: devops.driver.libvirt.libvirt_driver
|
||||||
|
params:
|
||||||
|
connection_string: !os_env CONNECTION_STRING, qemu:///system
|
||||||
|
storage_pool_name: !os_env STORAGE_POOL_NAME, default
|
||||||
|
stp: True
|
||||||
|
hpet: False
|
||||||
|
use_host_cpu: !os_env DRIVER_USE_HOST_CPU, true
|
||||||
|
|
||||||
|
network_pools: # Address pools for OpenStack networks.
|
||||||
|
# Actual names should be used for keys
|
||||||
|
# (the same as in Nailgun, for example)
|
||||||
|
|
||||||
|
fuelweb_admin: fuelweb_admin-pool01
|
||||||
|
public: public-pool01
|
||||||
|
storage: storage-pool01
|
||||||
|
management: management-pool01
|
||||||
|
private: private-pool01
|
||||||
|
|
||||||
|
l2_network_devices: # Libvirt bridges. It is *NOT* Nailgun networks
|
||||||
|
admin:
|
||||||
|
address_pool: fuelweb_admin-pool01
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: nat
|
||||||
|
|
||||||
|
public:
|
||||||
|
address_pool: public-pool01
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
storage:
|
||||||
|
address_pool: storage-pool01
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
management:
|
||||||
|
address_pool: management-pool01
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
private:
|
||||||
|
address_pool: private-pool01
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
nodes:
|
||||||
|
- name: admin # Custom name of VM for Fuel admin node
|
||||||
|
role: fuel_master # Fixed role for Fuel master node properties
|
||||||
|
params:
|
||||||
|
vcpu: !os_env ADMIN_NODE_CPU, 2
|
||||||
|
memory: !os_env ADMIN_NODE_MEMORY, 3072
|
||||||
|
boot:
|
||||||
|
- hd
|
||||||
|
- cdrom # for boot from usb - without 'cdrom'
|
||||||
|
volumes:
|
||||||
|
- name: system
|
||||||
|
capacity: !os_env ADMIN_NODE_VOLUME_SIZE, 80
|
||||||
|
format: qcow2
|
||||||
|
- name: iso
|
||||||
|
source_image: !os_env ISO_PATH # if 'source_image' set, then volume capacity is calculated from it's size
|
||||||
|
format: raw
|
||||||
|
device: cdrom # for boot from usb - 'disk'
|
||||||
|
bus: ide # for boot from usb - 'usb'
|
||||||
|
interfaces:
|
||||||
|
- label: enp0s3
|
||||||
|
l2_network_device: admin # Libvirt bridge name. It is *NOT* a Nailgun network
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s4
|
||||||
|
l2_network_device: admin2
|
||||||
|
interface_model: *interface_model
|
||||||
|
- label: enp0s5
|
||||||
|
l2_network_device: admin3
|
||||||
|
interface_model: *interface_model
|
||||||
|
network_config:
|
||||||
|
enp0s3:
|
||||||
|
networks:
|
||||||
|
- fuelweb_admin
|
||||||
|
|
||||||
|
- name: slave-01
|
||||||
|
role: fuel_slave
|
||||||
|
params: *default-slave-node-params
|
||||||
|
- name: slave-02
|
||||||
|
role: fuel_slave
|
||||||
|
params: *default-slave-node-params
|
||||||
|
- name: slave-03
|
||||||
|
role: fuel_slave
|
||||||
|
params: *default-slave-node-params
|
||||||
|
|
||||||
|
- name: rack-02
|
||||||
|
driver:
|
||||||
|
name: devops.driver.libvirt.libvirt_driver
|
||||||
|
params:
|
||||||
|
connection_string: !os_env CONNECTION_STRING, qemu:///system
|
||||||
|
storage_pool_name: !os_env STORAGE_POOL_NAME, default
|
||||||
|
stp: True
|
||||||
|
hpet: False
|
||||||
|
use_host_cpu: !os_env DRIVER_USE_HOST_CPU, true
|
||||||
|
|
||||||
|
network_pools: # Address pools for OpenStack networks.
|
||||||
|
# Actual names should be used for keys
|
||||||
|
# (the same as in Nailgun, for example)
|
||||||
|
|
||||||
|
fuelweb_admin: fuelweb_admin-pool02
|
||||||
|
public: public-pool02
|
||||||
|
storage: storage-pool01
|
||||||
|
management: management-pool02
|
||||||
|
private: private-pool02
|
||||||
|
|
||||||
|
l2_network_devices: # Libvirt bridges. It is *NOT* Nailgun networks
|
||||||
|
admin2:
|
||||||
|
address_pool: fuelweb_admin-pool02
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: nat
|
||||||
|
|
||||||
|
public2:
|
||||||
|
address_pool: public-pool02
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
management2:
|
||||||
|
address_pool: management-pool02
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
private2:
|
||||||
|
address_pool: private-pool02
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
nodes:
|
||||||
|
- name: slave-04
|
||||||
|
role: fuel_slave
|
||||||
|
params: *rack-02-slave-node-params
|
||||||
|
- name: slave-05
|
||||||
|
role: fuel_slave
|
||||||
|
params: *rack-02-slave-node-params
|
||||||
|
- name: slave-06
|
||||||
|
role: fuel_slave
|
||||||
|
params: *rack-02-slave-node-params
|
||||||
|
|
||||||
|
- name: rack-03
|
||||||
|
driver:
|
||||||
|
name: devops.driver.libvirt.libvirt_driver
|
||||||
|
params:
|
||||||
|
connection_string: !os_env CONNECTION_STRING, qemu:///system
|
||||||
|
storage_pool_name: !os_env STORAGE_POOL_NAME, default
|
||||||
|
stp: True
|
||||||
|
hpet: False
|
||||||
|
use_host_cpu: !os_env DRIVER_USE_HOST_CPU, true
|
||||||
|
|
||||||
|
network_pools: # Address pools for OpenStack networks.
|
||||||
|
# Actual names should be used for keys
|
||||||
|
# (the same as in Nailgun, for example)
|
||||||
|
|
||||||
|
fuelweb_admin: fuelweb_admin-pool03
|
||||||
|
public: public-pool03
|
||||||
|
storage: storage-pool01
|
||||||
|
management: management-pool03
|
||||||
|
private: private-pool03
|
||||||
|
|
||||||
|
l2_network_devices: # Libvirt bridges. It is *NOT* Nailgun networks
|
||||||
|
admin3:
|
||||||
|
address_pool: fuelweb_admin-pool03
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: nat
|
||||||
|
|
||||||
|
public3:
|
||||||
|
address_pool: public-pool03
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
management3:
|
||||||
|
address_pool: management-pool03
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
private3:
|
||||||
|
address_pool: private-pool03
|
||||||
|
dhcp: false
|
||||||
|
forward:
|
||||||
|
mode: route
|
||||||
|
|
||||||
|
nodes:
|
||||||
|
- name: slave-07
|
||||||
|
role: fuel_slave
|
||||||
|
params: *rack-03-slave-node-params
|
@ -0,0 +1,44 @@
|
|||||||
|
---
|
||||||
|
|
||||||
|
network-config: &network-config
|
||||||
|
provider: neutron
|
||||||
|
segment-type: tun
|
||||||
|
pubip-to-all: false
|
||||||
|
|
||||||
|
storages-config: &storages-config
|
||||||
|
volume-lvm: false
|
||||||
|
volume-ceph: true
|
||||||
|
image-ceph: true
|
||||||
|
rados-ceph: true
|
||||||
|
ephemeral-ceph: false
|
||||||
|
replica-ceph: 2
|
||||||
|
|
||||||
|
nodes: &nodes
|
||||||
|
- roles:
|
||||||
|
- controller
|
||||||
|
count: 3
|
||||||
|
nodegroup: default
|
||||||
|
- roles:
|
||||||
|
- compute
|
||||||
|
count: 1
|
||||||
|
nodegroup: rack-02
|
||||||
|
- roles:
|
||||||
|
- ceph-osd
|
||||||
|
count: 2
|
||||||
|
nodegroup: rack-03
|
||||||
|
|
||||||
|
template:
|
||||||
|
name: 3 Controller, 1 Compute, 2 Ceph on Neutron/VLAN
|
||||||
|
slaves: 6
|
||||||
|
devops_settings: !include devops_configs/external_haproxy.yaml
|
||||||
|
cluster_template: &environment-config
|
||||||
|
name: env1
|
||||||
|
release: ubuntu
|
||||||
|
settings:
|
||||||
|
components:
|
||||||
|
sahara: false
|
||||||
|
murano: false
|
||||||
|
ceilometer: false
|
||||||
|
storages: *storages-config
|
||||||
|
network: *network-config
|
||||||
|
nodes: *nodes
|
Loading…
Reference in New Issue
Block a user