Skip to content

Commit 67c652c

Browse files
committed
Reorder the deployment steps, based on feed from Robert G.
1 parent 500a0e2 commit 67c652c

1 file changed

Lines changed: 61 additions & 58 deletions

File tree

  • content/cluster-installation/hosted-control-plane/tenant-network

content/cluster-installation/hosted-control-plane/tenant-network/index.md

Lines changed: 61 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,24 @@ Worker nodes (VM's) of the hosted cluster are straightforward: attach them to th
7373
--8<-- "content/cluster-installation/hosted-control-plane/tenant-network/vyos-router-2003.txt"
7474
```
7575

76-
### Ingress Sharding at Hub Cluster
76+
### Deployment sequence (reference)
77+
78+
Three external load balancers appear in this write-up; keep their roles distinct:
79+
80+
| Name | Role |
81+
|------|------|
82+
| `ingress-shared-lb` | Tenant-facing VIPs for OAuth, Konnectivity, Ignition Routes on the **hub** ingress shard |
83+
| `api-lb` | Tenant-facing VIP for the hosted cluster **API** (`APIServer` publishing) |
84+
| `ingress-lb` | Tenant-facing VIP for **hosted cluster** application Routes (`*.apps…`) |
85+
86+
Suggested order:
87+
88+
1. Hub ingress shard + `ingress-shared-lb` + DNS for the three control-plane hostnames: OAuth, Konnectivity, and Ignition
89+
2. Apply `HostedCluster` and `NodePool`.
90+
3. Deploy external load balancer for `api-lb` + API DNS. Based on the NodePorts for the api kubernetes Service, located in hub cluster
91+
4. Deploy external load balancer for `ingress-lb` + wildcard apps DNS. Based on the NodePorts of the ingress kubernetes service, located in hosted cluster.
92+
93+
### Hub ingress shard + `ingress-shared-lb`
7794

7895
* [2.3.4. Ingress sharding in OpenShift Container Platform](https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/ingress_and_load_balancing/configuring-ingress-cluster-traffic#nw-ingress-sharding-concept_configuring-ingress-cluster-traffic-ingress-controller)
7996
* [3.1.3.8.1. Example load balancer configuration for user-provisioned clusters](https://docs.redhat.com/en/documentation/openshift_container_platform/4.21/html/installing_on_vmware_vsphere/user-provisioned-infrastructure)
@@ -111,63 +128,7 @@ oauth.tenant-a.coe.muc.redhat.com. IN A 192.168.203.111
111128
ignition.tenant-a.coe.muc.redhat.com. IN A 192.168.203.111
112129
```
113130

114-
### Deployment sequence (reference)
115-
116-
Three external load balancers appear in this write-up; keep their roles distinct:
117-
118-
| Name | Role |
119-
|------|------|
120-
| `ingress-shared-lb` | Tenant-facing VIPs for OAuth, Konnectivity, Ignition Routes on the **hub** ingress shard |
121-
| `api-lb` | Tenant-facing VIP for the hosted cluster **API** (`APIServer` publishing) |
122-
| `ingress-lb` | Tenant-facing VIP for **hosted cluster** application Routes (`*.apps…`) |
123-
124-
Suggested order: (1) hub ingress shard + `ingress-shared-lb` + DNS for the three control-plane hostnames, (2) `api-lb` + API DNS, (3) `ingress-lb` + wildcard apps DNS, then (4) apply `HostedCluster` and `NodePool`. Adjust if your automation creates services first and you backfill DNS once NodePorts or service endpoints are known.
125-
126-
The following two subsections describe (2) and (3); the hub shard and DNS for OAuth, Konnectivity, and Ignition are covered above.
127-
128-
### Deploy External Load Balancer for API (`api-lb`)
129-
130-
Use an RHEL 9 virtual machine with HAProxy.
131-
132-
* Install HAProxy: `dnf install haproxy`
133-
* Configure SELinux: `setsebool -P haproxy_connect_any 1`
134-
* Apply the example `haproxy` configuration (update ports to match your environment)
135-
* Enable and start HAProxy: `systemctl enable --now haproxy`
136-
137-
??? example "HAProxy config"
138-
139-
```shell
140-
--8<-- "content/cluster-installation/hosted-control-plane/tenant-network/api-lb.conf"
141-
```
142-
143-
Add DNS record:
144-
145-
```bind
146-
api.tenant-a.coe.muc.redhat.com. IN A 192.168.203.<IP of VM>
147-
```
148-
149-
### Deploy External Load Balancer for Ingress (`ingress-lb`) of hosted cluster
150-
151-
Use an RHEL 9 virtual machine with HAProxy.
152-
153-
* Install HAProxy: `dnf install haproxy`
154-
* Configure SELinux: `setsebool -P haproxy_connect_any 1`
155-
* Apply the example `haproxy` configuration (update ports to match your environment)
156-
* Enable and start HAProxy: `systemctl enable --now haproxy`
157-
158-
??? example "HAProxy config"
159-
160-
```shell
161-
--8<-- "content/cluster-installation/hosted-control-plane/tenant-network/ingress-lb.conf"
162-
```
163-
164-
Add DNS record:
165-
166-
```bind
167-
*.apps.tenant-a.coe.muc.redhat.com. IN A 192.168.203.<IP of VM>
168-
```
169-
170-
### Start hosted control plane and nodepool
131+
### Apply `HostedCluster` and `NodePool`
171132

172133
```yaml hl_lines="11 43-66" title="HostedCluster"
173134
apiVersion: hypershift.openshift.io/v1beta1
@@ -276,6 +237,48 @@ spec:
276237

277238
1. Attach NodePool VMs to the tenant segment using a user-defined network (UDN) `localnet` attachment (`default/cudn-localnet1-2003` in this lab).
278239

240+
### Deploy external load balancer for (`api-lb`)
241+
242+
Use an RHEL 9 virtual machine with HAProxy.
243+
244+
* Install HAProxy: `dnf install haproxy`
245+
* Configure SELinux: `setsebool -P haproxy_connect_any 1`
246+
* Apply the example `haproxy` configuration (update ports to match your environment)
247+
* Enable and start HAProxy: `systemctl enable --now haproxy`
248+
249+
??? example "HAProxy config"
250+
251+
```shell
252+
--8<-- "content/cluster-installation/hosted-control-plane/tenant-network/api-lb.conf"
253+
```
254+
255+
Add DNS record:
256+
257+
```bind
258+
api.tenant-a.coe.muc.redhat.com. IN A 192.168.203.<IP of VM>
259+
```
260+
261+
### Deploy external load balancer for (`ingress-lb`) of hosted cluster
262+
263+
Use an RHEL 9 virtual machine with HAProxy.
264+
265+
* Install HAProxy: `dnf install haproxy`
266+
* Configure SELinux: `setsebool -P haproxy_connect_any 1`
267+
* Apply the example `haproxy` configuration (update ports to match your environment)
268+
* Enable and start HAProxy: `systemctl enable --now haproxy`
269+
270+
??? example "HAProxy config"
271+
272+
```shell
273+
--8<-- "content/cluster-installation/hosted-control-plane/tenant-network/ingress-lb.conf"
274+
```
275+
276+
Add DNS record:
277+
278+
```bind
279+
*.apps.tenant-a.coe.muc.redhat.com. IN A 192.168.203.<IP of VM>
280+
```
281+
279282
## Open topics
280283

281284
* Disable or constrain cloud provider integration so that Kubernetes `LoadBalancer` Service requests for the hosted cluster are not satisfied by the hub cluster cloud integration unless that is intentional.

0 commit comments

Comments
 (0)