[update] Add complete IPv6 support to workload launch scripts#3616
[update] Add complete IPv6 support to workload launch scripts#3616sathlan wants to merge 1 commit intoopenstack-k8s-operators:mainfrom
Conversation
|
@hjensas Hi, so I've tried to address the fallback with specific IPv6 DNS server or specific IPv4 DNS server. I couldn't find a better variable than (follow up on your question in #3498) |
| done | ||
| else | ||
| echo "Warning: No nameservers found, using public DNS fallback" | ||
| {%- if cifmw_polarion_jump_custom_fields.iprotocol|default("IPv4") == "IPv6" %} |
There was a problem hiding this comment.
I am not sure what else can be used, but I have another comment below.
There was a problem hiding this comment.
I'm now checking cifmw_os_net_setup_config|[public][public_subsnet].ip_version . If it exists and is equal to "6", then I'm switching to IPv6 setup.
b12ea58 to
6bb9431
Compare
Result of the test on an uni04delta ipv6 live setupThis is not working.
cifmw_os_net_setup_config:
- name: public
external: true
shared: false
is_default: true
provider_network_type: flat
provider_physical_network: datacentre
subnets:
- name: public_subnet
cidr: 192.168.122.0/24
allocation_pool_start: 192.168.122.171
allocation_pool_end: 192.168.122.250
gateway_ip: 192.168.122.1
enable_dhcp: true
- name: private
external: false
shared: true
subnets:
- name: private_subnet
cidr: '10.2.0.0/24'
allocation_pool_start: 10.2.0.10
allocation_pool_end: 10.2.0.250
gateway_ip: 10.2.0.1
enable_dhcp: trueThis is confirmed by any Zuul log of any In any case, in meaning that it's either an full Given the scope of this instance creation, which is being able to assert that networking is alive during update; that you can define I'm refactoring the patch along those lines. ===> UPDATE That didn't work because all IPv4 routing tables are empty, meaning there's no way to reach the public network created during
|
6cb6fbc to
ceebb3f
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/ea1f11865cc0493cbaed4cd258d88d3f ✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 59m 52s |
ceebb3f to
c342450
Compare
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/351013ab6ff948c29450f6cf3c2d5fe1 ✔️ openstack-k8s-operators-content-provider SUCCESS in 1h 53m 15s |
dd6e7ea to
98f4abc
Compare
New fixes
|
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/61914a7db9ad441f92f3fd836c2890cc ✔️ openstack-k8s-operators-content-provider SUCCESS in 54m 21s |
ValidatedDeployed The ping test was able to run: This is associated with that VM: It fails because of 13% ping loss, but that is for another issue. Here we can clearly see that we were able to setup the VM and could successfully ping it on its IPv6 address. |
98f4abc to
0c75949
Compare
|
Fix an extra blank line in the |
|
Build failed (check pipeline). Post https://softwarefactory-project.io/zuul/t/rdoproject.org/buildset/c346d5a2cb5e41d6bc1a8ff8d246860a ✔️ openstack-k8s-operators-content-provider SUCCESS in 2h 16m 53s |
|
In reply to @hjensas
Well, we actually want to remove this entirely eventually and move this functionality to the I understand the pain and agree with most point, especially with not a template but only a bash script, but currently, that would required some other refactoring around the all the tasks it's in. I don't think this is worth the time and effort and instead focus on a refactor that leverage the Thanks for the comments. |
We the latest patchset on a full run I found an issue.Switching back to draf. |
RCA of the problem foundI have a local test script but it was missing that option: when run in a real environment I had that error: This come from the fact that in the The fixAdd a default value in the filter chain to support that case. I've check the outcome using my local validation script (with the I also tested locally the case where we only have a |
db25242 to
7e43751
Compare
|
New changes are detected. LGTM label has been removed. |
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
7e43751 to
db16fcb
Compare
Add comprehensive IPv6 support for RHOSO deployments in the update workload launch infrastructure. This enables workload testing on `IPv6` environments that were previously unsupported. Here IPv6-only means that no IPv4 routing is defined at all on the `controller-0` and on the `openstackclient` pod. This does support dual stack `IPv6/IPv4` public network. For `IPv6` we directly attach to the `IPv6` public subnet as there is no `FIP` in `IPv6` OpenStack. To make sure that OVN distribute the `RA` to the `cirros` instance we create a dummy router that create the necessary structure in `ovn`. Limitation: SRIOV validation is not supported in IPv6 only setup. Maintains full backward compatibility with existing IPv4 workflows. Signed-off-by: Sofer Athlan-Guyot <sathlang@redhat.com> Partially-Closes: [OSPCIX-1114](https://issues.redhat.com/browse/OSPCIX-1114)
db16fcb to
61ef30b
Compare
IPv6 Dual-Stack Support for Workload Launch ScriptI had to adjust the network definition of the job (in Dual-Stack Network Allocation IssueWhen dual-stack public networks were introduced (both IPv4 and IPv6 subnets), VM creation failed with Resolution: For Jinja2 Filter SimplificationReplaced complex template-time - {% set ipv6_subnet = cifmw_os_net_setup_config | selectattr('name', 'equalto', 'public') | map(attribute='subnets') | flatten | selectattr('ip_version', 'defined') |
selectattr('ip_version', 'equalto', 6) | first | default(none) %}
+ export IPV6_SUBNET_ID=$(openstack subnet list --network "${EXTERNAL_NET_NAME}" --ip-version 6 -f value -c ID | head -1)
+ export IS_IPV6=$([ -n "${IPV6_SUBNET_ID}" ] && echo "True" || echo "False")This eliminates template complexity and uses direct OpenStack API calls for ping start stop simplification
Status: Waiting for another clean run of the full test.I will report here when the full test is done. |
Tested from start to finish on a testproject environment.The vm is created correctly and ping test is started. There is an high drop rate but this is for another story and not related to that change. |
Add comprehensive IPv6 support for RHOSO deployments in the update
workload launch infrastructure. This enables workload testing on
IPv6environments that were previously unsupported. Here IPv6-onlymeans that no IPv4 routing is defined at all on the
controller-0andon the
openstackclientpod.This does support dual stack
IPv6/IPv4public network.For
IPv6we directly attach to theIPv6public subnet as there isno
FIPinIPv6OpenStack.To make sure that OVN distribute the
RAto thecirrosinstance wecreate a dummy router that create the necessary structure in
ovn.Limitation: SRIOV validation is not supported in IPv6 only setup.
Maintains full backward compatibility with existing IPv4 workflows.
Signed-off-by: Sofer Athlan-Guyot sathlang@redhat.com
Partially-Closes: OSPCIX-1114