Proto commits in kubernetes-sigs/gateway-api

These 62 commits are when the Protocol Buffers files have changed:

Commit:d8f2a20
Author:Josh Soref
Committer:GitHub

Spelling (#3400) * spelling: adding Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: anymore Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: approach Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: attached Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: because Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: cannot Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: case-insensitive Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: case-sensitive Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: certificate Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: certificates Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: criteria Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: deterministically Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: discoverability Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: docs Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: encapsulated Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: feature Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: filesystem Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: format Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: frankbu Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: github Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: grpc Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: grpcroute Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: has Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: have Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: http-route Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: httpproxy Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: httpredirect Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: https Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: implementation Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: improvements Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: in Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: infrastructure Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: into Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: intuitive Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: its Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: linked Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: maintainers Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: maintenance Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: maximum Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: negotiated Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: networking Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: nonexistent Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: or Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: overridden Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: possible Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: preexisting Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: prominence Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: protocol Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: recommend Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: referent Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: release Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: route-override Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: stabilizing Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: substituted Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: targeting Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: the Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: validationutil Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * spelling: which Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> * Reword simplify prototyping description Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com> --------- Signed-off-by: Josh Soref <2119212+jsoref@users.noreply.github.com>

The documentation is generated from this commit.

Commit:346e951
Author:Richard Belleville
Committer:GitHub

Basic GRPCRoute Conformance Tests (#2745) * Build gRPC conformance server image * Add initial grpc conformance test server unit test * Add test for header echoing * Parameterize Echo and EchoTwo * Go fmt * First passing conformance test * Re-add tests * Add cross-platform codegen * Merge gRPC echo server into echo-basic binary and docker image * Review comments * Fix file inclusion * Skip boilerplate check for protobuf generated codee * Please the linter * Remove dangling grpc-echo unit test invocation * Add debug prints * Ensure GOPATH/bin is on the PATH * Remove debug prints * Account for https://github.com/kubernetes-sigs/gateway-api/pull/2829 * golint

Commit:930099a
Author:John Howard
Committer:John Howard

Remove generated protobufs

This commit does not contain any .proto files.

Commit:5da5d55
Author:James Peach
Committer:James Peach

Hoist HTTP match types into type-specific structs. Update the route match struct to hoist the path and header match specifications into their own structs. This improves API clarity and consistency by using the same matching syntax for paths and headers. Update the matching defaults at various levels so that there is always a default prefix path match on "/". This reduces the amount of YAML needed for simple cases and removes the validation burden from controllers. Signed-off-by: James Peach <jpeach@vmware.com>

Commit:9be74e2
Author:Harry Bagdi

httproute: implement HTTPRouteFilter Co-authored-by: Rob Scott <rob.scott87@gmail.com>

Commit:83a709e
Author:Kubernetes Prow Robot
Committer:GitHub

Merge pull request #86 from Miciah/httproute-tcproute-add-gateway-status-information HTTPRoute, TCPRoute: Add gateway status information

Commit:e3824b6
Author:Miciah Masters
Committer:Miciah Dashiel Butler Masters

HTTPRoute, TCPRoute: Add gateway status information * apis/v1alpha1/httproute_types.go (HTTPRouteStatus): Change the slice of GatewayObjectReference to a slice of RouteGatewayStatus. (RouteGatewayStatus): New type. Define a reference to a Gateway object and a list of status conditions for the route with respect to that Gateway. (RouteConditionType): New type for route status condition type. (ConditionRouteAdmitted): New route status condition type. A route status condition with this type indicates whether the route has been admitted or rejected by a Gateway. (RouteCondition): New type for route status conditions. * apis/v1alpha1/tcproute_types.go (TCPRouteStatus): Add a Gateways field with type slice of RouteGatewayStatus. * apis/v1alpha1/generated.pb.go: * apis/v1alpha1/generated.proto: * apis/v1alpha1/zz_generated.deepcopy.go: * config/crd/bases/networking.x-k8s.io_httproutes.yaml: * config/crd/bases/networking.x-k8s.io_tcproutes.yaml: * docs-src/spec.md: * docs/spec/index.html: Regenerate.

Commit:e4da5a9
Author:Harry Bagdi

fix typos and update language

Commit:b6c148c
Author:James Peach
Committer:James Peach

Update validation rules. Move enum validation from struct fields to the corresponsing type. This ensures the validation applies everywhere the type is used and provides a convenient place to hang user documentation. Fix the HTTPRouteAction ForwardTo field to require at least one forwarding target. Signed-off-by: James Peach <jpeach@vmware.com>

Commit:fa9b375
Author:Harry Bagdi

httproute: pluralize matches for multiple matches in a single rule This patch pluralizes the match in HTTPRouteRule. This makes it possible to specify multiple match predicates for requests, which should be treated in the same way, i.e. execute the same actions for all matches.

Commit:50c0bfa
Author:Harry Bagdi

httproute: drop default HTTPRouteHost This patch removes default HTTPRouteHost and instead recommends the following two ways to implement default routing behavior: 1. For a catch-all route for a hostname or a subset of hostname, use a `PathMatchType` of `Prefix` with `/` path. 2. For a catch-all route across all hostnames on a given listener, combine (1) with a listener with HostnameMatchType of `Any`.

Commit:54286b5
Author:Kubernetes Prow Robot
Committer:GitHub

Merge pull request #257 from hbagdi/feat/drop-min-tls tls: drop tls.MinimumVersion in favor of tls.Options

Commit:42e6022
Author:Yi Yang

Update default PathMatchType in HTTPRoute to be prefix.

Commit:b1f65a7
Author:Harry Bagdi

tls: drop tls.MinimumVersion in favor of tls.Options Drop tls.MinimumVersion as a defined property and instead use tls.Options for defining tls.MinimumVersion.

Commit:514b798
Author:Kubernetes Prow Robot
Committer:GitHub

Merge pull request #250 from danehans/tcp_split Pluralizes forwardTo field of TCPRoute

Commit:44219f9
Author:Daneyon Hansen
Committer:Daneyon Hansen

Pluralizes forwardTo field of TCPRoute

Commit:5d60b60
Author:Harry Bagdi
Committer:Harry Bagdi

httproute: correct conformance for regex support Changes: - Move regex support from extend to custom. The details in regex make it hard to share the support in extended or core. - add enum based validation for match type, this can be relaxed in future to allow for arbitrary strings - introduce kubebuilder annotations

Commit:11f9177
Author:Kubernetes Prow Robot
Committer:GitHub

Merge pull request #246 from hbagdi/weight-optional add optional tag to weight

Commit:56154e7
Author:Kubernetes Prow Robot
Committer:GitHub

Merge pull request #247 from jpeach/gateway-support-guidance Add clarifications for handling unsupported features.

Commit:695ea7e
Author:Kubernetes Prow Robot
Committer:GitHub

Merge pull request #244 from jpeach/rename-path-match Rename `PathType` to `PathMatchType`.

Commit:9d9bbf0
Author:James Peach

Mark defaulted fields as optional. Since required-ness is checked before defaulting is applied, all defaulted fields should be optional. I also took the opportunity to order the kubebuilder annotations consistently. Signed-off-by: James Peach <jpeach@vmware.com>

Commit:e82df1b
Author:James Peach

Add clarifications for handling unsupported features. Some implementations will not support all the protocols or route types defined in the API. Add some simple guidance to make it clear that an implementation doesn't have to support everything and can raise conditions for cases that it doesn't support. Signed-off-by: James Peach <jpeach@vmware.com>

Commit:3cb4ee6
Author:James Peach
Committer:James Peach

Rename `PathType` to `PathMatchType`. Since the match type for HTTP headers is named `HeaderMatchType`, rename the patch match type to follow the same pattern. Signed-off-by: James Peach <jpeach@vmware.com>

Commit:79bf60c
Author:Harry Bagdi
Committer:Harry Bagdi

add optional tag to weight

Commit:d7e4c20
Author:Daneyon Hansen
Committer:Daneyon Hansen

Removes TrafficSplit in favor of ForwardToTarget

Commit:8d4df14
Author:Jeremy Olmsted-Thompson
Committer:Jeremy Olmsted-Thompson

Populate TCPRoute based on community discussion - Populates TCPRoute based on community discussion, molded to match the structure of HTTPRoute. - Moves common extension and forwarding types to their own files.

Commit:bfc400f
Author:Jeremy Olmsted-Thompson
Committer:Jeremy Olmsted-Thompson

Add Resource to RouteBindingSelector

Commit:3fc7aa6
Author:Rob Scott
Committer:Rob Scott

Fixing Examples and Typos

Commit:463ed43
Author:John Howard
Committer:John Howard

Actually generate the code

Commit:c90508e
Author:John Howard
Committer:John Howard

Rename from api -> apis

Commit:cdd903c
Author:John Howard
Committer:John Howard

Initial code and fixes for informer gen

Commit:f32a6ee
Author:James Peach
Committer:James Peach

Update Gateway status and conditions. The structure for exposing Listener status was broken in #193 because the Listener Name field was removed. This means that status can no longer be associated to a Listener by matching the name. However, since Listeners are basically metadata wrapped around ports, we can expose granular Listener status by publishing a ListenerStatus object for each port that is bound on the Gateway. This lets us model port conflicts in a reasonable way as well as scope other errors more tightly than the entire gateway. In practice, the scoping of Listener conditions is not as granular as previously, since most applications will all be exposed on port 443. In this case, it may not be easy to distinguish which Listener's routes were not ready. Since IP addresses are a property of the Gateway, they should also be a property of the GatewayStatus. Note that the status field contains the bound addresses, not the requested addresses. Condition types have been redistributed between the GatewayConditionType and ListenerConditionType in accordance with the responsibility for the error that each condition signifies. Signed-off-by: James Peach <jpeach@vmware.com>

Commit:10fd086
Author:Rob Scott
Committer:Rob Scott

Adding RouteNamespaces for Gateway and GatewayClass This adds a new RouteNamespaces field to Gateway and GatewayClass. This simplifies the logic around Route Namespace selection and ensures consistent fields are used for both Gateway and GatewayClass.

Commit:a0bba6f
Author:John Howard
Committer:John Howard

Vendor codegen

Commit:6886aff
Author:Harry Bagdi

httproute: pluralize hostname and allow for wildcards This commit bundles two changes: - pluralizes hostnames to define the same route - allows for wildcards in the left-most label (same as Ingress V1)

Commit:861c8b6
Author:John Howard

Vendor just protos

Commit:a692de1
Author:John Howard

Remove vendor directory

Commit:c87beb8
Author:Harry Bagdi

clarify matching behavior for HTTP Headers This patch adds support for `regex` and `implementation-specific` behaviors for HTTP Header. The name for the field has been changed to `headers` as multiple headers are ANDed. Update api/v1alpha1/httproute_types.go Co-authored-by: Rob Scott <rob.scott87@gmail.com>

Commit:d066ba2
Author:James Peach

Align Conditions with KEP-1623. KEP-1623 standardizes the structure of Conditions. Align to the standard structure by adding the ObservedGeneration field, which API clients can examine to test whether a Condition may be outdated. Signed-off-by: James Peach <jpeach@vmware.com>

Commit:47dc855
Author:Rob Scott
Committer:Rob Scott

Adding new status conditions covering forbidden namespaces

Commit:e1fc4ab
Author:James Peach
Committer:James Peach

Rewrite Listeners in terms of an endpoint concept. Rewrite Listeners to model the concept of a logical network endpoint. This change defines a Gateway more strongly as the network element to which addresses can be attached, and Listeners as logical endpoints within the network element. The main goal of this change is to consolidate the name of an application (i.e. the endpoint) into a single part of the API that is controlled by one user persona. In this change, the application name is strictly part of the Gateway spec and controlled by the cluster operator role, while routes are controlled by the application owner. The Listener protocol is now strongly defined to a core set of common protocol stacks. This loss of flexibility improves clarity because it makes it possible to specify how Listeners should be collapsed into virtual hosts in an underlying proxy implementation. This change doesn't update ListenerStatus, though clearly it no longer makes complete sense. The most likely change needed for GatewayStatus is to drop the Listeners field and fold listener errors directly into the Conditions field. Signed-off-by: James Peach <jpeach@vmware.com>

Commit:ee6e9bb
Author:Kubernetes Prow Robot
Committer:GitHub

Merge pull request #182 from maplain/optional-gateway-status Mark Gateway status fields optional

Commit:8466c3b
Author:Daneyon Hansen
Committer:Daneyon Hansen

Refactors LocalObjectReference API type

Commit:ff7b529
Author:Fangyuan Li
Committer:Fangyuan Li

Making fields in GatewayStatus optional 1. Mark GatewayStatus.Conditions and GatewayStatus.Listeners optional fields; 2. Update proto;

Commit:9dfdb75
Author:Fangyuan Li
Committer:Fangyuan Li

Update proto and crd 1. Run `make -f kubebuilder.mk proto`;

Commit:6adb203
Author:Daneyon Hansen
Committer:Daneyon Hansen

Decouples TLS config type from Listener

Commit:06eea50
Author:Daneyon Hansen

Adds TargetPort to HTTPRoute API type

Commit:776392a
Author:Daneyon Hansen

Fixes issues introduced by PRs 150 and 151

Commit:bb8f995
Author:Miciah Masters
Committer:Miciah Dashiel Butler Masters

Use fooRef naming convention for object references Rename fields that are object references in order to follow the community API conventions. * api/v1alpha1/gateway_types.go (Listener): Rename "extension" field to "extensionRef". (ListenerTLS): Rename "certificates" field to "certificateRefs". * api/v1alpha1/gatewayclass_types.go (GatewayClassSpec): Rename "parameters" field to "parametersRef". * api/v1alpha1/httproute_types.go (HTTPRouteHost, HTTPRouteMatch) (HTTPRouteFilter, HTTPRouteAction): Rename "extension" fields to "extensionRef". (HTTPRouteAction): Rename "forwardTo" field to "forwardTargetRef". (HTTPRouteStatus): Rename "gateways" field to "gatewayRefs". * api/v1alpha1/generated.pb.go: * api/v1alpha1/generated.proto: * api/v1alpha1/zz_generated.deepcopy.go: * config/crd/bases/networking.x-k8s.io_gatewayclasses.yaml: * config/crd/bases/networking.x-k8s.io_gateways.yaml: * config/crd/bases/networking.x-k8s.io_httproutes.yaml: Regenerate.

Commit:7d50453
Author:Miciah Masters
Committer:Miciah Dashiel Butler Masters

Add examples to LocalObjectReference Add an example reference to a service object and an example reference to a custom resource. * api/v1alpha1/gateway_types.go (LocalObjectReference): Add example reference specifications. * api/v1alpha1/generated.proto: * config/crd/bases/networking.x-k8s.io_gatewayclasses.yaml: * config/crd/bases/networking.x-k8s.io_gateways.yaml: * config/crd/bases/networking.x-k8s.io_httproutes.yaml: Regenerate.

Commit:bb3a315
Author:Miciah Masters
Committer:Miciah Dashiel Butler Masters

Document behavior for missing referents For each API field that specifies an object reference, document the expected behavior when the field's referent cannot be found. * api/v1alpha1/gateway_types.go (GatewaySpec, Listener, ListenerTLS): * api/v1alpha1/gatewayclass_types.go (GatewayClassSpec): * api/v1alpha1/httproute_types.go (HTTPRouteHost, HTTPRouteMatch) (HTTPRouteFilter, HTTPRouteAction): Document behavior for missing referents. * api/v1alpha1/generated.proto: * config/crd/bases/networking.x-k8s.io_gatewayclasses.yaml: * config/crd/bases/networking.x-k8s.io_gateways.yaml: * config/crd/bases/networking.x-k8s.io_httproutes.yaml: Regenerate.

Commit:596ce41
Author:Miciah Masters
Committer:Miciah Dashiel Butler Masters

Make group optional in object references Allow omitting the group specification in object references, and document default values for group and resource. Before this commit, the group could be the empty string but could not be omitted (that is, left unspecified in json or yaml definitions). * api/v1alpha1/gateway_types.go (Listener): Document the default values for group and resource for the listener extension object reference (the defaults are core and configmaps, respectively). (ListenerTLS): Document the default values for group and resource for certificate object references (the defaults are core and secrets, respectively). (LocalObjectReference): Make group optional. * api/v1alpha1/gatewayclass_types.go (GatewayClassSpec): Document the default values for group and resource for the parameters object reference (the defaults are core and configmaps, respectively). * api/v1alpha1/httproute_types.go (HTTPRouteHost): Document the default values for group and resource for the extension object reference (the defaults are core and configmaps, respectively). (HTTPRouteMatch): Document the default values for group and resource for the extension object reference (the defaults are core and configmaps, respectively). (HTTPRouteFilter): Document the default values for group and resource for the extension object reference (the defaults are core and configmaps, respectively). (HTTPRouteAction): Document the default values for group and resource for the target object reference (for which the defaults are core and services, respectively) and for the extension object reference (for which the defaults are core and configmaps, respectively). * api/v1alpha1/generated.proto: * config/crd/bases/networking.x-k8s.io_gatewayclasses.yaml: * config/crd/bases/networking.x-k8s.io_gateways.yaml: * config/crd/bases/networking.x-k8s.io_httproutes.yaml: Regenerate.

Commit:61b52cb
Author:Miciah Masters
Committer:Miciah Dashiel Butler Masters

Delete RouteObjectReference Delete the unused RouteObjectReference type. Delete +protobuf=false markers on type aliases for LocalObjectReference as the markers now cause go-to-protobuf to fail with '"LocalObjectReference" is not defined'. Follow-up to commit 8dcf12bd12cfa1223e42fcc37d6a31a1e9a54dda. * api/v1alpha1/gateway_types.go (CertificateObjectReference) (ListenerExtensionObjectReference): Delete +protobuf=false markers. (RouteObjectReference): Delete definition. * api/v1alpha1/gatewayclass_types.go (GatewayClassParametersObjectReference): * api/v1alpha1/httproute_types.go (RouteMatchExtensionObjectReference) (RouteFilterExtensionObjectReference, RouteActionTargetObjectReference) (RouteActionExtensionObjectReference, RouteHostExtensionObjectReference): Delete +protobuf=false markers. * api/v1alpha1/generated.proto: Regenerate.

Commit:2a71bac
Author:Kubernetes Prow Robot
Committer:GitHub

Merge pull request #146 from danehans/gen_missing_gwclass_protos Generates missing protos

Commit:3a0c01a
Author:Bowei Du
Committer:Bowei Du

Change networking.x.k8s.io to networking.x-k8s.io Use of x.k8s.io caused many parts of k8s to think that the CRDs were part of group `x` under the core APIs. We should use x-k8s instead.

Commit:5f6c4ad
Author:Daneyon Hansen

Generates missing protos from PR #126

Commit:8dcf12b
Author:Daneyon Hansen
Committer:Daneyon Hansen

Refactors gateway api type to use label selectors

Commit:db5f0b9
Author:John Howard

Fix type aliases

Commit:8713687
Author:John Howard
Committer:John Howard

Proper generation of protos

Commit:9007402
Author:John Howard
Committer:John Howard

Automated protobuf generation

Commit:fa6eef7
Author:Manuel Alejandro de Brito Fontes
Committer:Manuel Alejandro de Brito Fontes

Update dependencies in vendor directory

Commit:a0ee45a
Author:Bowei Du
Committer:Bowei Du

Add vendor/ output from go mod vendor