Skip to content

Adjust Adoption OSP Deploy to use ipv4 or ipv6 #2983

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
27 changes: 18 additions & 9 deletions roles/adoption_osp_deploy/tasks/config_files.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,22 +70,31 @@
loop_var: group
label: "{{ group.key }}"

- name: Override network version protocol vars to ipv6
ansible.builtin.set_fact:
network_version: network_v6
ip_version: ip_v6
dns_version: dns_v6
gw_version: gw_v6
prefix_length_version: prefix_length_v6
when: cifmw_networking_env_definition.networks.ctlplane.network_v6 is defined

- name: Generate DeployedServerPortMap field
vars:
_node_instance_net: "{{ cifmw_networking_env_definition.instances[node] }}"
_key_name: "{{ node }}-ctlplane"
_ctlplane_ip: "{{ _node_instance_net.networks.ctlplane.ip_v4 }}"
_ctlplane_ip: "{{ _node_instance_net.networks.ctlplane[ip_version|default('ip_v4')] }}"
_server_port: >-
{%- set port = {_key_name: {}} -%}
{%- set _ = port[_key_name].update({
'fixed_ips': [
{ 'ip_address': _ctlplane_ip }
],
'subnets': [
{'cidr': _ctlplane_net.network_v4}
{'cidr': _ctlplane_net[network_version|default("network_v4")]}
],
'network': {
'tags': [ _ctlplane_net.network_v4 ]
'tags': [ _ctlplane_net[network_version|default("network_v4")] ]
}}) -%}
{{ port }}
ansible.builtin.set_fact:
Expand All @@ -105,14 +114,14 @@
_node_port: >
{%- set nodeport = {node: {}} -%}
{% for network, net_info in _node_instance_net.networks.items() if network != 'ocpbm' %}
{%- set subnet = cifmw_networking_env_definition.networks[network].network_v4 -%}
{%- set subnet = cifmw_networking_env_definition.networks[network][network_version|default("network_v4")] -%}
{%- set network_name = ['storage_mgmt'] if network == 'storagemgmt' else [network] -%}
{%- set network_name = ['internal_api'] if network == 'internalapi' else [network] -%}
{%- set _ = nodeport[node].update(
{
network_name[0]: {
'ip_address': net_info.ip_v4,
'ip_address_uri': net_info.ip_v4,
'ip_address': net_info[ip_version|default("ip_v4")],
'ip_address_uri': net_info[ip_version|default("ip_v4")],
'ip_subnet': subnet
}
}
Expand All @@ -135,8 +144,8 @@
_cloud_domain: "{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}"
_dns_server: >-
{{
(_ctlplane_net.dns_v4 | length > 0) |
ternary(_ctlplane_net.dns_v4, _ctlplane_net.gw_v4)
(_ctlplane_net[dns_version|default("dns_v4")] | length > 0) |
ternary(_ctlplane_net[dns_version|default("dns_v4")], _ctlplane_net[gw_version|default("gw_v4")])
}}
ansible.builtin.set_fact:
_ctlplanenet_attributes:
Expand All @@ -146,7 +155,7 @@
subnets:
ctlplane-subnet:
dns_nameservers: "{{ _dns_server }}"
gateway_ip: "{{ _ctlplane_net.gw_v4 }}"
gateway_ip: "{{ _ctlplane_net[gw_version|default('gw_v4')] }}"

- name: Create new config download file
vars:
Expand Down
6 changes: 3 additions & 3 deletions roles/adoption_osp_deploy/tasks/generate_adoption_vars.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@
vars:
_undercloud_name: "{{ _vm_groups['osp-underclouds'] | first }}"
_undercloud_net: "{{ cifmw_networking_env_definition.instances[_undercloud_name] }}"
_undercloud_ip: "{{ _undercloud_net.networks.ctlplane.ip_v4 }}"
_undercloud_ip: "{{ _undercloud_net.networks.ctlplane[ip_version|default('ip_v4')] }}"
_controller_1_name: "{{ _vm_groups['osp-controllers'] | first }}"
_controller_1_net: "{{ cifmw_networking_env_definition.instances[_controller_1_name] }}"
_controller_1_internalapi_ip: "{{ _controller_1_net.networks.internalapi.ip_v4 }}"
_controller_1_internalapi_ip: "{{ _controller_1_net.networks.internalapi[ip_version|default('ip_v4')] }}"
_compute_1_name: "{{ _vm_groups['osp-computes'] | first }}"
_compute_1_net: "{{ cifmw_networking_env_definition.instances[_compute_1_name] }}"
_compute_1_ip: "{{ _compute_1_net.networks.ctlplane.ip_v4 }}"
_compute_1_ip: "{{ _compute_1_net.networks.ctlplane[ip_version|default('ip_v4')] }}"
ansible.builtin.template:
src: "adoption_vars.yaml.j2"
dest: "{{ ansible_user_dir }}/adoption_vars.yaml"
Expand Down
8 changes: 4 additions & 4 deletions roles/adoption_osp_deploy/tasks/prepare_overcloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -219,12 +219,12 @@
delegate_to: "{{ overcloud_vm }}"
vars:
_node_net: "{{ cifmw_networking_env_definition.instances[overcloud_vm] }}"
_ctlplane_ip: "{{ _node_net.networks.ctlplane.ip_v4 }}"
_ctlplane_ip: "{{ _node_net.networks.ctlplane[ip_version|default('ip_v4')] }}"
_ctlplane_net: "{{ cifmw_networking_env_definition.networks.ctlplane }}"
_dns_server: "{{ _ctlplane_net.dns_v4 }}"
_gateway_ip: "{{ _ctlplane_net.gw_v4 }}"
_dns_server: "{{ _ctlplane_net.[dns_version|default('dns_v4')] }}"
_gateway_ip: "{{ _ctlplane_net[gw_version|default('gw_v4')] }}"
_interface_mtu: "{{ _node_net.networks.ctlplane.mtu }}"
_ctlplane_cidr: "{{ _node_net.networks.ctlplane.prefix_length_v4 }}"
_ctlplane_cidr: "{{ _node_net.networks.ctlplane[prefix_length_version|default('prefix_length_v4')] }}"
ansible.builtin.template:
src: "os_net_config_overcloud.yml.j2"
dest: /etc/os-net-config/tripleo_config.yaml
Expand Down
16 changes: 8 additions & 8 deletions roles/adoption_osp_deploy/tasks/prepare_undercloud.yml
Original file line number Diff line number Diff line change
Expand Up @@ -91,13 +91,13 @@
vars:
_undercloud_name: "{{ _vm_groups['osp-underclouds'] | first }}"
_undercloud_net: "{{ cifmw_networking_env_definition.instances[_undercloud_name] }}"
_ctlplane_ip: "{{ _undercloud_net.networks.ctlplane.ip_v4 }}"
_ctlplane_ip: "{{ _undercloud_net.networks.ctlplane[ip_version|default('ip_v4')] }}"
_ctlplane_vip: "{{ cifmw_adoption_osp_deploy_scenario.undercloud.ctlplane_vip }}"
_ctlplane_net: "{{ cifmw_networking_env_definition.networks.ctlplane }}"
_dns_server: "{{ _ctlplane_net.dns_v4 }}"
_gateway_ip: "{{ _ctlplane_net.gw_v4 }}"
_dns_server: "{{ _ctlplane_net[dns_version|default('dns_v4')] }}"
_gateway_ip: "{{ _ctlplane_net[gw_version|default('gw_v4')] }}"
_interface_mtu: "{{ _undercloud_net.networks.ctlplane.mtu }}"
_ctlplane_cidr: "{{ _undercloud_net.networks.ctlplane.prefix_length_v4 }}"
_ctlplane_cidr: "{{ _undercloud_net.networks.ctlplane[prefix_length_version|default('prefix_length_v4')] }}"
ansible.builtin.template:
src: "os_net_config_undercloud.yml.j2"
dest: /etc/os-net-config/tripleo_config.yaml
Expand All @@ -114,9 +114,9 @@
vars:
_undercloud_name: "{{ _vm_groups['osp-underclouds'] | first }}"
_undercloud_net: "{{ cifmw_networking_env_definition.instances[_undercloud_name] }}"
_undercloud_ip: "{{ _undercloud_net.networks.ctlplane.ip_v4 }}"
_undercloud_net_prefix: "{{ _undercloud_net.networks.ctlplane.prefix_length_v4 }}"
_ctlplane_cidr: "{{ cifmw_networking_env_definition.networks.ctlplane.network_v4 }}"
_undercloud_ip: "{{ _undercloud_net.networks.ctlplane[ip_version|default('ip_v4')] }}"
_undercloud_net_prefix: "{{ _undercloud_net.networks.ctlplane[prefix_length_version|default('prefix_length_v4')] }}"
_ctlplane_cidr: "{{ cifmw_networking_env_definition.networks.ctlplane[network_version|default('network_v4')] }}"
_interface_mtu: "{{ _undercloud_net.networks.ctlplane.mtu }}"
_env_undercloud:
config:
Expand Down Expand Up @@ -152,7 +152,7 @@
value: "{{ _ctlplane_cidr | ansible.utils.nthhost(130) }}"
- section: "ctlplane-subnet"
option: "gateway"
value: "{{ cifmw_networking_env_definition.networks.ctlplane.gw_v4 }}"
value: "{{ cifmw_networking_env_definition.networks.ctlplane[gw_version|default('gw_v4')] }}"
- section: "ctlplane-subnet"
option: "inspection_iprange"
value: "{{ _ctlplane_cidr | ansible.utils.nthhost(200) }},{{ _ctlplane_cidr | ansible.utils.nthhost(220) }}"
Expand Down
16 changes: 8 additions & 8 deletions roles/adoption_osp_deploy/templates/adoption_vars.yaml.j2
Original file line number Diff line number Diff line change
Expand Up @@ -8,22 +8,22 @@ edpm_node_ip: {{ _compute_1_ip }}
edpm_computes: |
{% for compute in _vm_groups['osp-computes'] %}
{% set node_nets = cifmw_networking_env_definition.instances[compute] %}
["{{ compute }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}"]="{{ node_nets.networks.ctlplane.ip_v4 }}"
["{{ compute }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}"]="{{ node_nets.networks.ctlplane[ip_version|default('ip_v4')] }}"
{% endfor %}
{% endif %}

{% if _vm_groups['osp-networkers'] | default([]) | length > 0 %}
edpm_networkers: |
{% for networker in _vm_groups['osp-networkers'] | default([]) %}
{% set node_nets = cifmw_networking_env_definition.instances[networker] %}
["{{ networker }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}"]="{{ node_nets.networks.ctlplane.ip_v4 }}"
["{{ networker }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}"]="{{ node_nets.networks.ctlplane[ip_version|default('ip_v4')] }}"
{% endfor %}
{% endif %}

source_galera_members: |
{% for controller in _vm_groups['osp-controllers'] %}
{% set node_nets = cifmw_networking_env_definition.instances[controller] %}
["{{ controller }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}"]="{{ node_nets.networks.internalapi.ip_v4 }}"
["{{ controller }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}"]="{{ node_nets.networks.internalapi[ip_version|default('ip_v4')] }}"
{% endfor %}

{% if _vm_groups['osp-computes'] | default([]) | length > 0 %}
Expand All @@ -33,10 +33,10 @@ edpm_nodes:
{{ compute }}:
hostName: {{ compute }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}
ansible:
ansibleHost: {{ node_nets.networks.ctlplane.ip_v4 }}
ansibleHost: {{ node_nets.networks.ctlplane[ip_version|default('ip_v4')] }}
networks:
{% for net in node_nets.networks.keys() if net not in cifmw_adoption_osp_deploy_adoption_vars_exclude_nets %}
- fixedIP: {{ node_nets.networks[net].ip_v4 }}
- fixedIP: {{ node_nets.networks[net][ip_version|default('ip_v4')] }}
name: {{ net }}
subnetName: subnet1
{% if net == 'ctlplane' %}
Expand All @@ -53,10 +53,10 @@ edpm_nodes_networker:
{{ networker }}:
hostName: {{ networker }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}
ansible:
ansibleHost: {{ node_nets.networks.ctlplane.ip_v4 }}
ansibleHost: {{ node_nets.networks.ctlplane[ip_version|default('ip_v4')] }}
networks:
{% for net in node_nets.networks.keys() if net not in cifmw_adoption_osp_deploy_adoption_vars_exclude_nets %}
- fixedIP: {{ node_nets.networks[net].ip_v4 }}
- fixedIP: {{ node_nets.networks[net][ip_version|default('ip_v4')] }}
name: {{ net }}
subnetName: subnet1
{% if net == 'ctlplane' %}
Expand All @@ -66,6 +66,6 @@ edpm_nodes_networker:
{% endfor %}
{% endif %}

upstream_dns: {{ cifmw_networking_env_definition.networks.ctlplane.dns_v4 | first }}
upstream_dns: {{ cifmw_networking_env_definition.networks.ctlplane[dns_version|default('dns_v4')] | first }}
os_cloud_name: {{ cifmw_adoption_osp_deploy_scenario.stacks[0].stackname }}
standalone_ip: {{ _undercloud_ip }}
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ network_config:
mtu: {{ net.mtu }}
vlan_id: {{ net.vlan_id }}
addresses:
- ip_netmask: {{ net.ip_v4 }}/{{ net.prefix_length_v4 }}
- ip_netmask: {{ net[ip_version|default('ip_v4')] }}/{{ net[prefix_length_version|default('prefix_length_v4')] }}
routes: []
{% endif %}
{% endfor %}
Expand All @@ -46,7 +46,7 @@ network_config:
- type: ovs_bridge
name: br-baremetal
addresses:
- ip_netmask: {{ net.ip_v4 }}/{{ net.prefix_length_v4 }}
- ip_netmask: {{ net[ip_version|default('ip_v4')] }}/{{ net[prefix_length_version|default('prefix_length_v4')] }}
use_dhcp: false
routes: []
members:
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,14 @@
#jinja2: trim_blocks:True, lstrip_blocks:True
{% if ':' in _ctlplane_ip %}
{% set _ctlplane_ip_cidr = 128 %}
{% else %}
{% set _ctlplane_ip_cidr = 32 %}
{% endif %}
{% if ':' in _ctlplane_vip %}
{% set _ctlplane_vip_cidr = 128 %}
{% else %}
{% set _ctlplane_vip_cidr = 32 %}
{% endif %}
network_config:
- type: ovs_bridge
name: br-ctlplane
Expand All @@ -12,8 +22,8 @@ network_config:
domain: []
addresses:
- ip_netmask: {{ _ctlplane_ip }}/{{ _ctlplane_cidr }}
- ip_netmask: {{ _ctlplane_ip }}/32
- ip_netmask: {{ _ctlplane_vip }}/32
- ip_netmask: {{ _ctlplane_ip }}/{{ _ctlplane_ip_cidr }}
- ip_netmask: {{ _ctlplane_vip }}/{{ _ctlplane_vip_cidr }}
{% if cifmw_adoption_osp_deploy_scenario.undercloud.routes is defined %}
{%- for route in cifmw_adoption_osp_deploy_scenario.undercloud.routes %}
routes:
Expand All @@ -38,8 +48,8 @@ network_config:
mtu: {{ net.mtu }}
vlan_id: {{ net.vlan_id }}
addresses:
- ip_netmask: {{ net.ip_v4 }}/{{ net.prefix_length_v4 }}
- ip_netmask: {{ net.ip_v4.split('.')[:3] | join('.') }}.2/32
- ip_netmask: {{ net[ip_version|default('ip_v4')] }}/{{ net[prefix_length_version|default('prefix_length_v4')] }}
- ip_netmask: {{ net[ip_version|default('ip_v4')].split('.')[:3] | join('.') }}.2/32
Copy link
Contributor

@fyanac fyanac May 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it has a mask /32 for ipv4, I guess it needs /128 for ipv6

routes: []
{% endif %}
{% endfor %}
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,14 @@
{% for node in _vm_groups[group] %}
{% set node_nets = cifmw_networking_env_definition.instances[node] %}
{{ node }}:
ansible_host: {{ node_nets.networks.ctlplane.ip_v4 }}
ansible_host: {{ node_nets.networks.ctlplane[ip_version|default('ip_v4')] }}
canonical_hostname: {{ node }}.{{ cifmw_adoption_osp_deploy_scenario.cloud_domain }}
ctlplane_ip: {{ node_nets.networks.ctlplane.ip_v4 }}
ctlplane_ip: {{ node_nets.networks.ctlplane[ip_version|default('ip_v4')] }}
{% for network_name, net in node_nets.networks.items() %}
{% if 'vlan_id' in net %}
{% set net_name = ['storage_mgmt'] if network_name == 'storagemgmt' else [network_name] %}
{% set net_name = ['internal_api'] if network_name == 'internalapi' else [network_name] %}
{{ net_name[0] }}_ip: {{ net.ip_v4 }}
{{ net_name[0] }}_ip: {{ net[ip_version|default('ip_v4')] }}
{% endif %}
{% endfor %}
{% endfor %}
Expand Down Expand Up @@ -41,6 +41,6 @@ computes:
{% set node_nets = cifmw_networking_env_definition.instances[node] %}
{{ node }}:
ansible_user: tripleo-admin
ansible_host: {{ node_nets.networks.ctlplane.ip_v4 }}
ansible_host: {{ node_nets.networks.ctlplane[ip_version|default('ip_v4')] }}
{% endfor %}
{% endfor %}
Loading