gateway api v1.6.2 standard

ListenerSet.spec

Spec defines the desired state of ListenerSet.

2 fields
ListenerSet.spec fields and descriptions
Field / TypeDescription
object[] required

Listeners associated with this ListenerSet. Listeners define logical endpoints that are bound on this referenced parent Gateway's addresses. Listeners in a `Gateway` and their attached `ListenerSets` are concatenated as a list when programming the underlying infrastructure. Each listener name does not need to be unique across the Gateway and ListenerSets. See ListenerEntry.Name for more details. Implementations MUST treat the parent Gateway as having the merged list of all listeners from itself and attached ListenerSets using the following precedence: 1. "parent" Gateway 2. ListenerSet ordered by creation time (oldest first) 3. ListenerSet ordered alphabetically by "{namespace}/{name}". An implementation MAY reject listeners by setting the ListenerEntryStatus `Accepted` condition to False with the Reason `TooManyListeners` If a listener has a conflict, this will be reported in the Status.ListenerEntryStatus setting the `Conflicted` condition to True. Implementations SHOULD be cautious about what information from the parent or siblings are reported to avoid accidentally leaking sensitive information that the child would not otherwise have access to. This can include contents of secrets etc.

  • minItems: 1
  • maxItems: 64
  • x-kubernetes-list-map-keys: ["name"]
  • x-kubernetes-list-type: "map"
  • x-kubernetes-validations: [{"message":"tls must not be specified for protocols ['HTTP', 'TCP', 'UDP']","rule":"self.all(l, l.protocol in ['HTTP', 'TCP', 'UDP'] ? !has(l.tls) : true)"},{"message":"tls mode must be Terminate for protocol HTTPS","rule":"self.all(l, (l.protocol == 'HTTPS' \u0026\u0026 has(l.tls)) ? (l.tls.mode == '' || l.tls.mode == 'Terminate') : true)"},{"message":"tls mode must be set for protocol TLS","rule":"self.all(l, (l.protocol == 'TLS' ? has(l.tls) \u0026\u0026 has(l.tls.mode) \u0026\u0026 l.tls.mode != '' : true))"},{"message":"hostname must not be specified for protocols ['TCP', 'UDP']","rule":"self.all(l, l.protocol in ['TCP', 'UDP'] ? (!has(l.hostname) || l.hostname == '') : true)"},{"message":"Listener name must be unique within the Gateway","rule":"self.all(l1, self.exists_one(l2, l1.name == l2.name))"},{"message":"Combination of port, protocol and hostname must be unique for each listener","rule":"self.all(l1, !has(l1.port) || self.exists_one(l2, has(l2.port) \u0026\u0026 l1.port == l2.port \u0026\u0026 l1.protocol == l2.protocol \u0026\u0026 (has(l1.hostname) \u0026\u0026 has(l2.hostname) ? l1.hostname == l2.hostname : !has(l1.hostname) \u0026\u0026 !has(l2.hostname))))"}]
object required

ParentRef references the Gateway that the listeners are attached to.