Skip to content

Commit 995e637

Browse files
author
Matt Pryor
committed
Add documentation for disabling API server FIP
1 parent 58fbf4c commit 995e637

File tree

2 files changed

+30
-3
lines changed

2 files changed

+30
-3
lines changed

api/v1alpha4/openstackcluster_types.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ type OpenStackClusterSpec struct {
8080
// APIServerFloatingIP is the floatingIP which will be associated with the API server.
8181
// The floatingIP will be created if it does not already exist.
8282
// If not specified, a new floatingIP is allocated.
83-
// This field is not used if DisableAPIServerFloatingIP is set.
83+
// This field is not used if DisableAPIServerFloatingIP is set to true.
8484
APIServerFloatingIP string `json:"apiServerFloatingIP,omitempty"`
8585

8686
// APIServerFixedIP is the fixed IP which will be associated with the API server.

docs/book/src/clusteropenstack/configuration.md

Lines changed: 29 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -134,9 +134,11 @@ openstack network list --external
134134

135135
Note: If your openstack cluster does not already have a public network, you should contact your cloud service provider. We will not review how to troubleshoot this here.
136136

137-
## Floating IP
137+
## API server floating IP
138138

139-
A floating IP is automatically created and associated with the load balancer or controller node, but you can specify the floating IP explicitly by `spec.apiServerFloatingIP` of `OpenStackCluster`.
139+
Unless explicitly disabled, a floating IP is automatically created and associated with the load balancer
140+
or controller node. If required, you can specify the floating IP explicitly by `spec.apiServerFloatingIP`
141+
of `OpenStackCluster`.
140142

141143
You have to be able to create a floating IP in your OpenStack in advance. You can create one using,
142144

@@ -146,6 +148,31 @@ openstack floating ip create <public network>
146148

147149
Note: Only user with admin role can create a floating IP with specific IP.
148150

151+
### Disabling the API server floating IP
152+
153+
It is possible to provision a cluster without a floating IP for the API server by setting
154+
`OpenStackCluster.spec.disableAPIServerFloatingIP: true` (the default is `false`). This will
155+
prevent a floating IP from being allocated.
156+
157+
> **WARNING**
158+
>
159+
> If the API server does not have a floating IP, workload clusters will only deploy successfully
160+
> when the management cluster and control plane nodes are on the same network. This can be
161+
> a project-specific network, if the management cluster lives in the same project as the workload
162+
> cluster, or a network that is shared across multiple projects.
163+
>
164+
> In particular, this means that the cluster **cannot** use `OpenStackCluster.spec.nodeCidr`
165+
> to provision a new network for the cluster. Instead, use `OpenStackCluster.spec.network`
166+
> to explicitly specify the network that the management cluster is on.
167+
168+
When the API server floating IP is disabled, it is **not possible** to provision a cluster
169+
without a load balancer without additional configuration (an advanced use-case that is not
170+
documented here). This is because the API server must still have a
171+
[virtual IP](https://en.wikipedia.org/wiki/Virtual_IP_address) that is not associated with
172+
a particular control plane node in order to allow the nodes to change underneath, e.g.
173+
during an upgrade. When the API server has a floating IP, this role is fulfilled by the
174+
floating IP even if there is no load balancer. When the API server does not have a floating
175+
IP, the load balancer virtual IP is used.
149176

150177
## Network Filters
151178

0 commit comments

Comments
 (0)