|
| 1 | +// Module included in the following assemblies: |
| 2 | +// |
| 3 | +// * networking/ingress_load_balancing/configuring_ingress_cluster_traffic/verifying-gateway-infrastructure-status.adoc |
| 4 | +// |
| 5 | +:_mod-docs-content-type: REFERENCE |
| 6 | +[id="gateway-listener-status-conditions_{context}"] |
| 7 | += Gateway and listener status conditions reference |
| 8 | + |
| 9 | +[role="_abstract"] |
| 10 | +To verify that your gateway is configured in the data plane and ready to route traffic, review its gateway-level and listener-level `status` conditions. A healthy `Gateway` custom resource (CR) reports a status of `True` for its `Accepted` and `Programmed` conditions. |
| 11 | + |
| 12 | +[IMPORTANT] |
| 13 | +==== |
| 14 | +The `Conflicted` listener condition uses negative polarity. This means that a status of `False` indicates a healthy state, while a status of `True` indicates an error. |
| 15 | +==== |
| 16 | + |
| 17 | +.Gateway-level status conditions |
| 18 | +[cols="1,1,3",options="header"] |
| 19 | +|=== |
| 20 | +|Condition |Status |Description and common reasons |
| 21 | + |
| 22 | +|`Accepted` |
| 23 | +|`True` |
| 24 | +|The gateway configuration is valid and working properly. |
| 25 | + |
| 26 | +|`Accepted` |
| 27 | +|`False` |
| 28 | +|The configuration has errors. Common reasons include `ListenersNotValid` (one or more listeners have issues) or `InvalidParameters` (the configuration is invalid). |
| 29 | + |
| 30 | +|`Accepted` |
| 31 | +|`Unknown` |
| 32 | +|The controller has not evaluated the gateway yet. |
| 33 | + |
| 34 | +|`Programmed` |
| 35 | +|`True` |
| 36 | +|The infrastructure is provisioned and the gateway is configured in the data plane, such as a load balancer or proxy. |
| 37 | + |
| 38 | +|`Programmed` |
| 39 | +|`False` |
| 40 | +|Programming failed or the data plane is not ready. Common reasons include `NoResources` (insufficient resources or pods unavailable), `Invalid` (cannot apply to the data plane), or `Pending`. |
| 41 | + |
| 42 | +|`Programmed` |
| 43 | +|`Unknown` |
| 44 | +|Programming is currently in progress. |
| 45 | + |
| 46 | +|`LoadBalancerReady` |
| 47 | +|`True` |
| 48 | +|The cloud load balancer service for the gateway is successfully provisioned. |
| 49 | + |
| 50 | +|`LoadBalancerReady` |
| 51 | +|`False` |
| 52 | +|The load balancer service failed to provision or is pending. Common reasons include `ServiceNotFound`, `LoadBalancerPending`, or `SyncLoadBalancerFailed`. |
| 53 | + |
| 54 | +|`DNSReady` |
| 55 | +|`True` |
| 56 | +|DNS records for all listeners are functioning correctly. |
| 57 | + |
| 58 | +|`DNSReady` |
| 59 | +|`False` |
| 60 | +|One or more listeners have DNS provisioning issues. |
| 61 | +|=== |
| 62 | + |
| 63 | +.Listener-level status conditions |
| 64 | +[cols="1,1,3",options="header"] |
| 65 | +|=== |
| 66 | +|Condition |Status |Description and common reasons |
| 67 | + |
| 68 | +|`Accepted` |
| 69 | +|`True` |
| 70 | +|The listener configuration is valid and working properly. |
| 71 | + |
| 72 | +|`Accepted` |
| 73 | +|`False` |
| 74 | +|The listener configuration has errors. |
| 75 | + |
| 76 | +|`Programmed` |
| 77 | +|`True` |
| 78 | +|The listener is successfully configured in the data plane. |
| 79 | + |
| 80 | +|`Programmed` |
| 81 | +|`False` |
| 82 | +|The listener configuration failed in the data plane. |
| 83 | + |
| 84 | +|`ResolvedRefs` |
| 85 | +|`True` |
| 86 | +|All references, such as TLS certificates, are found and valid. |
| 87 | + |
| 88 | +|`ResolvedRefs` |
| 89 | +|`False` |
| 90 | +|At least one reference is invalid. Common reasons include `InvalidCertificateRef` (a TLS certificate was not found or is invalid) or `RefNotPermitted` (a cross-namespace reference is not allowed). |
| 91 | + |
| 92 | +|`Conflicted` (Negative polarity) |
| 93 | +|`False` |
| 94 | +|Healthy state. There are no conflicts. |
| 95 | + |
| 96 | +|`Conflicted` (Negative polarity) |
| 97 | +|`True` |
| 98 | +|The listener conflicts with another listener. Common reasons include `ProtocolConflict` (multiple listeners on the same port with incompatible protocols) or `HostnameConflict` (overlapping hostnames). |
| 99 | + |
| 100 | +|`DNSReady` |
| 101 | +|`True` |
| 102 | +|The DNS record for this listener's hostname is successfully provisioned in all reported zones. |
| 103 | + |
| 104 | +|`DNSReady` |
| 105 | +|`False` |
| 106 | +|The DNS record failed to provision. Common reasons include `FailedZones`, `NoDNSZones`, or `RecordNotFound`. |
| 107 | + |
| 108 | +|`DNSReady` |
| 109 | +|`Unknown` |
| 110 | +a|The DNS status cannot be determined or is unmanaged. |
| 111 | + |
| 112 | +[NOTE] |
| 113 | +==== |
| 114 | +Listeners without a configured hostname will not have DNS conditions added to their `status`. |
| 115 | +==== |
| 116 | +|=== |
| 117 | + |
| 118 | +.Example `Gateway` CR status output showing a DNS failure on one listener |
| 119 | +[source,yaml] |
| 120 | +---- |
| 121 | +# ... |
| 122 | +status: |
| 123 | + # Gateway-level conditions (LoadBalancer and aggregate DNS status) |
| 124 | + conditions: |
| 125 | + - type: LoadBalancerReady |
| 126 | + status: "True" |
| 127 | + reason: LoadBalancerProvisioned |
| 128 | + message: "The LoadBalancer service is provisioned" |
| 129 | + observedGeneration: 1 |
| 130 | + lastTransitionTime: "2025-01-12T10:00:00Z" |
| 131 | + - type: DNSReady |
| 132 | + status: "False" |
| 133 | + reason: SomeListenersNotReady |
| 134 | + message: "One or more listeners have DNS provisioning issues" |
| 135 | + observedGeneration: 1 |
| 136 | + lastTransitionTime: "2025-01-12T10:00:00Z" |
| 137 | +
|
| 138 | + # Listener-level conditions (DNS status per listener) |
| 139 | + listeners: |
| 140 | + - name: <stage_http> |
| 141 | + conditions: |
| 142 | + - type: DNSReady |
| 143 | + status: "True" |
| 144 | + reason: NoFailedZones |
| 145 | + message: "The record is provisioned in all reported zones." |
| 146 | + observedGeneration: 1 |
| 147 | + lastTransitionTime: "2025-01-12T10:00:00Z" |
| 148 | + - name: <prod_https> |
| 149 | + conditions: |
| 150 | + - type: DNSReady |
| 151 | + status: "False" |
| 152 | + reason: FailedZones |
| 153 | + message: "The record failed to provision in some zones: [<prod.example.com>]" |
| 154 | + observedGeneration: 1 |
| 155 | + lastTransitionTime: "2025-01-12T10:00:00Z" |
| 156 | +---- |
0 commit comments