[CI] Slim down Masakari job

The Masakari job uses 4 nodes and defaulted to a quite bulky
and not really supported config (MariaDB and RMQ on 4 nodes).
This change slims it down so that we test only HA of Masakari
and hacluster. The other services are deployed single-node.

Additionally, simplify the network group (it does not affect any
other job, the logic was simply overdone there).

Change-Id: I74b315443f79d0d7780907fc785e1a29759c1803
This commit is contained in:
Radosław Piliszek 2021-07-24 17:46:50 +00:00
parent 54eb323b32
commit 7dfbcc71cb

View File

@ -1,7 +1,16 @@
# These initial groups are the only groups required to be modified. The
# additional groups are for more control of the environment.
# NOTE(yoctozepto): In CI we want to test Masakari HA but not of other services,
# to conserve the resources. Hence, we set Masakari groups to use both
# primary and secondary while the parent group (control) uses only primary.
[control]
{% if scenario == 'monasca' %}
{% if scenario == 'masakari' %}
{% for host in hostvars if host in ['primary'] %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
{% endfor %}
{% elif scenario == 'monasca' %}
{% for host in hostvars if host in ['primary', 'secondary1', 'secondary2'] %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
{% endfor %}
@ -11,21 +20,26 @@
{% endfor %}
{% endif %}
{% if scenario == 'monasca' %}
[network:children]
control
# NOTE(yoctozepto): Until we are able to isolate network namespaces in k-a,
# we are forced to separate Pacemaker remotes from full members.
# This is not as bad as it sounds, because it would be enforced in
# non-containerised environments anyway.
# In CI we want Pacemaker remotes to run on ternaries (to test multiple remotes).
[compute]
{% if scenario == 'masakari' %}
{% for host in hostvars if host in ['ternary1', 'ternary2'] %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
{% endfor %}
{% else %}
[network]
{% for host in hostvars %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
{% endfor %}
{% endif %}
[compute]
{% for host in hostvars %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
{% endfor %}
[storage]
{% for host in hostvars %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
@ -126,30 +140,20 @@ storage
control
# NOTE(yoctozepto): Until we are able to isolate network namespaces in k-a,
# we are forced to separate remotes from full members.
# we are forced to separate Pacemaker remotes from full members.
# This is not as bad as it sounds, because it would be enforced in
# non-containerised environments anyway.
#[hacluster:children]
#control
# In CI we want Pacemaker to run on primary and secondary (to test with HA).
[hacluster]
{% for host in hostvars %}
{% if 'ternary' not in host %}
{% if host in ['primary', 'secondary'] %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
{% endif %}
{% endfor %}
# NOTE(yoctozepto): Until we are able to isolate network namespaces in k-a,
# we are forced to separate remotes from full members.
# This is not as bad as it sounds, because it would be enforced in
# non-containerised environments anyway.
#[hacluster-remote:children]
#compute
[hacluster-remote]
{% for host in hostvars %}
{% if 'ternary' in host %}
{{ host }} ansible_host={{ hostvars[host]['ansible_host'] }} ansible_user=kolla ansible_ssh_private_key_file={{ ansible_env.HOME ~ '/.ssh/id_rsa_kolla' }}
{% endif %}
{% endfor %}
[hacluster-remote:children]
compute
[haproxy:children]
network
@ -786,14 +790,18 @@ elasticsearch
[prometheus-blackbox-exporter:children]
monitoring
# NOTE(yoctozepto): In CI we want to test Masakari HA but not of other services,
# to conserve the resources. Hence, we set Masakari groups to use both
# primary and secondary while the parent group (control) uses only primary.
[masakari-api:children]
control
hacluster
[masakari-engine:children]
control
hacluster
[masakari-hostmonitor:children]
control
hacluster
[masakari-instancemonitor:children]
compute