Skip to content

Commit ee01e3e

Browse files
committed
NE-2183: Remove unnecessary LB conditions
1 parent a97bf83 commit ee01e3e

File tree

1 file changed

+34
-37
lines changed

1 file changed

+34
-37
lines changed

enhancements/ingress/add-dns-and-loadbalancer-conditions-to-managed-gateway.md

Lines changed: 34 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,12 @@ title: add-dns-and-loadbalancer-conditions-to-managed-gateway
33
authors:
44
- rikatz
55
reviewers:
6+
- alebedev87
67
- Miciah
78
approvers:
8-
- TBD
9+
- Miciah
910
api-approvers:
10-
- TBD # New conditions on Gateway status
11+
- None
1112
creation-date: 2025-10-21
1213
last-updated: 2025-10-21
1314
tracking-link:
@@ -26,7 +27,7 @@ superseded-by:
2627

2728
This enhancement adds four status conditions to GatewayAPI Gateway resources
2829
managed by OpenShift in the `openshift-ingress` namespace: `DNSManaged`,
29-
`DNSReady`, `LoadBalancerManaged`, and `LoadBalancerReady`.
30+
`DNSReady`, and `LoadBalancerReady`.
3031
These conditions provide visibility into DNS provisioning and cloud LoadBalancer
3132
service status, similar to the existing conditions on OpenShift IngressController
3233
resources. The "Managed" conditions indicate whether OpenShift should manage the
@@ -63,9 +64,8 @@ issues or resource limits.
6364

6465
* Add `DNSManaged` and `DNSReady` conditions to Gateway status that reflect
6566
whether DNS is managed and the state of DNS record provisioning
66-
* Add `LoadBalancerManaged` and `LoadBalancerReady` conditions to Gateway status
67-
that reflect whether LoadBalancer is managed and the state of cloud LoadBalancer
68-
service provisioning
67+
* Add `LoadBalancerReady` conditions to Gateway status that reflect whether
68+
LoadBalancer is managed and the state of cloud LoadBalancer service provisioning
6969
* Implement a two-tier condition model: "Managed" conditions indicate whether
7070
OpenShift should manage the resource, "Ready" conditions indicate whether it is
7171
functioning
@@ -90,15 +90,15 @@ provides visibility only)
9090
## Proposal
9191

9292
This enhancement proposes extending the Gateway status with four new condition
93-
types: `DNSManaged`, `DNSReady`, `LoadBalancerManaged`, and `LoadBalancerReady`.
93+
types: `DNSManaged`, `DNSReady`, and `LoadBalancerReady`.
9494
These conditions will be managed by a new gateway-status controller in the
9595
cluster-ingress-operator and will reflect the current state of DNS record
9696
provisioning and cloud LoadBalancer service provisioning respectively.
9797

9898
The conditions follow a two-tier model:
99-
* **Managed conditions** (`DNSManaged`, `LoadBalancerManaged`): Indicate whether
100-
OpenShift should be managing this aspect of the Gateway based on configuration
101-
(DNS zones, publishing strategy, DNSManagementPolicy, etc.)
99+
* **Managed conditions** (`DNSManaged`): Indicate whether OpenShift should be
100+
managing this aspect of the Gateway based on configuration (DNS zones, publishing
101+
strategy, DNSManagementPolicy, etc.)
102102
* **Ready conditions** (`DNSReady`, `LoadBalancerReady`): Indicate whether the
103103
managed resource is actually functioning correctly
104104

@@ -149,15 +149,13 @@ LoadBalancer services.
149149
6. Cluster Ingress Operator initiates DNS record provisioning through its own dns controller
150150
7. Cluster Ingress Operator dns controller successfully creates DNS records and
151151
updates its status
152-
8. Gateway Status Controller updates Gateway condition `LoadBalancerManaged=True`
153-
with reason "Normal" (LoadBalancer should be managed)
154-
9. Gateway Status Controller updates Gateway condition `LoadBalancerReady=True`
152+
8. Gateway Status Controller updates Gateway condition `LoadBalancerReady=True`
155153
with reason "LoadBalancerProvisioned"
156-
10. Gateway Status Controller updates Gateway condition `DNSManaged=True` with
154+
9. Gateway Status Controller updates Gateway condition `DNSManaged=True` with
157155
reason "Normal" (DNS should be managed)
158-
11. Gateway Status Controller updates Gateway condition `DNSReady=True` with
156+
10. Gateway Status Controller updates Gateway condition `DNSReady=True` with
159157
reason "Normal" (DNS records provisioned successfully)
160-
12. Customer checks Gateway status and sees all four conditions are `True`, confirming the Gateway is fully operational
158+
11. Customer checks Gateway status and sees all four conditions are `True`, confirming the Gateway is fully operational
161159

162160
#### DNS Failure Flow
163161

@@ -186,17 +184,15 @@ reason "Normal"
186184
3. Cloud Provider API fails to provision LoadBalancer (e.g., quota exceeded,
187185
subnet full, invalid configuration)
188186
4. LoadBalancer service remains in Pending state with event describing the error
189-
5. Gateway Status Controller updates Gateway condition `LoadBalancerManaged=True`
190-
(LoadBalancer should be managed, configuration is correct)
191-
6. Gateway Status Controller updates Gateway condition `LoadBalancerReady=False`
187+
5. Gateway Status Controller updates Gateway condition `LoadBalancerReady=False`
192188
with reason `LoadBalancerPending` and error details from service events
193-
7. Cluster Administrator reviews Gateway status and identifies the cloud
189+
6. Cluster Administrator reviews Gateway status and identifies the cloud
194190
infrastructure issue from the `LoadBalancerReady` condition message
195-
8. Cluster Administrator resolves the issue (e.g., increases quota, adjusts VPC
191+
7. Cluster Administrator resolves the issue (e.g., increases quota, adjusts VPC
196192
configuration)
197-
9. Cloud Provider API successfully provisions the LoadBalancer
198-
10. LoadBalancer service status is updated with external IP/hostname
199-
11. Gateway Status Controller updates Gateway condition `LoadBalancerReady=True`
193+
8. Cloud Provider API successfully provisions the LoadBalancer
194+
9. LoadBalancer service status is updated with external IP/hostname
195+
10. Gateway Status Controller updates Gateway condition `LoadBalancerReady=True`
200196
with reason "LoadBalancerProvisioned"
201197

202198

@@ -235,10 +231,10 @@ sequenceDiagram
235231
236232
alt LB Success
237233
Cloud-->>LBSvc: LoadBalancer provisioned (IP/hostname in status.loadBalancer.ingress)
238-
GWStatus->>Gateway: Set LoadBalancerManaged=True, LoadBalancerReady=True (reason: LoadBalancerProvisioned)
234+
GWStatus->>Gateway: Set LoadBalancerReady=True (reason: LoadBalancerProvisioned)
239235
else LB Failure
240236
Cloud-->>LBSvc: Provisioning failed (service events contain error)
241-
GWStatus->>Gateway: Set LoadBalancerManaged=True, LoadBalancerReady=False (reason: LoadBalancerPending)
237+
GWStatus->>Gateway: Set LoadBalancerReady=False (reason: LoadBalancerPending)
242238
end
243239
244240
User->>Gateway: Check status
@@ -325,11 +321,6 @@ publishing strategy is not LoadBalancerService
325321

326322
**LoadBalancer Condition Details:**
327323

328-
*LoadBalancerManaged Condition:*
329-
* Set to `False` with reason `UnsupportedEndpointPublishingStrategy` when the
330-
publishing strategy doesn't require a managed LoadBalancer
331-
* Set to `True` with reason `Normal` when a LoadBalancer service should be managed by OpenShift
332-
333324
*LoadBalancerReady Condition:*
334325
* Set to `False` with reason `ServiceNotFound` when the associated Service
335326
resource cannot be found
@@ -486,6 +477,18 @@ added conditions
486477
This proposal just adds new conditions to Gateway, and don't impact the Gateway
487478
behavior. There is no API or behavior change, so no need to go through graduation criteria
488479

480+
### Dev Preview -> Tech Preview
481+
482+
N/A
483+
484+
### Tech Preview -> GA
485+
486+
N/A
487+
488+
### Removing a deprecated feature
489+
490+
N/A
491+
489492
## Upgrade / Downgrade Strategy
490493

491494
**Upgrade Strategy:**
@@ -578,12 +581,6 @@ This enhancement involves coordination between:
578581
* OpenShift is not managing DNS, so status is unknown
579582
* Check if DNS is supposed to be managed by external system
580583

581-
*Symptom: Gateway conditions show `LoadBalancerManaged=False`*
582-
* Check Gateway status: `oc get gateway <name> -n openshift-ingress -o yaml`
583-
* Review condition reason and message:
584-
- Reason `UnsupportedEndpointPublishingStrategy`: Publishing strategy doesn't require managed LoadBalancer
585-
* Verify publishing strategy configuration is correct for your environment
586-
587584
*Symptom: Gateway conditions show `LoadBalancerReady=False`*
588585
* Check Gateway status: `oc get gateway <name> -n openshift-ingress -o yaml`
589586
* Review condition reason and message:

0 commit comments

Comments
 (0)