Skip to content

Commit

Permalink
[WIP] Try using ci-bootstrap role from parent job
Browse files Browse the repository at this point in the history
Testing ci-bootstrap with ibm cloud as well.
  • Loading branch information
cescgina committed Aug 16, 2024
1 parent e91ed1c commit 0394efb
Show file tree
Hide file tree
Showing 8 changed files with 150 additions and 249 deletions.
116 changes: 36 additions & 80 deletions ci/playbooks/architecture_crc/prepare-architecture-crc.yml
Original file line number Diff line number Diff line change
@@ -1,76 +1,6 @@
---
- hosts: "{{ cifmw_target_host | default('localhost') }}"
tasks:
- name: Load the networking-info file
register: _networking_info
ansible.builtin.slurp:
src: /etc/ci/env/networking-info.yml

- name: Set networks var
vars:
_read_networking_vars: >-
{{
_networking_info['content'] | b64decode | from_yaml
}}
ansible.builtin.set_fact:
crc_ci_bootstrap_networks_out: "{{ _read_networking_vars['crc_ci_bootstrap_networks_out'] }}"

- name: Construct network mapper patch dict for mtu values
vars:
ansible.builtin.set_fact:
mtus: >-
{{
mtus | default({}) |
combine({ item.key | regex_replace('default', 'ctlplane'): { "mtu": item.value.mtu} })
}}
loop: "{{ crc_ci_bootstrap_networks_out['compute-0'] | dict2items }}"

- name: Set mtu fact to patch networking definition
ansible.builtin.set_fact:
cifmw_networking_mapper_definition_patch_01:
networks: "{{ mtus }}"

- name: Construct interfaces dict
vars:
networks: >-
{{
item.value | dict2items | map(attribute='key')
}}
macs: >-
{{
item.value | dict2items | map(attribute='value.mac')
}}
ansible.builtin.set_fact:
interfaces: >-
{{
interfaces | default({}) | combine(
{ item.key:
networks | zip(macs)
}
)
}}
loop: "{{ crc_ci_bootstrap_networks_out | dict2items }}"

- name: Generate interfaces-info dictionary
ansible.builtin.copy:
dest: "{{ cifmw_basedir }}/parameters/interfaces-info.yml"
content: |
{% for node, net_list in interfaces.items() %}
{{ node }}:
{% for interface in net_list %}
- network: {{ interface[0] }}
mac: "{{ interface[1] }}"
{% endfor%}
{% endfor%}
- name: Call networking_mapper
vars:
cifmw_networking_mapper_interfaces_info_translations:
default:
- ctlplane
ansible.builtin.import_role:
name: networking_mapper

# jgilaber: we need to make sure nncp does not touch the vlans, otherwise
# it'll create them with the same MAC address as the ospbr bridge and that
# causes problems when trying to reach the dnsmasq service from the compute
Expand All @@ -79,18 +9,44 @@
- name: Change vlan interface and connection names
delegate_to: "crc"
become: true
vars:
old_connn_name: "ci-{{ item.name }}-{{ item.vlan }}"
ansible.builtin.shell: |
nmcli con down {{ item.old_conn }}
nmcli con modify {{ item.old_conn }} connection.interface-name {{ item.conn_name }}
nmcli con modify {{ item.old_conn }} connection.id {{ item.conn_name }}
nmcli con up {{ item.conn_name }}
nmcli con down {{ old_connn_name }}
nmcli con modify {{ old_connn_name }} connection.interface-name {{ item.name }}
nmcli con modify {{ old_connn_name }} connection.id {{ item.name }}
nmcli con up {{ item.name }}
loop:
- old_conn: ci-private-network-20
conn_name: internalapi
- old_conn: ci-private-network-21
conn_name: storage
- old_conn: ci-private-network-22
conn_name: tenant
- name: internalapi
vlan: 20
- name: storage
vlan: 21
- name: tenant
vlan: 22

- name: Read os-net-info file
ansible.builtin.slurp:
src: "/etc/ci/env/os-net-info.yml"
register: _ci_bootstrap_os_net_info

- name: Translate os_net_info into interfaces-info
vars:
_ci_bootstrap_os_parsed: "{{ _ci_bootstrap_os_net_info['content'] | b64decode | from_yaml }}"
_ci_bootstrap_macs: "{{ _ci_bootstrap_os_parsed.ci_bootstrap_os_mac_addr_map }}"
ansible.builtin.copy:
dest: "{{ cifmw_basedir }}/parameters/interfaces-info.yml"
content: |
{% for node, net_list in _ci_bootstrap_macs.items() %}
{{ node }}:
{% for net, mac in net_list.items() %}
- network: {{ net }}
mac: {{ mac }}
{% endfor %}
{% endfor %}
- name: Call networking_mapper again to make sure interfaces names are set in the networking enviornment file
ansible.builtin.import_role:
name: networking_mapper

- hosts: computes
tasks:
Expand Down
3 changes: 2 additions & 1 deletion ci/playbooks/architecture_crc/run-architecture-crc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
- "{{ cifmw_basedir }}/parameters"

tasks:
- name: Run networking_mapper to prepare for VA deployment
- name: Run preparation steps for VA deployment in crc
ansible.builtin.command: >
ansible-playbook -i {{ cifmw_basedir }}/artifacts/zuul_inventory.yml
ci/playbooks/architecture_crc/prepare-architecture-crc.yml
Expand All @@ -62,6 +62,7 @@
ansible-playbook -i {{ cifmw_basedir }}/artifacts/zuul_inventory.yml
deploy-edpm.yml
-e cifmw_basedir="{{ cifmw_basedir }}"
-e "@{{ ansible_user_dir }}/ci-framework-data/artifacts/nodepool_params.yml"
{%- if cifmw_extras is defined %}
{%- for extra_vars in cifmw_extras %}
-e "{{ extra_vars }}"
Expand Down
10 changes: 5 additions & 5 deletions ci/playbooks/multinode-customizations.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,23 @@
}}
_crc_default_net_ip: >-
{{
_decoded_net_env.crc_ci_bootstrap_networks_out.crc.default.ip
_decoded_net_env.crc_ci_bootstrap_networks_out.crc[cifmw_crc_default_network | default('default')].ip
}}
block:
- name: Manage name resolution and interfaces
become: true
vars:
_crc_default_iface: >-
{{
_decoded_net_env.crc_ci_bootstrap_networks_out.crc.default.iface
_decoded_net_env.crc_ci_bootstrap_networks_out.crc[cifmw_crc_default_network | default('default')].iface
}}
_crc_default_gw: >-
{{
_decoded_net_env.crc_ci_bootstrap_networks_out.crc.default.gw
_decoded_net_env.crc_ci_bootstrap_networks_out.crc[cifmw_crc_default_network | default('default')].gw
}}
_crc_private_connection_name: >-
{{
_decoded_net_env.crc_ci_bootstrap_networks_out.crc.default.connection
_decoded_net_env.crc_ci_bootstrap_networks_out.crc[cifmw_crc_default_network | default('default')].connection
}}
block:
- name: Ensure crc knows about its second NIC
Expand Down Expand Up @@ -290,7 +290,7 @@
}}
_crc_default_net_ip: >-
{{
_decoded_net_env.crc_ci_bootstrap_networks_out.crc.default.ip |
_decoded_net_env.crc_ci_bootstrap_networks_out.crc[cifmw_crc_default_network | default('default')].ip |
ansible.utils.ipaddr('address')
}}
dns_servers_string: >-
Expand Down
12 changes: 12 additions & 0 deletions ci/playbooks/pre-ci-bootstrap.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,15 @@
ansible.builtin.include_role:
name: networking_mapper
- name: Store nodepool data if defined so we can set mtu depending on provider
when: nodepool is defined
ansible.builtin.copy:
dest: "{{ ansible_user_dir }}/ci-framework-data/artifacts/nodepool_params.yml"
content: |
nodepool:
{{ nodepool | to_nice_yaml | indent(2) }}
mode: '0644'

- name: Run networking_mapper playbook
environment:
ANSIBLE_HOST_KEY_CHECKING: false
Expand All @@ -23,3 +32,6 @@
-i {{ ansible_user_dir }}/ci-framework-data/artifacts/zuul_inventory.yml
-e @scenarios/centos-9/base.yml
-e "@{{ ansible_user_dir }}/ci-framework-data/artifacts/parameters/zuul-params.yml"
{% if nodepool is defined %}
-e "@{{ ansible_user_dir }}/ci-framework-data/artifacts/nodepool_params.yml"
{% endif %}
1 change: 1 addition & 0 deletions docs/source/usage/01_usage.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,7 @@ are shared among multiple roles:
- `cifmw_nolog`: (Bool) Toggle `no_log` value for selected tasks. Defaults to `true` (hiding those logs by default).
- `cifmw_parent_scenario`: (String or List(String)) path to existing scenario/parameter file to inherit from.
- `cifmw_configure_switches`: (Bool) Specifies whether switches should be configured. Computes in `reproducer.yml` playbook. Defaults to `false`.
- `cifmw_crc_default_network`: (String) name of the untagged network used to address DNS on the crc node. Default is `default`.

```{admonition} Words of caution
:class: danger
Expand Down
134 changes: 0 additions & 134 deletions scenarios/reproducers/networking-definition-architecture-crc.yml

This file was deleted.

Loading

0 comments on commit 0394efb

Please sign in to comment.