github.com/openshift/installer@v1.4.17/docs/user/openstack/deploy_dual_stack_cluster.md (about) 1 # Creating a dual-stack cluster on OpenStack 2 3 ## Table of Contents 4 5 - [Prerequisites](#prerequisites) 6 - [Creating DualStack Networks for the cluster](#creating-dualstack-networks-for-the-cluster) 7 - [Creating DualStack API and Ingress VIPs Ports for the cluster](#creating-dualstack-api-and-ingress-vips-for-the-cluster) 8 - [Deploy OpenShift](#deploy-openshift) 9 10 ## Prerequisites 11 12 * Installation with dual-stack is only allowed when using one OpenStack network with one IPv4 and IPv6 subnet. 13 * API and Ingress VIPs ports needs to pre-created by the user and the addresses specified in the `install-config.yaml`. 14 * Add the IPv6 Subnet to a neutron router to provide router advertisements. 15 * The dualstack network MTU must accomodate the minimun MTU for IPv6, which is 1280, and OVN-Kubernetes encapsulation overhead, which is 100. 16 17 Additional prerequisites are listed at the [OpenStack Platform Customization docs](./customization.md) 18 19 **Note**: Converting a IPv4 single-stack cluster to a dual-network cluster network is not supported by OpenStack. 20 21 ## Creating Dual-Stack Networks for the cluster 22 23 You must create one network and add one IPv4 subnet and another IPv6 subnet with either slaac, stateless or stateful modes. Here is an example: 24 25 ```sh 26 $ openstack network create --project <project-name> --share --external --provider-physical-network <physical-network> --provider-network-type flat dualstack 27 $ openstack subnet create --project <project-name> subnet-v4 --subnet-range 192.168.25.0/24 --dhcp --dns-nameserver <nameserver> --network dualstack 28 $ openstack subnet create --project <project-name> subnet-v6 --subnet-range fd2e:6f44:5dd8:c956::/64 --dhcp --network dualstack --ip-version 6 --ipv6-ra-mode slaac --ipv6-address-mode slaac 29 ``` 30 31 Given the above example uses a provider network, this network can be added to the router external gateway to enable external connectivity and router advertisements with the following command: 32 ```sh 33 $ openstack router set --external-gateway dualstack <router-id> 34 ``` 35 36 ## Creating Dual-Stack API and Ingress VIPs Ports for the cluster 37 38 You must create the API and Ingress VIPs Ports with the following commands: 39 40 ```sh 41 $ openstack port create api --network dualstack 42 $ openstack port create ingress --network dualstack 43 ``` 44 45 ## Deploy OpenShift 46 47 Now that the Networking resources are pre-created you can deploy OpenShift. Here is an example of `install-config.yaml`: 48 49 ```yaml 50 apiVersion: v1 51 baseDomain: mydomain.test 52 compute: 53 - name: worker 54 platform: 55 openstack: 56 type: m1.xlarge 57 replicas: 3 58 controlPlane: 59 name: master 60 platform: 61 openstack: 62 type: m1.xlarge 63 replicas: 3 64 metadata: 65 name: mycluster 66 networking: 67 machineNetwork: 68 - cidr: "192.168.25.0/24" 69 - cidr: "fd2e:6f44:5dd8:c956::/64" 70 clusterNetwork: 71 - cidr: 10.128.0.0/14 72 hostPrefix: 23 73 - cidr: fd01::/48 74 hostPrefix: 64 75 serviceNetwork: 76 - 172.30.0.0/16 77 - fd02::/112 78 platform: 79 openstack: 80 ingressVIPs: ['192.168.25.79', 'fd2e:6f44:5dd8:c956:f816:3eff:fef1:1bad'] 81 apiVIPs: ['192.168.25.199', 'fd2e:6f44:5dd8:c956:f816:3eff:fe78:cf36'] 82 controlPlanePort: 83 fixedIPs: 84 - subnet: 85 name: subnet-v4 86 - subnet: 87 name: subnet-v6 88 network: 89 name: dualstack 90 91 ``` 92 There are important things to note: 93 94 The subnets under `platform.openstack.controlPlanePort.fixedIPs` can contain both id or name. The same applies to the network `platform.openstack.controlPlanePort.network`.