github.com/oam-dev/kubevela@v1.9.11/pkg/velaql/providers/query/testdata/gateway/crds/gateway.networking.k8s.io_gateways.yaml (about) 1 apiVersion: apiextensions.k8s.io/v1 2 kind: CustomResourceDefinition 3 metadata: 4 annotations: 5 api-approved.kubernetes.io: https://github.com/kubernetes-sigs/gateway-api/pull/1538 6 gateway.networking.k8s.io/bundle-version: v0.6.2 7 gateway.networking.k8s.io/channel: standard 8 creationTimestamp: null 9 name: gateways.gateway.networking.k8s.io 10 spec: 11 group: gateway.networking.k8s.io 12 names: 13 categories: 14 - gateway-api 15 kind: Gateway 16 listKind: GatewayList 17 plural: gateways 18 shortNames: 19 - gtw 20 singular: gateway 21 scope: Namespaced 22 versions: 23 - additionalPrinterColumns: 24 - jsonPath: .spec.gatewayClassName 25 name: Class 26 type: string 27 - jsonPath: .status.addresses[*].value 28 name: Address 29 type: string 30 - jsonPath: .status.conditions[?(@.type=="Programmed")].status 31 name: Programmed 32 type: string 33 - jsonPath: .metadata.creationTimestamp 34 name: Age 35 type: date 36 deprecated: true 37 deprecationWarning: The v1alpha2 version of Gateway has been deprecated and will 38 be removed in a future release of the API. Please upgrade to v1beta1. 39 name: v1alpha2 40 schema: 41 openAPIV3Schema: 42 description: Gateway represents an instance of a service-traffic handling 43 infrastructure by binding Listeners to a set of IP addresses. 44 properties: 45 apiVersion: 46 description: 'APIVersion defines the versioned schema of this representation 47 of an object. Servers should convert recognized schemas to the latest 48 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 49 type: string 50 kind: 51 description: 'Kind is a string value representing the REST resource this 52 object represents. Servers may infer this from the endpoint the client 53 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 54 type: string 55 metadata: 56 type: object 57 spec: 58 description: Spec defines the desired state of Gateway. 59 properties: 60 addresses: 61 description: "Addresses requested for this Gateway. This is optional 62 and behavior can depend on the implementation. If a value is set 63 in the spec and the requested address is invalid or unavailable, 64 the implementation MUST indicate this in the associated entry in 65 GatewayStatus.Addresses. \n The Addresses field represents a request 66 for the address(es) on the \"outside of the Gateway\", that traffic 67 bound for this Gateway will use. This could be the IP address or 68 hostname of an external load balancer or other networking infrastructure, 69 or some other address that traffic will be sent to. \n The .listener.hostname 70 field is used to route traffic that has already arrived at the Gateway 71 to the correct in-cluster destination. \n If no Addresses are specified, 72 the implementation MAY schedule the Gateway in an implementation-specific 73 manner, assigning an appropriate set of Addresses. \n The implementation 74 MUST bind all Listeners to every GatewayAddress that it assigns 75 to the Gateway and add a corresponding entry in GatewayStatus.Addresses. 76 \n Support: Extended" 77 items: 78 description: GatewayAddress describes an address that can be bound 79 to a Gateway. 80 properties: 81 type: 82 default: IPAddress 83 description: Type of the address. 84 maxLength: 253 85 minLength: 1 86 pattern: ^Hostname|IPAddress|NamedAddress|[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$ 87 type: string 88 value: 89 description: "Value of the address. The validity of the values 90 will depend on the type and support by the controller. \n 91 Examples: `1.2.3.4`, `128::1`, `my-ip-address`." 92 maxLength: 253 93 minLength: 1 94 type: string 95 required: 96 - value 97 type: object 98 maxItems: 16 99 type: array 100 gatewayClassName: 101 description: GatewayClassName used for this Gateway. This is the name 102 of a GatewayClass resource. 103 maxLength: 253 104 minLength: 1 105 type: string 106 listeners: 107 description: "Listeners associated with this Gateway. Listeners define 108 logical endpoints that are bound on this Gateway's addresses. At 109 least one Listener MUST be specified. \n Each listener in a Gateway 110 must have a unique combination of Hostname, Port, and Protocol. 111 \n An implementation MAY group Listeners by Port and then collapse 112 each group of Listeners into a single Listener if the implementation 113 determines that the Listeners in the group are \"compatible\". An 114 implementation MAY also group together and collapse compatible Listeners 115 belonging to different Gateways. \n For example, an implementation 116 might consider Listeners to be compatible with each other if all 117 of the following conditions are met: \n 1. Either each Listener 118 within the group specifies the \"HTTP\" Protocol or each Listener 119 within the group specifies either the \"HTTPS\" or \"TLS\" Protocol. 120 \n 2. Each Listener within the group specifies a Hostname that is 121 unique within the group. \n 3. As a special case, one Listener within 122 a group may omit Hostname, in which case this Listener matches when 123 no other Listener matches. \n If the implementation does collapse 124 compatible Listeners, the hostname provided in the incoming client 125 request MUST be matched to a Listener to find the correct set of 126 Routes. The incoming hostname MUST be matched using the Hostname 127 field for each Listener in order of most to least specific. That 128 is, exact matches must be processed before wildcard matches. \n 129 If this field specifies multiple Listeners that have the same Port 130 value but are not compatible, the implementation must raise a \"Conflicted\" 131 condition in the Listener status. \n Support: Core" 132 items: 133 description: Listener embodies the concept of a logical endpoint 134 where a Gateway accepts network connections. 135 properties: 136 allowedRoutes: 137 default: 138 namespaces: 139 from: Same 140 description: "AllowedRoutes defines the types of routes that 141 MAY be attached to a Listener and the trusted namespaces where 142 those Route resources MAY be present. \n Although a client 143 request may match multiple route rules, only one rule may 144 ultimately receive the request. Matching precedence MUST be 145 determined in order of the following criteria: \n * The most 146 specific match as defined by the Route type. * The oldest 147 Route based on creation timestamp. For example, a Route with 148 a creation timestamp of \"2020-09-08 01:02:03\" is given precedence 149 over a Route with a creation timestamp of \"2020-09-08 01:02:04\". 150 * If everything else is equivalent, the Route appearing first 151 in alphabetical order (namespace/name) should be given precedence. 152 For example, foo/bar is given precedence over foo/baz. \n 153 All valid rules within a Route attached to this Listener should 154 be implemented. Invalid Route rules can be ignored (sometimes 155 that will mean the full Route). If a Route rule transitions 156 from valid to invalid, support for that Route rule should 157 be dropped to ensure consistency. For example, even if a filter 158 specified by a Route rule is invalid, the rest of the rules 159 within that Route should still be supported. \n Support: Core" 160 properties: 161 kinds: 162 description: "Kinds specifies the groups and kinds of Routes 163 that are allowed to bind to this Gateway Listener. When 164 unspecified or empty, the kinds of Routes selected are 165 determined using the Listener protocol. \n A RouteGroupKind 166 MUST correspond to kinds of Routes that are compatible 167 with the application protocol specified in the Listener's 168 Protocol field. If an implementation does not support 169 or recognize this resource type, it MUST set the \"ResolvedRefs\" 170 condition to False for this Listener with the \"InvalidRouteKinds\" 171 reason. \n Support: Core" 172 items: 173 description: RouteGroupKind indicates the group and kind 174 of a Route resource. 175 properties: 176 group: 177 default: gateway.networking.k8s.io 178 description: Group is the group of the Route. 179 maxLength: 253 180 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 181 type: string 182 kind: 183 description: Kind is the kind of the Route. 184 maxLength: 63 185 minLength: 1 186 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ 187 type: string 188 required: 189 - kind 190 type: object 191 maxItems: 8 192 type: array 193 namespaces: 194 default: 195 from: Same 196 description: "Namespaces indicates namespaces from which 197 Routes may be attached to this Listener. This is restricted 198 to the namespace of this Gateway by default. \n Support: 199 Core" 200 properties: 201 from: 202 default: Same 203 description: "From indicates where Routes will be selected 204 for this Gateway. Possible values are: * All: Routes 205 in all namespaces may be used by this Gateway. * Selector: 206 Routes in namespaces selected by the selector may 207 be used by this Gateway. * Same: Only Routes in the 208 same namespace may be used by this Gateway. \n Support: 209 Core" 210 enum: 211 - All 212 - Selector 213 - Same 214 type: string 215 selector: 216 description: "Selector must be specified when From is 217 set to \"Selector\". In that case, only Routes in 218 Namespaces matching this Selector will be selected 219 by this Gateway. This field is ignored for other values 220 of \"From\". \n Support: Core" 221 properties: 222 matchExpressions: 223 description: matchExpressions is a list of label 224 selector requirements. The requirements are ANDed. 225 items: 226 description: A label selector requirement is a 227 selector that contains values, a key, and an 228 operator that relates the key and values. 229 properties: 230 key: 231 description: key is the label key that the 232 selector applies to. 233 type: string 234 operator: 235 description: operator represents a key's relationship 236 to a set of values. Valid operators are 237 In, NotIn, Exists and DoesNotExist. 238 type: string 239 values: 240 description: values is an array of string 241 values. If the operator is In or NotIn, 242 the values array must be non-empty. If the 243 operator is Exists or DoesNotExist, the 244 values array must be empty. This array is 245 replaced during a strategic merge patch. 246 items: 247 type: string 248 type: array 249 required: 250 - key 251 - operator 252 type: object 253 type: array 254 matchLabels: 255 additionalProperties: 256 type: string 257 description: matchLabels is a map of {key,value} 258 pairs. A single {key,value} in the matchLabels 259 map is equivalent to an element of matchExpressions, 260 whose key field is "key", the operator is "In", 261 and the values array contains only "value". The 262 requirements are ANDed. 263 type: object 264 type: object 265 x-kubernetes-map-type: atomic 266 type: object 267 type: object 268 hostname: 269 description: "Hostname specifies the virtual hostname to match 270 for protocol types that define this concept. When unspecified, 271 all hostnames are matched. This field is ignored for protocols 272 that don't require hostname based matching. \n Implementations 273 MUST apply Hostname matching appropriately for each of the 274 following protocols: \n * TLS: The Listener Hostname MUST 275 match the SNI. * HTTP: The Listener Hostname MUST match the 276 Host header of the request. * HTTPS: The Listener Hostname 277 SHOULD match at both the TLS and HTTP protocol layers as described 278 above. If an implementation does not ensure that both the 279 SNI and Host header match the Listener hostname, it MUST clearly 280 document that. \n For HTTPRoute and TLSRoute resources, there 281 is an interaction with the `spec.hostnames` array. When both 282 listener and route specify hostnames, there MUST be an intersection 283 between the values for a Route to be accepted. For more information, 284 refer to the Route specific Hostnames documentation. \n Hostnames 285 that are prefixed with a wildcard label (`*.`) are interpreted 286 as a suffix match. That means that a match for `*.example.com` 287 would match both `test.example.com`, and `foo.test.example.com`, 288 but not `example.com`. \n Support: Core" 289 maxLength: 253 290 minLength: 1 291 pattern: ^(\*\.)?[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 292 type: string 293 name: 294 description: "Name is the name of the Listener. This name MUST 295 be unique within a Gateway. \n Support: Core" 296 maxLength: 253 297 minLength: 1 298 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 299 type: string 300 port: 301 description: "Port is the network port. Multiple listeners may 302 use the same port, subject to the Listener compatibility rules. 303 \n Support: Core" 304 format: int32 305 maximum: 65535 306 minimum: 1 307 type: integer 308 protocol: 309 description: "Protocol specifies the network protocol this listener 310 expects to receive. \n Support: Core" 311 maxLength: 255 312 minLength: 1 313 pattern: ^[a-zA-Z0-9]([-a-zSA-Z0-9]*[a-zA-Z0-9])?$|[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9]+$ 314 type: string 315 tls: 316 description: "TLS is the TLS configuration for the Listener. 317 This field is required if the Protocol field is \"HTTPS\" 318 or \"TLS\". It is invalid to set this field if the Protocol 319 field is \"HTTP\", \"TCP\", or \"UDP\". \n The association 320 of SNIs to Certificate defined in GatewayTLSConfig is defined 321 based on the Hostname field for this listener. \n The GatewayClass 322 MUST use the longest matching SNI out of all available certificates 323 for any TLS handshake. \n Support: Core" 324 properties: 325 certificateRefs: 326 description: "CertificateRefs contains a series of references 327 to Kubernetes objects that contains TLS certificates and 328 private keys. These certificates are used to establish 329 a TLS handshake for requests that match the hostname of 330 the associated listener. \n A single CertificateRef to 331 a Kubernetes Secret has \"Core\" support. Implementations 332 MAY choose to support attaching multiple certificates 333 to a Listener, but this behavior is implementation-specific. 334 \n References to a resource in different namespace are 335 invalid UNLESS there is a ReferenceGrant in the target 336 namespace that allows the certificate to be attached. 337 If a ReferenceGrant does not allow this reference, the 338 \"ResolvedRefs\" condition MUST be set to False for this 339 listener with the \"RefNotPermitted\" reason. \n This 340 field is required to have at least one element when the 341 mode is set to \"Terminate\" (default) and is optional 342 otherwise. \n CertificateRefs can reference to standard 343 Kubernetes resources, i.e. Secret, or implementation-specific 344 custom resources. \n Support: Core - A single reference 345 to a Kubernetes Secret of type kubernetes.io/tls \n Support: 346 Implementation-specific (More than one reference or other 347 resource types)" 348 items: 349 description: "SecretObjectReference identifies an API 350 object including its namespace, defaulting to Secret. 351 \n The API object must be valid in the cluster; the 352 Group and Kind must be registered in the cluster for 353 this reference to be valid. \n References to objects 354 with invalid Group and Kind are not valid, and must 355 be rejected by the implementation, with appropriate 356 Conditions set on the containing object." 357 properties: 358 group: 359 default: "" 360 description: Group is the group of the referent. For 361 example, "gateway.networking.k8s.io". When unspecified 362 or empty string, core API group is inferred. 363 maxLength: 253 364 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 365 type: string 366 kind: 367 default: Secret 368 description: Kind is kind of the referent. For example 369 "Secret". 370 maxLength: 63 371 minLength: 1 372 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ 373 type: string 374 name: 375 description: Name is the name of the referent. 376 maxLength: 253 377 minLength: 1 378 type: string 379 namespace: 380 description: "Namespace is the namespace of the backend. 381 When unspecified, the local namespace is inferred. 382 \n Note that when a namespace is specified, a ReferenceGrant 383 object is required in the referent namespace to 384 allow that namespace's owner to accept the reference. 385 See the ReferenceGrant documentation for details. 386 \n Support: Core" 387 maxLength: 63 388 minLength: 1 389 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ 390 type: string 391 required: 392 - name 393 type: object 394 maxItems: 64 395 type: array 396 mode: 397 default: Terminate 398 description: "Mode defines the TLS behavior for the TLS 399 session initiated by the client. There are two possible 400 modes: \n - Terminate: The TLS session between the downstream 401 client and the Gateway is terminated at the Gateway. This 402 mode requires certificateRefs to be set and contain at 403 least one element. - Passthrough: The TLS session is NOT 404 terminated by the Gateway. This implies that the Gateway 405 can't decipher the TLS stream except for the ClientHello 406 message of the TLS protocol. CertificateRefs field is 407 ignored in this mode. \n Support: Core" 408 enum: 409 - Terminate 410 - Passthrough 411 type: string 412 options: 413 additionalProperties: 414 description: AnnotationValue is the value of an annotation 415 in Gateway API. This is used for validation of maps 416 such as TLS options. This roughly matches Kubernetes 417 annotation validation, although the length validation 418 in that case is based on the entire size of the annotations 419 struct. 420 maxLength: 4096 421 minLength: 0 422 type: string 423 description: "Options are a list of key/value pairs to enable 424 extended TLS configuration for each implementation. For 425 example, configuring the minimum TLS version or supported 426 cipher suites. \n A set of common keys MAY be defined 427 by the API in the future. To avoid any ambiguity, implementation-specific 428 definitions MUST use domain-prefixed names, such as `example.com/my-custom-option`. 429 Un-prefixed names are reserved for key names defined by 430 Gateway API. \n Support: Implementation-specific" 431 maxProperties: 16 432 type: object 433 type: object 434 required: 435 - name 436 - port 437 - protocol 438 type: object 439 maxItems: 64 440 minItems: 1 441 type: array 442 x-kubernetes-list-map-keys: 443 - name 444 x-kubernetes-list-type: map 445 required: 446 - gatewayClassName 447 - listeners 448 type: object 449 status: 450 default: 451 conditions: 452 - lastTransitionTime: "1970-01-01T00:00:00Z" 453 message: Waiting for controller 454 reason: Pending 455 status: Unknown 456 type: Accepted 457 - lastTransitionTime: "1970-01-01T00:00:00Z" 458 message: Waiting for controller 459 reason: Pending 460 status: Unknown 461 type: Programmed 462 description: Status defines the current state of Gateway. 463 properties: 464 addresses: 465 description: Addresses lists the IP addresses that have actually been 466 bound to the Gateway. These addresses may differ from the addresses 467 in the Spec, e.g. if the Gateway automatically assigns an address 468 from a reserved pool. 469 items: 470 description: GatewayAddress describes an address that can be bound 471 to a Gateway. 472 properties: 473 type: 474 default: IPAddress 475 description: Type of the address. 476 maxLength: 253 477 minLength: 1 478 pattern: ^Hostname|IPAddress|NamedAddress|[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$ 479 type: string 480 value: 481 description: "Value of the address. The validity of the values 482 will depend on the type and support by the controller. \n 483 Examples: `1.2.3.4`, `128::1`, `my-ip-address`." 484 maxLength: 253 485 minLength: 1 486 type: string 487 required: 488 - value 489 type: object 490 maxItems: 16 491 type: array 492 conditions: 493 default: 494 - lastTransitionTime: "1970-01-01T00:00:00Z" 495 message: Waiting for controller 496 reason: Pending 497 status: Unknown 498 type: Accepted 499 - lastTransitionTime: "1970-01-01T00:00:00Z" 500 message: Waiting for controller 501 reason: Pending 502 status: Unknown 503 type: Programmed 504 description: "Conditions describe the current conditions of the Gateway. 505 \n Implementations should prefer to express Gateway conditions using 506 the `GatewayConditionType` and `GatewayConditionReason` constants 507 so that operators and tools can converge on a common vocabulary 508 to describe Gateway state. \n Known condition types are: \n * \"Accepted\" 509 * \"Programmed\" * \"Ready\"" 510 items: 511 description: "Condition contains details for one aspect of the current 512 state of this API Resource. --- This struct is intended for direct 513 use as an array at the field path .status.conditions. For example, 514 \n type FooStatus struct{ // Represents the observations of a 515 foo's current state. // Known .status.conditions.type are: \"Available\", 516 \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge 517 // +listType=map // +listMapKey=type Conditions []metav1.Condition 518 `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" 519 protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 520 properties: 521 lastTransitionTime: 522 description: lastTransitionTime is the last time the condition 523 transitioned from one status to another. This should be when 524 the underlying condition changed. If that is not known, then 525 using the time when the API field changed is acceptable. 526 format: date-time 527 type: string 528 message: 529 description: message is a human readable message indicating 530 details about the transition. This may be an empty string. 531 maxLength: 32768 532 type: string 533 observedGeneration: 534 description: observedGeneration represents the .metadata.generation 535 that the condition was set based upon. For instance, if .metadata.generation 536 is currently 12, but the .status.conditions[x].observedGeneration 537 is 9, the condition is out of date with respect to the current 538 state of the instance. 539 format: int64 540 minimum: 0 541 type: integer 542 reason: 543 description: reason contains a programmatic identifier indicating 544 the reason for the condition's last transition. Producers 545 of specific condition types may define expected values and 546 meanings for this field, and whether the values are considered 547 a guaranteed API. The value should be a CamelCase string. 548 This field may not be empty. 549 maxLength: 1024 550 minLength: 1 551 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 552 type: string 553 status: 554 description: status of the condition, one of True, False, Unknown. 555 enum: 556 - "True" 557 - "False" 558 - Unknown 559 type: string 560 type: 561 description: type of condition in CamelCase or in foo.example.com/CamelCase. 562 --- Many .condition.type values are consistent across resources 563 like Available, but because arbitrary conditions can be useful 564 (see .node.status.conditions), the ability to deconflict is 565 important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 566 maxLength: 316 567 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 568 type: string 569 required: 570 - lastTransitionTime 571 - message 572 - reason 573 - status 574 - type 575 type: object 576 maxItems: 8 577 type: array 578 x-kubernetes-list-map-keys: 579 - type 580 x-kubernetes-list-type: map 581 listeners: 582 description: Listeners provide status for each unique listener port 583 defined in the Spec. 584 items: 585 description: ListenerStatus is the status associated with a Listener. 586 properties: 587 attachedRoutes: 588 description: AttachedRoutes represents the total number of Routes 589 that have been successfully attached to this Listener. 590 format: int32 591 type: integer 592 conditions: 593 description: Conditions describe the current condition of this 594 listener. 595 items: 596 description: "Condition contains details for one aspect of 597 the current state of this API Resource. --- This struct 598 is intended for direct use as an array at the field path 599 .status.conditions. For example, \n type FooStatus struct{ 600 // Represents the observations of a foo's current state. 601 // Known .status.conditions.type are: \"Available\", \"Progressing\", 602 and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge 603 // +listType=map // +listMapKey=type Conditions []metav1.Condition 604 `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" 605 protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields 606 }" 607 properties: 608 lastTransitionTime: 609 description: lastTransitionTime is the last time the condition 610 transitioned from one status to another. This should 611 be when the underlying condition changed. If that is 612 not known, then using the time when the API field changed 613 is acceptable. 614 format: date-time 615 type: string 616 message: 617 description: message is a human readable message indicating 618 details about the transition. This may be an empty string. 619 maxLength: 32768 620 type: string 621 observedGeneration: 622 description: observedGeneration represents the .metadata.generation 623 that the condition was set based upon. For instance, 624 if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration 625 is 9, the condition is out of date with respect to the 626 current state of the instance. 627 format: int64 628 minimum: 0 629 type: integer 630 reason: 631 description: reason contains a programmatic identifier 632 indicating the reason for the condition's last transition. 633 Producers of specific condition types may define expected 634 values and meanings for this field, and whether the 635 values are considered a guaranteed API. The value should 636 be a CamelCase string. This field may not be empty. 637 maxLength: 1024 638 minLength: 1 639 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 640 type: string 641 status: 642 description: status of the condition, one of True, False, 643 Unknown. 644 enum: 645 - "True" 646 - "False" 647 - Unknown 648 type: string 649 type: 650 description: type of condition in CamelCase or in foo.example.com/CamelCase. 651 --- Many .condition.type values are consistent across 652 resources like Available, but because arbitrary conditions 653 can be useful (see .node.status.conditions), the ability 654 to deconflict is important. The regex it matches is 655 (dns1123SubdomainFmt/)?(qualifiedNameFmt) 656 maxLength: 316 657 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 658 type: string 659 required: 660 - lastTransitionTime 661 - message 662 - reason 663 - status 664 - type 665 type: object 666 maxItems: 8 667 type: array 668 x-kubernetes-list-map-keys: 669 - type 670 x-kubernetes-list-type: map 671 name: 672 description: Name is the name of the Listener that this status 673 corresponds to. 674 maxLength: 253 675 minLength: 1 676 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 677 type: string 678 supportedKinds: 679 description: "SupportedKinds is the list indicating the Kinds 680 supported by this listener. This MUST represent the kinds 681 an implementation supports for that Listener configuration. 682 \n If kinds are specified in Spec that are not supported, 683 they MUST NOT appear in this list and an implementation MUST 684 set the \"ResolvedRefs\" condition to \"False\" with the \"InvalidRouteKinds\" 685 reason. If both valid and invalid Route kinds are specified, 686 the implementation MUST reference the valid Route kinds that 687 have been specified." 688 items: 689 description: RouteGroupKind indicates the group and kind of 690 a Route resource. 691 properties: 692 group: 693 default: gateway.networking.k8s.io 694 description: Group is the group of the Route. 695 maxLength: 253 696 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 697 type: string 698 kind: 699 description: Kind is the kind of the Route. 700 maxLength: 63 701 minLength: 1 702 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ 703 type: string 704 required: 705 - kind 706 type: object 707 maxItems: 8 708 type: array 709 required: 710 - attachedRoutes 711 - conditions 712 - name 713 - supportedKinds 714 type: object 715 maxItems: 64 716 type: array 717 x-kubernetes-list-map-keys: 718 - name 719 x-kubernetes-list-type: map 720 type: object 721 required: 722 - spec 723 type: object 724 served: true 725 storage: false 726 subresources: 727 status: {} 728 - additionalPrinterColumns: 729 - jsonPath: .spec.gatewayClassName 730 name: Class 731 type: string 732 - jsonPath: .status.addresses[*].value 733 name: Address 734 type: string 735 - jsonPath: .status.conditions[?(@.type=="Programmed")].status 736 name: Programmed 737 type: string 738 - jsonPath: .metadata.creationTimestamp 739 name: Age 740 type: date 741 name: v1beta1 742 schema: 743 openAPIV3Schema: 744 description: Gateway represents an instance of a service-traffic handling 745 infrastructure by binding Listeners to a set of IP addresses. 746 properties: 747 apiVersion: 748 description: 'APIVersion defines the versioned schema of this representation 749 of an object. Servers should convert recognized schemas to the latest 750 internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources' 751 type: string 752 kind: 753 description: 'Kind is a string value representing the REST resource this 754 object represents. Servers may infer this from the endpoint the client 755 submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds' 756 type: string 757 metadata: 758 type: object 759 spec: 760 description: Spec defines the desired state of Gateway. 761 properties: 762 addresses: 763 description: "Addresses requested for this Gateway. This is optional 764 and behavior can depend on the implementation. If a value is set 765 in the spec and the requested address is invalid or unavailable, 766 the implementation MUST indicate this in the associated entry in 767 GatewayStatus.Addresses. \n The Addresses field represents a request 768 for the address(es) on the \"outside of the Gateway\", that traffic 769 bound for this Gateway will use. This could be the IP address or 770 hostname of an external load balancer or other networking infrastructure, 771 or some other address that traffic will be sent to. \n The .listener.hostname 772 field is used to route traffic that has already arrived at the Gateway 773 to the correct in-cluster destination. \n If no Addresses are specified, 774 the implementation MAY schedule the Gateway in an implementation-specific 775 manner, assigning an appropriate set of Addresses. \n The implementation 776 MUST bind all Listeners to every GatewayAddress that it assigns 777 to the Gateway and add a corresponding entry in GatewayStatus.Addresses. 778 \n Support: Extended" 779 items: 780 description: GatewayAddress describes an address that can be bound 781 to a Gateway. 782 properties: 783 type: 784 default: IPAddress 785 description: Type of the address. 786 maxLength: 253 787 minLength: 1 788 pattern: ^Hostname|IPAddress|NamedAddress|[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$ 789 type: string 790 value: 791 description: "Value of the address. The validity of the values 792 will depend on the type and support by the controller. \n 793 Examples: `1.2.3.4`, `128::1`, `my-ip-address`." 794 maxLength: 253 795 minLength: 1 796 type: string 797 required: 798 - value 799 type: object 800 maxItems: 16 801 type: array 802 gatewayClassName: 803 description: GatewayClassName used for this Gateway. This is the name 804 of a GatewayClass resource. 805 maxLength: 253 806 minLength: 1 807 type: string 808 listeners: 809 description: "Listeners associated with this Gateway. Listeners define 810 logical endpoints that are bound on this Gateway's addresses. At 811 least one Listener MUST be specified. \n Each listener in a Gateway 812 must have a unique combination of Hostname, Port, and Protocol. 813 \n An implementation MAY group Listeners by Port and then collapse 814 each group of Listeners into a single Listener if the implementation 815 determines that the Listeners in the group are \"compatible\". An 816 implementation MAY also group together and collapse compatible Listeners 817 belonging to different Gateways. \n For example, an implementation 818 might consider Listeners to be compatible with each other if all 819 of the following conditions are met: \n 1. Either each Listener 820 within the group specifies the \"HTTP\" Protocol or each Listener 821 within the group specifies either the \"HTTPS\" or \"TLS\" Protocol. 822 \n 2. Each Listener within the group specifies a Hostname that is 823 unique within the group. \n 3. As a special case, one Listener within 824 a group may omit Hostname, in which case this Listener matches when 825 no other Listener matches. \n If the implementation does collapse 826 compatible Listeners, the hostname provided in the incoming client 827 request MUST be matched to a Listener to find the correct set of 828 Routes. The incoming hostname MUST be matched using the Hostname 829 field for each Listener in order of most to least specific. That 830 is, exact matches must be processed before wildcard matches. \n 831 If this field specifies multiple Listeners that have the same Port 832 value but are not compatible, the implementation must raise a \"Conflicted\" 833 condition in the Listener status. \n Support: Core" 834 items: 835 description: Listener embodies the concept of a logical endpoint 836 where a Gateway accepts network connections. 837 properties: 838 allowedRoutes: 839 default: 840 namespaces: 841 from: Same 842 description: "AllowedRoutes defines the types of routes that 843 MAY be attached to a Listener and the trusted namespaces where 844 those Route resources MAY be present. \n Although a client 845 request may match multiple route rules, only one rule may 846 ultimately receive the request. Matching precedence MUST be 847 determined in order of the following criteria: \n * The most 848 specific match as defined by the Route type. * The oldest 849 Route based on creation timestamp. For example, a Route with 850 a creation timestamp of \"2020-09-08 01:02:03\" is given precedence 851 over a Route with a creation timestamp of \"2020-09-08 01:02:04\". 852 * If everything else is equivalent, the Route appearing first 853 in alphabetical order (namespace/name) should be given precedence. 854 For example, foo/bar is given precedence over foo/baz. \n 855 All valid rules within a Route attached to this Listener should 856 be implemented. Invalid Route rules can be ignored (sometimes 857 that will mean the full Route). If a Route rule transitions 858 from valid to invalid, support for that Route rule should 859 be dropped to ensure consistency. For example, even if a filter 860 specified by a Route rule is invalid, the rest of the rules 861 within that Route should still be supported. \n Support: Core" 862 properties: 863 kinds: 864 description: "Kinds specifies the groups and kinds of Routes 865 that are allowed to bind to this Gateway Listener. When 866 unspecified or empty, the kinds of Routes selected are 867 determined using the Listener protocol. \n A RouteGroupKind 868 MUST correspond to kinds of Routes that are compatible 869 with the application protocol specified in the Listener's 870 Protocol field. If an implementation does not support 871 or recognize this resource type, it MUST set the \"ResolvedRefs\" 872 condition to False for this Listener with the \"InvalidRouteKinds\" 873 reason. \n Support: Core" 874 items: 875 description: RouteGroupKind indicates the group and kind 876 of a Route resource. 877 properties: 878 group: 879 default: gateway.networking.k8s.io 880 description: Group is the group of the Route. 881 maxLength: 253 882 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 883 type: string 884 kind: 885 description: Kind is the kind of the Route. 886 maxLength: 63 887 minLength: 1 888 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ 889 type: string 890 required: 891 - kind 892 type: object 893 maxItems: 8 894 type: array 895 namespaces: 896 default: 897 from: Same 898 description: "Namespaces indicates namespaces from which 899 Routes may be attached to this Listener. This is restricted 900 to the namespace of this Gateway by default. \n Support: 901 Core" 902 properties: 903 from: 904 default: Same 905 description: "From indicates where Routes will be selected 906 for this Gateway. Possible values are: * All: Routes 907 in all namespaces may be used by this Gateway. * Selector: 908 Routes in namespaces selected by the selector may 909 be used by this Gateway. * Same: Only Routes in the 910 same namespace may be used by this Gateway. \n Support: 911 Core" 912 enum: 913 - All 914 - Selector 915 - Same 916 type: string 917 selector: 918 description: "Selector must be specified when From is 919 set to \"Selector\". In that case, only Routes in 920 Namespaces matching this Selector will be selected 921 by this Gateway. This field is ignored for other values 922 of \"From\". \n Support: Core" 923 properties: 924 matchExpressions: 925 description: matchExpressions is a list of label 926 selector requirements. The requirements are ANDed. 927 items: 928 description: A label selector requirement is a 929 selector that contains values, a key, and an 930 operator that relates the key and values. 931 properties: 932 key: 933 description: key is the label key that the 934 selector applies to. 935 type: string 936 operator: 937 description: operator represents a key's relationship 938 to a set of values. Valid operators are 939 In, NotIn, Exists and DoesNotExist. 940 type: string 941 values: 942 description: values is an array of string 943 values. If the operator is In or NotIn, 944 the values array must be non-empty. If the 945 operator is Exists or DoesNotExist, the 946 values array must be empty. This array is 947 replaced during a strategic merge patch. 948 items: 949 type: string 950 type: array 951 required: 952 - key 953 - operator 954 type: object 955 type: array 956 matchLabels: 957 additionalProperties: 958 type: string 959 description: matchLabels is a map of {key,value} 960 pairs. A single {key,value} in the matchLabels 961 map is equivalent to an element of matchExpressions, 962 whose key field is "key", the operator is "In", 963 and the values array contains only "value". The 964 requirements are ANDed. 965 type: object 966 type: object 967 x-kubernetes-map-type: atomic 968 type: object 969 type: object 970 hostname: 971 description: "Hostname specifies the virtual hostname to match 972 for protocol types that define this concept. When unspecified, 973 all hostnames are matched. This field is ignored for protocols 974 that don't require hostname based matching. \n Implementations 975 MUST apply Hostname matching appropriately for each of the 976 following protocols: \n * TLS: The Listener Hostname MUST 977 match the SNI. * HTTP: The Listener Hostname MUST match the 978 Host header of the request. * HTTPS: The Listener Hostname 979 SHOULD match at both the TLS and HTTP protocol layers as described 980 above. If an implementation does not ensure that both the 981 SNI and Host header match the Listener hostname, it MUST clearly 982 document that. \n For HTTPRoute and TLSRoute resources, there 983 is an interaction with the `spec.hostnames` array. When both 984 listener and route specify hostnames, there MUST be an intersection 985 between the values for a Route to be accepted. For more information, 986 refer to the Route specific Hostnames documentation. \n Hostnames 987 that are prefixed with a wildcard label (`*.`) are interpreted 988 as a suffix match. That means that a match for `*.example.com` 989 would match both `test.example.com`, and `foo.test.example.com`, 990 but not `example.com`. \n Support: Core" 991 maxLength: 253 992 minLength: 1 993 pattern: ^(\*\.)?[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 994 type: string 995 name: 996 description: "Name is the name of the Listener. This name MUST 997 be unique within a Gateway. \n Support: Core" 998 maxLength: 253 999 minLength: 1 1000 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 1001 type: string 1002 port: 1003 description: "Port is the network port. Multiple listeners may 1004 use the same port, subject to the Listener compatibility rules. 1005 \n Support: Core" 1006 format: int32 1007 maximum: 65535 1008 minimum: 1 1009 type: integer 1010 protocol: 1011 description: "Protocol specifies the network protocol this listener 1012 expects to receive. \n Support: Core" 1013 maxLength: 255 1014 minLength: 1 1015 pattern: ^[a-zA-Z0-9]([-a-zSA-Z0-9]*[a-zA-Z0-9])?$|[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9]+$ 1016 type: string 1017 tls: 1018 description: "TLS is the TLS configuration for the Listener. 1019 This field is required if the Protocol field is \"HTTPS\" 1020 or \"TLS\". It is invalid to set this field if the Protocol 1021 field is \"HTTP\", \"TCP\", or \"UDP\". \n The association 1022 of SNIs to Certificate defined in GatewayTLSConfig is defined 1023 based on the Hostname field for this listener. \n The GatewayClass 1024 MUST use the longest matching SNI out of all available certificates 1025 for any TLS handshake. \n Support: Core" 1026 properties: 1027 certificateRefs: 1028 description: "CertificateRefs contains a series of references 1029 to Kubernetes objects that contains TLS certificates and 1030 private keys. These certificates are used to establish 1031 a TLS handshake for requests that match the hostname of 1032 the associated listener. \n A single CertificateRef to 1033 a Kubernetes Secret has \"Core\" support. Implementations 1034 MAY choose to support attaching multiple certificates 1035 to a Listener, but this behavior is implementation-specific. 1036 \n References to a resource in different namespace are 1037 invalid UNLESS there is a ReferenceGrant in the target 1038 namespace that allows the certificate to be attached. 1039 If a ReferenceGrant does not allow this reference, the 1040 \"ResolvedRefs\" condition MUST be set to False for this 1041 listener with the \"RefNotPermitted\" reason. \n This 1042 field is required to have at least one element when the 1043 mode is set to \"Terminate\" (default) and is optional 1044 otherwise. \n CertificateRefs can reference to standard 1045 Kubernetes resources, i.e. Secret, or implementation-specific 1046 custom resources. \n Support: Core - A single reference 1047 to a Kubernetes Secret of type kubernetes.io/tls \n Support: 1048 Implementation-specific (More than one reference or other 1049 resource types)" 1050 items: 1051 description: "SecretObjectReference identifies an API 1052 object including its namespace, defaulting to Secret. 1053 \n The API object must be valid in the cluster; the 1054 Group and Kind must be registered in the cluster for 1055 this reference to be valid. \n References to objects 1056 with invalid Group and Kind are not valid, and must 1057 be rejected by the implementation, with appropriate 1058 Conditions set on the containing object." 1059 properties: 1060 group: 1061 default: "" 1062 description: Group is the group of the referent. For 1063 example, "gateway.networking.k8s.io". When unspecified 1064 or empty string, core API group is inferred. 1065 maxLength: 253 1066 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 1067 type: string 1068 kind: 1069 default: Secret 1070 description: Kind is kind of the referent. For example 1071 "Secret". 1072 maxLength: 63 1073 minLength: 1 1074 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ 1075 type: string 1076 name: 1077 description: Name is the name of the referent. 1078 maxLength: 253 1079 minLength: 1 1080 type: string 1081 namespace: 1082 description: "Namespace is the namespace of the backend. 1083 When unspecified, the local namespace is inferred. 1084 \n Note that when a namespace is specified, a ReferenceGrant 1085 object is required in the referent namespace to 1086 allow that namespace's owner to accept the reference. 1087 See the ReferenceGrant documentation for details. 1088 \n Support: Core" 1089 maxLength: 63 1090 minLength: 1 1091 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?$ 1092 type: string 1093 required: 1094 - name 1095 type: object 1096 maxItems: 64 1097 type: array 1098 mode: 1099 default: Terminate 1100 description: "Mode defines the TLS behavior for the TLS 1101 session initiated by the client. There are two possible 1102 modes: \n - Terminate: The TLS session between the downstream 1103 client and the Gateway is terminated at the Gateway. This 1104 mode requires certificateRefs to be set and contain at 1105 least one element. - Passthrough: The TLS session is NOT 1106 terminated by the Gateway. This implies that the Gateway 1107 can't decipher the TLS stream except for the ClientHello 1108 message of the TLS protocol. CertificateRefs field is 1109 ignored in this mode. \n Support: Core" 1110 enum: 1111 - Terminate 1112 - Passthrough 1113 type: string 1114 options: 1115 additionalProperties: 1116 description: AnnotationValue is the value of an annotation 1117 in Gateway API. This is used for validation of maps 1118 such as TLS options. This roughly matches Kubernetes 1119 annotation validation, although the length validation 1120 in that case is based on the entire size of the annotations 1121 struct. 1122 maxLength: 4096 1123 minLength: 0 1124 type: string 1125 description: "Options are a list of key/value pairs to enable 1126 extended TLS configuration for each implementation. For 1127 example, configuring the minimum TLS version or supported 1128 cipher suites. \n A set of common keys MAY be defined 1129 by the API in the future. To avoid any ambiguity, implementation-specific 1130 definitions MUST use domain-prefixed names, such as `example.com/my-custom-option`. 1131 Un-prefixed names are reserved for key names defined by 1132 Gateway API. \n Support: Implementation-specific" 1133 maxProperties: 16 1134 type: object 1135 type: object 1136 required: 1137 - name 1138 - port 1139 - protocol 1140 type: object 1141 maxItems: 64 1142 minItems: 1 1143 type: array 1144 x-kubernetes-list-map-keys: 1145 - name 1146 x-kubernetes-list-type: map 1147 required: 1148 - gatewayClassName 1149 - listeners 1150 type: object 1151 status: 1152 default: 1153 conditions: 1154 - lastTransitionTime: "1970-01-01T00:00:00Z" 1155 message: Waiting for controller 1156 reason: Pending 1157 status: Unknown 1158 type: Accepted 1159 - lastTransitionTime: "1970-01-01T00:00:00Z" 1160 message: Waiting for controller 1161 reason: Pending 1162 status: Unknown 1163 type: Programmed 1164 description: Status defines the current state of Gateway. 1165 properties: 1166 addresses: 1167 description: Addresses lists the IP addresses that have actually been 1168 bound to the Gateway. These addresses may differ from the addresses 1169 in the Spec, e.g. if the Gateway automatically assigns an address 1170 from a reserved pool. 1171 items: 1172 description: GatewayAddress describes an address that can be bound 1173 to a Gateway. 1174 properties: 1175 type: 1176 default: IPAddress 1177 description: Type of the address. 1178 maxLength: 253 1179 minLength: 1 1180 pattern: ^Hostname|IPAddress|NamedAddress|[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*\/[A-Za-z0-9\/\-._~%!$&'()*+,;=:]+$ 1181 type: string 1182 value: 1183 description: "Value of the address. The validity of the values 1184 will depend on the type and support by the controller. \n 1185 Examples: `1.2.3.4`, `128::1`, `my-ip-address`." 1186 maxLength: 253 1187 minLength: 1 1188 type: string 1189 required: 1190 - value 1191 type: object 1192 maxItems: 16 1193 type: array 1194 conditions: 1195 default: 1196 - lastTransitionTime: "1970-01-01T00:00:00Z" 1197 message: Waiting for controller 1198 reason: Pending 1199 status: Unknown 1200 type: Accepted 1201 - lastTransitionTime: "1970-01-01T00:00:00Z" 1202 message: Waiting for controller 1203 reason: Pending 1204 status: Unknown 1205 type: Programmed 1206 description: "Conditions describe the current conditions of the Gateway. 1207 \n Implementations should prefer to express Gateway conditions using 1208 the `GatewayConditionType` and `GatewayConditionReason` constants 1209 so that operators and tools can converge on a common vocabulary 1210 to describe Gateway state. \n Known condition types are: \n * \"Accepted\" 1211 * \"Programmed\" * \"Ready\"" 1212 items: 1213 description: "Condition contains details for one aspect of the current 1214 state of this API Resource. --- This struct is intended for direct 1215 use as an array at the field path .status.conditions. For example, 1216 \n type FooStatus struct{ // Represents the observations of a 1217 foo's current state. // Known .status.conditions.type are: \"Available\", 1218 \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge 1219 // +listType=map // +listMapKey=type Conditions []metav1.Condition 1220 `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" 1221 protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 1222 properties: 1223 lastTransitionTime: 1224 description: lastTransitionTime is the last time the condition 1225 transitioned from one status to another. This should be when 1226 the underlying condition changed. If that is not known, then 1227 using the time when the API field changed is acceptable. 1228 format: date-time 1229 type: string 1230 message: 1231 description: message is a human readable message indicating 1232 details about the transition. This may be an empty string. 1233 maxLength: 32768 1234 type: string 1235 observedGeneration: 1236 description: observedGeneration represents the .metadata.generation 1237 that the condition was set based upon. For instance, if .metadata.generation 1238 is currently 12, but the .status.conditions[x].observedGeneration 1239 is 9, the condition is out of date with respect to the current 1240 state of the instance. 1241 format: int64 1242 minimum: 0 1243 type: integer 1244 reason: 1245 description: reason contains a programmatic identifier indicating 1246 the reason for the condition's last transition. Producers 1247 of specific condition types may define expected values and 1248 meanings for this field, and whether the values are considered 1249 a guaranteed API. The value should be a CamelCase string. 1250 This field may not be empty. 1251 maxLength: 1024 1252 minLength: 1 1253 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 1254 type: string 1255 status: 1256 description: status of the condition, one of True, False, Unknown. 1257 enum: 1258 - "True" 1259 - "False" 1260 - Unknown 1261 type: string 1262 type: 1263 description: type of condition in CamelCase or in foo.example.com/CamelCase. 1264 --- Many .condition.type values are consistent across resources 1265 like Available, but because arbitrary conditions can be useful 1266 (see .node.status.conditions), the ability to deconflict is 1267 important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) 1268 maxLength: 316 1269 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 1270 type: string 1271 required: 1272 - lastTransitionTime 1273 - message 1274 - reason 1275 - status 1276 - type 1277 type: object 1278 maxItems: 8 1279 type: array 1280 x-kubernetes-list-map-keys: 1281 - type 1282 x-kubernetes-list-type: map 1283 listeners: 1284 description: Listeners provide status for each unique listener port 1285 defined in the Spec. 1286 items: 1287 description: ListenerStatus is the status associated with a Listener. 1288 properties: 1289 attachedRoutes: 1290 description: AttachedRoutes represents the total number of Routes 1291 that have been successfully attached to this Listener. 1292 format: int32 1293 type: integer 1294 conditions: 1295 description: Conditions describe the current condition of this 1296 listener. 1297 items: 1298 description: "Condition contains details for one aspect of 1299 the current state of this API Resource. --- This struct 1300 is intended for direct use as an array at the field path 1301 .status.conditions. For example, \n type FooStatus struct{ 1302 // Represents the observations of a foo's current state. 1303 // Known .status.conditions.type are: \"Available\", \"Progressing\", 1304 and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge 1305 // +listType=map // +listMapKey=type Conditions []metav1.Condition 1306 `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" 1307 protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields 1308 }" 1309 properties: 1310 lastTransitionTime: 1311 description: lastTransitionTime is the last time the condition 1312 transitioned from one status to another. This should 1313 be when the underlying condition changed. If that is 1314 not known, then using the time when the API field changed 1315 is acceptable. 1316 format: date-time 1317 type: string 1318 message: 1319 description: message is a human readable message indicating 1320 details about the transition. This may be an empty string. 1321 maxLength: 32768 1322 type: string 1323 observedGeneration: 1324 description: observedGeneration represents the .metadata.generation 1325 that the condition was set based upon. For instance, 1326 if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration 1327 is 9, the condition is out of date with respect to the 1328 current state of the instance. 1329 format: int64 1330 minimum: 0 1331 type: integer 1332 reason: 1333 description: reason contains a programmatic identifier 1334 indicating the reason for the condition's last transition. 1335 Producers of specific condition types may define expected 1336 values and meanings for this field, and whether the 1337 values are considered a guaranteed API. The value should 1338 be a CamelCase string. This field may not be empty. 1339 maxLength: 1024 1340 minLength: 1 1341 pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ 1342 type: string 1343 status: 1344 description: status of the condition, one of True, False, 1345 Unknown. 1346 enum: 1347 - "True" 1348 - "False" 1349 - Unknown 1350 type: string 1351 type: 1352 description: type of condition in CamelCase or in foo.example.com/CamelCase. 1353 --- Many .condition.type values are consistent across 1354 resources like Available, but because arbitrary conditions 1355 can be useful (see .node.status.conditions), the ability 1356 to deconflict is important. The regex it matches is 1357 (dns1123SubdomainFmt/)?(qualifiedNameFmt) 1358 maxLength: 316 1359 pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ 1360 type: string 1361 required: 1362 - lastTransitionTime 1363 - message 1364 - reason 1365 - status 1366 - type 1367 type: object 1368 maxItems: 8 1369 type: array 1370 x-kubernetes-list-map-keys: 1371 - type 1372 x-kubernetes-list-type: map 1373 name: 1374 description: Name is the name of the Listener that this status 1375 corresponds to. 1376 maxLength: 253 1377 minLength: 1 1378 pattern: ^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 1379 type: string 1380 supportedKinds: 1381 description: "SupportedKinds is the list indicating the Kinds 1382 supported by this listener. This MUST represent the kinds 1383 an implementation supports for that Listener configuration. 1384 \n If kinds are specified in Spec that are not supported, 1385 they MUST NOT appear in this list and an implementation MUST 1386 set the \"ResolvedRefs\" condition to \"False\" with the \"InvalidRouteKinds\" 1387 reason. If both valid and invalid Route kinds are specified, 1388 the implementation MUST reference the valid Route kinds that 1389 have been specified." 1390 items: 1391 description: RouteGroupKind indicates the group and kind of 1392 a Route resource. 1393 properties: 1394 group: 1395 default: gateway.networking.k8s.io 1396 description: Group is the group of the Route. 1397 maxLength: 253 1398 pattern: ^$|^[a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*$ 1399 type: string 1400 kind: 1401 description: Kind is the kind of the Route. 1402 maxLength: 63 1403 minLength: 1 1404 pattern: ^[a-zA-Z]([-a-zA-Z0-9]*[a-zA-Z0-9])?$ 1405 type: string 1406 required: 1407 - kind 1408 type: object 1409 maxItems: 8 1410 type: array 1411 required: 1412 - attachedRoutes 1413 - conditions 1414 - name 1415 - supportedKinds 1416 type: object 1417 maxItems: 64 1418 type: array 1419 x-kubernetes-list-map-keys: 1420 - name 1421 x-kubernetes-list-type: map 1422 type: object 1423 required: 1424 - spec 1425 type: object 1426 served: true 1427 storage: true 1428 subresources: 1429 status: {} 1430 status: 1431 acceptedNames: 1432 kind: "" 1433 plural: "" 1434 conditions: null 1435 storedVersions: null