From 39260d945bd546decc5d6797ece202a958cdfe14 Mon Sep 17 00:00:00 2001 From: Eduardo Olivares Date: Wed, 29 Jan 2025 08:49:09 +0100 Subject: [PATCH] [ci_gen_kustomize_values] BGP controlplane L3 separation templates --- .../common-bgp-edpm-values.yaml.j2 | 33 +++++++------ .../values.yaml.j2 | 4 -- .../values.yaml.j2 | 4 -- .../values.yaml.j2 | 5 ++ .../values.yaml.j2 | 5 ++ .../values.yaml.j2 | 5 ++ .../values.yaml.j2 | 5 ++ .../values.yaml.j2 | 5 ++ .../values.yaml.j2 | 5 ++ .../bgp_dt01/network-values/values.yaml.j2 | 47 +++++++++++++------ 10 files changed, 81 insertions(+), 37 deletions(-) delete mode 100644 roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-compute-nodeset-values/values.yaml.j2 delete mode 100644 roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-networker-nodeset-values/values.yaml.j2 create mode 100644 roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r0-compute-nodeset-values/values.yaml.j2 create mode 100644 roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r0-networker-nodeset-values/values.yaml.j2 create mode 100644 roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r1-compute-nodeset-values/values.yaml.j2 create mode 100644 roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r1-networker-nodeset-values/values.yaml.j2 create mode 100644 roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r2-compute-nodeset-values/values.yaml.j2 create mode 100644 roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r2-networker-nodeset-values/values.yaml.j2 diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2 index b852412c76..3eed78aeca 100644 --- a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2 @@ -1,7 +1,8 @@ # source: bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2 {% set instances_names = [] %} +{% set rack = 'r' ~ rack_number %} {% for _inst in cifmw_networking_env_definition.instances.keys() %} -{% if _inst.startswith(node_type) %} +{% if _inst.startswith('-'.join([rack, node_type])) %} {% set _ = instances_names.append(_inst) %} {% endif %} {% endfor %} @@ -22,34 +23,36 @@ data: edpm_fips_mode: "{{ 'enabled' if cifmw_fips_enabled|default(false)|bool else 'check' }}" timesync_ntp_servers: - hostname: "{{ cifmw_ci_gen_kustomize_values_ntp_srv | default('pool.ntp.org') }}" -{% if cifmw_ci_gen_kustomize_values_sshd_ranges | default([]) | length > 0 %} edpm_sshd_allowed_ranges: -{% for range in cifmw_ci_gen_kustomize_values_sshd_ranges %} +{% set sshd_allowed_range = cifmw_ci_gen_kustomize_values_sshd_ranges | default([]) %} +{% for rack in ['r0', 'r1', 'r2'] %} +{% set _ = sshd_allowed_range.append(cifmw_networking_env_definition.networks['ctlplane' + rack].network_v4) %} +{% endfor %} +{% for range in sshd_allowed_range %} - "{{ range }}" -{% endfor %} -{% endif %} +{% endfor %} nodes: {% for instance in instances_names %} {{ instance }}: ansible: - host: {{ cifmw_networking_env_definition.instances[instance].networks.ctlplane.ip_v4 }} +{% set ctlplane_rack = 'ctlplane' + rack %} + host: {{ cifmw_networking_env_definition.instances[instance].networks[ctlplane_rack].ip_v4 }} {% if original_content.data.nodeset.nodes['edpm-' ~ node_type ~ '-' ~ loop.index0].ansible.ansibleVars is defined %} ansibleVars: {{ original_content.data.nodeset.nodes['edpm-' ~ node_type ~ '-' ~ loop.index0].ansible.ansibleVars }} {% endif %} hostName: {{ instance }} networks: {% for net in cifmw_networking_env_definition.instances[instance].networks.keys() %} -{% if net is not match('storagemgmt') %} - - name: {{ net }} - subnetName: subnet1 -{% if net is match('ctlplane') %} +{% if 'storagemgmt' not in net %} + - name: {{ net if net != ctlplane_rack else 'ctlplane' }} + subnetName: {{ 'subnet1' if net != ctlplane_rack else 'subnet' ~ rack_number }} +{% if 'ctlplane' in net %} defaultRoute: true - fixedIP: {{ cifmw_networking_env_definition.instances[instance].networks.ctlplane.ip_v4 }} + fixedIP: {{ cifmw_networking_env_definition.instances[instance].networks[ctlplane_rack].ip_v4 }} {% endif %} {% endif %} {% endfor %} -{% set rack_number = instance.split('-') | last %} -{% set peer_suffix = 1 if instance.startswith('compute') else 5 %} +{% set peer_suffix = 1 if 'compute' in instance else 5 %} - name: BgpNet0 subnetName: subnet{{ rack_number }} fixedIP: 100.64.{{ rack_number }}.{{ peer_suffix + 1 }} @@ -58,8 +61,8 @@ data: fixedIP: 100.65.{{ rack_number }}.{{ peer_suffix + 1 }} - name: BgpMainNet subnetName: subnet{{ rack_number }} - fixedIP: 172.30.{{ rack_number }}.{{ peer_suffix + 1 }} + fixedIP: 99.99.{{ rack_number }}.{{ peer_suffix + 1 }} - name: BgpMainNetV6 subnetName: subnet{{ rack_number }} - fixedIP: f00d:f00d:f00d:f00d:f00d:f00d:f00d:00{{ (rack_number | int) + 1 }}{{ 2 if instance.startswith('compute') else 3 }} + fixedIP: f00d:f00d:f00d:f00d:f00d:f00d:f00d:00{{ (rack_number | int) + 1 }}{{ 2 if 'compute' in instance else 3 }} {% endfor %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-compute-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-compute-nodeset-values/values.yaml.j2 deleted file mode 100644 index 486955099a..0000000000 --- a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-compute-nodeset-values/values.yaml.j2 +++ /dev/null @@ -1,4 +0,0 @@ ---- -# source: bgp_dt01/edpm-compute-nodeset-values/values.yaml.j2 -{% set node_type = "compute" %} -{% include 'templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-networker-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-networker-nodeset-values/values.yaml.j2 deleted file mode 100644 index 9bb02f3ce9..0000000000 --- a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-networker-nodeset-values/values.yaml.j2 +++ /dev/null @@ -1,4 +0,0 @@ ---- -# source: bgp_dt01/edpm-networker-nodeset-values/values.yaml.j2 -{% set node_type = "networker" %} -{% include 'templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r0-compute-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r0-compute-nodeset-values/values.yaml.j2 new file mode 100644 index 0000000000..bfcfbad3f6 --- /dev/null +++ b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r0-compute-nodeset-values/values.yaml.j2 @@ -0,0 +1,5 @@ +--- +# source: bgp_dt01/edpm-r0-compute-nodeset-values/values.yaml.j2 +{% set node_type = "compute" %} +{% set rack_number = 0 %} +{% include 'templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r0-networker-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r0-networker-nodeset-values/values.yaml.j2 new file mode 100644 index 0000000000..9ef897aba8 --- /dev/null +++ b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r0-networker-nodeset-values/values.yaml.j2 @@ -0,0 +1,5 @@ +--- +# source: bgp_dt01/edpm-r0-networker-nodeset-values/values.yaml.j2 +{% set node_type = "networker" %} +{% set rack_number = 0 %} +{% include 'templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r1-compute-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r1-compute-nodeset-values/values.yaml.j2 new file mode 100644 index 0000000000..cb32addf61 --- /dev/null +++ b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r1-compute-nodeset-values/values.yaml.j2 @@ -0,0 +1,5 @@ +--- +# source: bgp_dt01/edpm-r1-compute-nodeset-values/values.yaml.j2 +{% set node_type = "compute" %} +{% set rack_number = 1 %} +{% include 'templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r1-networker-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r1-networker-nodeset-values/values.yaml.j2 new file mode 100644 index 0000000000..09d70592d9 --- /dev/null +++ b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r1-networker-nodeset-values/values.yaml.j2 @@ -0,0 +1,5 @@ +--- +# source: bgp_dt01/edpm-r1-networker-nodeset-values/values.yaml.j2 +{% set node_type = "networker" %} +{% set rack_number = 1 %} +{% include 'templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r2-compute-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r2-compute-nodeset-values/values.yaml.j2 new file mode 100644 index 0000000000..aee507177f --- /dev/null +++ b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r2-compute-nodeset-values/values.yaml.j2 @@ -0,0 +1,5 @@ +--- +# source: bgp_dt01/edpm-r2-compute-nodeset-values/values.yaml.j2 +{% set node_type = "compute" %} +{% set rack_number = 2 %} +{% include 'templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r2-networker-nodeset-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r2-networker-nodeset-values/values.yaml.j2 new file mode 100644 index 0000000000..b4f8a5fccd --- /dev/null +++ b/roles/ci_gen_kustomize_values/templates/bgp_dt01/edpm-r2-networker-nodeset-values/values.yaml.j2 @@ -0,0 +1,5 @@ +--- +# source: bgp_dt01/edpm-r2-networker-nodeset-values/values.yaml.j2 +{% set node_type = "networker" %} +{% set rack_number = 2 %} +{% include 'templates/bgp_dt01/edpm-common-nodeset-values/common-bgp-edpm-values.yaml.j2' %} diff --git a/roles/ci_gen_kustomize_values/templates/bgp_dt01/network-values/values.yaml.j2 b/roles/ci_gen_kustomize_values/templates/bgp_dt01/network-values/values.yaml.j2 index 23a0c0439c..37efadd534 100644 --- a/roles/ci_gen_kustomize_values/templates/bgp_dt01/network-values/values.yaml.j2 +++ b/roles/ci_gen_kustomize_values/templates/bgp_dt01/network-values/values.yaml.j2 @@ -52,7 +52,7 @@ data: {% endfor %} {% for network in cifmw_networking_env_definition.networks.values() %} -{% set ns.lb_tools = {} %} +{% set ns.lb_tools = {} %} {{ network.network_name }}: dnsDomain: {{ network.search_domain }} {% if network.tools is defined and network.tools.keys() | length > 0 %} @@ -62,19 +62,38 @@ data: {% set _ = ns.lb_tools.update({tool: []}) %} {% endif %} {% endfor %} +{% if network.network_name != 'ctlplane' %} - allocationRanges: -{% for range in network.tools.netconfig.ipv4_ranges %} +{% for range in network.tools.netconfig.ipv4_ranges %} - end: {{ range.end }} start: {{ range.start }} -{% endfor %} +{% endfor %} cidr: {{ network.network_v4 }} {% if network.gw_v4 is defined %} gateway: {{ network.gw_v4 }} {% endif %} name: subnet1 -{% if network.vlan_id is defined %} +{% if network.vlan_id is defined %} vlan: {{ network.vlan_id }} -{% endif %} +{% endif %} +{% else %} +{% for rack in ['r0', 'r1', 'r2'] %} +{% set rack_subnet = cifmw_networking_env_definition.networks[network.network_name + rack] %} + - allocationRanges: +{% for range in rack_subnet.tools.netconfig.ipv4_ranges %} + - end: {{ range.end }} + start: {{ range.start }} +{% endfor %} + cidr: {{ rack_subnet.network_v4 }} +{% if rack_subnet.gw_v4 is defined %} + gateway: {{ rack_subnet.gw_v4 }} +{% endif %} + name: {{ 'subnet' ~ loop.index0 }} +{% if rack_subnet.vlan_id is defined %} + vlan: {{ rack_subnet.vlan_id }} +{% endif %} +{% endfor %} +{% endif %} {% if ns.lb_tools | length > 0 %} lb_addresses: {% for tool in ns.lb_tools.keys() %} @@ -107,19 +126,18 @@ data: { "cniVersion": "0.3.1", "name": "{{ network.network_name }}", -{% if network.network_name == "octavia" %} "type": "bridge", -{% else %} - "type": "macvlan", -{% endif %} + "isDefaultGateway": true, + "isGateway": true, + "forceAddress": false, + "ipMasq": true, + "hairpinMode": true, {% if network.network_name == "octavia" %} "bridge": "octbr", -{% elif network.vlan_id is defined %} - "master": "{{ network.network_name }}", {% elif network.network_name == "ctlplane" %} - "master": "ospbr", + "bridge": "ospbr", {% else %} - "master": "{{ ns.interfaces[network.network_name] }}", + "bridge": "{{ network.network_name }}", {% endif %} "ipam": { "type": "whereabouts", @@ -135,7 +153,8 @@ data: ], {% endif %} "range_start": "{{ network.tools.multus.ipv4_ranges.0.start }}", - "range_end": "{{ network.tools.multus.ipv4_ranges.0.end }}" + "range_end": "{{ network.tools.multus.ipv4_ranges.0.end }}", + "gateway": "{{ network.network_v4 |ansible.utils.nthhost(1) }}" } } {% endif %}