-
Notifications
You must be signed in to change notification settings - Fork 201
WIP ipv6 testing #871
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
WIP ipv6 testing #871
Conversation
|
This also probably needs rebasing on #856 as we can't connect to upstream quay via ipv6 |
|
See #833 for provisioning over IPv6 |
This actually needs to be: export EXTERNAL_SUBNET="fd2e:6f44:5dd8:c956::/120" |
7247290 to
79635f9
Compare
|
When using a custom tag for the image (the ipv6 one), i had to modify 04_setup_ironic.sh file, and change to |
|
Updated config for anyone wanting to replicate testing - note there are local checkouts for metal3-dev-env and baremetal-runtimecfg required, and some manual customization of the images which isn't currently handled by the scripts (see comments below): Also it's necessary to add |
So we can access it via ipv6
Instead of a regex which only accepts ipv4 addresses
Since the oc adm mirror command appears to reject target registries and pullspecs that contain ipv6 addresses[1] we can work around this by using a name instead [1] openshift/oc#239
This is needed to work with ipv6 image, as it doesn't have latest tag and bootstrap tries to use it.
According to the manpage [fd00::] gets expanded to the non link-local address
|
Ok so the DUID stuff works with openshift/machine-config-operator#1375 and I pushed a corresponding update to metal3-io/metal3-dev-env#160 I'm now running with the MCO PR applied locally and This results in the expected leases: The hostname also seems to be set correctly (with no NM manual restart @derekhiggins) |
|
I've been testing this change on my environment and I'm seeing the following issues:
[core@localhost ~]$ hostname -f
localhost
[core@localhost ~]$ sudo systemctl restart NetworkManager
[core@localhost ~]$ hostname -f
master-1.ocp-edge-cluster.qe.lab.redhat.com
grep bind_address /etc/mdns/config.hcl
bind_address = "fd2e:6f44:5dd8:c956::"
[root@master-0 core]# crictl logs 8ba696a5f18a3
I0117 18:03:07.778748 1 run.go:108] Version: machine-config-daemon-4.3.0-201910280117-166-gefc540d6 (efc540d6b210ece75296943113e7b1593d18c950)
I0117 18:03:07.779164 1 run.go:123] KUBERNETES_SERVICE_HOST or KUBERNETES_SERVICE_PORT contain no value, running in standalone mode.
E0117 18:03:07.780507 1 run.go:462] error looking up self for candidate IP 172.22.0.60: lookup _etcd-server-ssl._tcp.ocp-edge-cluster.qe.lab.redhat.com on [fd2e:6f44:5dd8:c956::1]:53: no such host
[root@master-0 core]# cat /etc/resolv.conf
# Generated by NetworkManager
search ocp-edge-cluster.qe.lab.redhat.com
nameserver fd2e:6f44:5dd8:c956::1 |
On RHEL 8, when ifdown is run on a bridge's only (or last up) interface, then the bridge is deleted. However, when ifup is run on the bridge's interface, it is not correspondingly run on the bridge itself. See: https://github.com/fedora-sysv/initscripts/blob/rhel8-branch/network-scripts/ifdown-eth#L144 Since the provisioning interface is bounced with ifup/ifdown after bringing the bridge up, then the bridge itself ends up not existing. This patch adds an additional call to ifup the provisioning bridge after bouncing the interface. Signed-off-by: James Slagle <[email protected]>
Both MIRROR_IMAGES=true and *_LOCAL_IMAGE rely on this image being build so we should build it in both cases. We had only been building it if *_LOCAL_IMAGE was set. Fixes: openshift-metal3#880
This should not be needed since we now prepend the DNS VIP via the MCO, but I'm not clear yet if we should leave this anyway as it stops NetworkManager adding the link-local IP to resolv.conf?
These can get left as the --remove-all-storage doesn't remove them (they're passed via -fw-cfg not strictly owned by the domain).
Default to the values from the installer for ipv4, but we can override like this for ipv6: export CLUSTER_SUBNET="fd01::/48" export CLUSTER_HOST_PREFIX="64" export SERVICE_SUBNET="fd02::/112"
|
@russellb FYI I had a similar commit for the configurable cluster/service networks, when you rebase you'll need to add some variables like: We could perhaps just add the defaults for testing this PR as a WIP commit on this branch if that would be easier? |
This script includes the current set of workarounds needed to get a working etcd cluster.
|
Note: I had to adjust 02_configure_host.sh in order to get the address received on the $INT_IF interface set to the baremetal bridge: @@ -104,9 +101,14 @@ if [ "$MANAGE_INT_BRIDGE" == "y" ]; then
# external access so we need to make sure we maintain dhcp config if its available
if [ "$INT_IF" ]; then
echo -e "DEVICE=$INT_IF\nTYPE=Ethernet\nONBOOT=yes\nNM_CONTROLLED=no\nBRIDGE=baremetal" | sudo dd of=/etc/sysconfig/network-scripts/ifcfg-$INT_IF
- if sudo nmap --script broadcast-dhcp-discover -e $INT_IF | grep "IP Offered" ; then
- grep -q BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-baremetal || (echo -e "\nBOOTPROTO=dhcp\n" | sudo tee -a /etc/sysconfig/network-scripts/ifcfg-baremetal)
- fi
+ if [[ $EXTERNAL_SUBNET =~ .*:.* ]]; then
+ sudo firewall-cmd --zone=libvirt --add-service=dhcpv6-client
+ grep -q BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-baremetal || (echo -e "BOOTPROTO=none\nIPV6INIT=yes\nIPV6_AUTOCONF=yes\nDHCPV6C=yes\nDHCPV6C_OPTIONS='-D LL'\n" | sudo tee -a /etc/sysconfig/network-scripts/ifcfg-baremetal)
+ else
+ if sudo nmap --script broadcast-dhcp-discover -e $INT_IF | grep "IP Offered" ; then
+ grep -q BOOTPROTO /etc/sysconfig/network-scripts/ifcfg-baremetal || (echo -e "\nBOOTPROTO=dhcp\n" | sudo tee -a /etc/sysconfig/network-scripts/ifcfg-baremetal)
+ fi
+ fi
sudo systemctl restart network
fi
fi |
Add a reference config file where we keep track of the settings being used by those testing the IPv6 test release images.
This is a bad example. See issue openshift-metal3#895.
MCO has been updated as of 4.3.0-0.nightly-2020-01-16-123848-ipv6.6 to work around this issue without external workarounds.
The default configuration listens on IPv4 only. With this configuration, it seems to be listening on both IPv4 and IPv6 (localhost), so this should be a safe default in all cases for dev-scripts.
This is handled automatically as of 4.3.0-0.nightly-2020-01-21-205041-ipv6.3
This is no longer needed as of 4.3.0-0.nightly-2020-01-21-205041-ipv6.4
|
The non WIP parts merged via #902 so closing this |
Some WIP to share cc @russellb @derekhiggins
This is using metal3-io/metal3-dev-env#160 in my environment applied to the checkout referenced via METAL3_DEV_ENV.
I also had to set the accept_ra=2 as mentioned in https://goodsquishy.com/upload/4a067f9d9677b6f770c7 - that's not yet handled by the metal3-dev-env PR.
I converted the macs to DUID's by prepending 01: but it sounds like @derekhiggins may have run into issues which needed a manually configured dnsmasq ref https://goodsquishy.com/upload/2ee1a771c2ad31f435ea
We also need the openshift-kni/installer fork rebased to include openshift/installer#2846