github.com/projectcontour/contour@v1.28.2/site/content/posts/2021-02-25-contour_v1130.md (about)

     1  ---
     2  title: Announcing Contour v1.13.0
     3  excerpt: Contour 1.13 adds Gateway API and global rate limiting support.
     4  author_name: Daneyon Hansen
     5  author_avatar: /img/contributors/daneyon-hansen.jpg
     6  categories: [kubernetes]
     7  tags: ['Contour Team', 'Daneyon Hansen']
     8  date: 2021-02-25
     9  slug: contour_v1130
    10  ---
    11  
    12  Contour continues to add new features to help you better manage ingress operations in a cluster.
    13  Our latest release, Contour 1.13.0, adds several new features. This post will focus on two of the
    14  features, support for [Gateway API][1] and [global rate limiting][2].
    15  
    16  ## Gateway API
    17  
    18  __FEATURE STATE:__ Contour v1.13.0 [alpha][3]
    19  
    20  Contour now provides alpha support for [Gateway API][1], an open source project to evolve service
    21  networking APIs within the Kubernetes ecosystem. Gateway API consists of multiple resources that provide
    22  user interfaces to expose Kubernetes applications- Services, Ingress, and more.
    23  
    24  Support for Gateway API is implemented across Contour and [Contour Operator][5]. This approach aligns
    25  with the [personas][15] defined by Gateway API. The operator manages infrastructure-level resources, i.e.
    26  [Gateway][6], while Contour manages application-level resources such as [HTTPRoute][7].
    27  
    28  Refer to the [user guide][4] for additional details and to start using Gateway API with Contour.
    29  
    30  A big thanks to [@stevesloka](https://github.com/stevesloka) and [@youngnick](https://github.com/youngnick),
    31  for designing and implementing this feature!
    32  
    33  ## Global Rate Limiting
    34  
    35  Contour now supports [global rate limiting][8], where Envoy communicates with an external Rate Limit Service
    36  (RLS) over gRPC to make rate limit decisions for requests. Envoy is configured to produce 1+ descriptors for
    37  incoming requests, containing things like the client IP, header values, etc. Envoy sends these descriptors
    38  to the RLS, and the service returns a rate limiting decision to Envoy based on the descriptors and RLS
    39  configured rate limits.
    40  
    41  To use global rate limiting with Contour, you'll need to:
    42  - Choose and deploy an RLS. There is an [Envoy rate limit service][9] implementation, but any service that
    43    implements the [RateLimitService gRPC interface][10] is supported.
    44  - Configure Contour for the RLS.
    45  - Add a global rate limit policy to your `HTTPProxy`.
    46  - Define rate limits in your RLS config.
    47  
    48  Refer to the [Contour global rate limiting guide][11] for using the feature with Envoy RLS as an example.
    49  
    50  For more information, see:
    51  - [Contour rate limiting documentation][12]
    52  - [HTTPProxy API reference][13]
    53  - [Envoy HTTP global rate limit filter documentation][14]
    54  
    55  A big thanks to [@skriss](https://github.com/skriss) for designing and implementing this feature!
    56  
    57  ## Additional Information
    58  
    59  Refer to the [v1.13.0 release notes][16] for additional information.
    60  
    61  ## Community Thanks!
    62  We’re immensely grateful for all the community contributions that help make Contour even better!
    63  For version 1.13, special thanks go out to the following contributors:
    64  
    65  - [@xtreme-jesse-malone](https://github.com/xtreme-jesse-malone)
    66  - [@abhide](https://github.com/abhide)
    67  - [@seemiller](https://github.com/seemiller)
    68  
    69  [1]: https://gateway-api.sigs.k8s.io/
    70  [2]: https://www.envoyproxy.io/docs/envoy/v1.17.0/intro/arch_overview/other_features/global_rate_limiting.html
    71  [3]: https://projectcontour.io/resources/deprecation-policy/
    72  [4]: https://projectcontour.io/guides/gateway-api/
    73  [5]: https://github.com/projectcontour/contour-operator
    74  [6]: https://gateway-api.sigs.k8s.io/gateway/
    75  [7]: https://gateway-api.sigs.k8s.io/httproute/
    76  [8]: https://www.envoyproxy.io/docs/envoy/latest/intro/arch_overview/other_features/global_rate_limiting
    77  [9]: https://github.com/envoyproxy/ratelimit
    78  [10]: https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/ratelimit/v3/rls.proto
    79  [11]: https://projectcontour.io/guides/global-rate-limiting/
    80  [12]: https://projectcontour.io/docs/v1.13.0/config/rate-limiting/
    81  [13]: https://projectcontour.io/docs/v1.13.0/config/api/#projectcontour.io/v1.GlobalRateLimitPolicy
    82  [14]: https://www.envoyproxy.io/docs/envoy/v1.17.0/configuration/http/http_filters/rate_limit_filter
    83  [15]: https://gateway-api.sigs.k8s.io/api-overview/#roles-and-personas
    84  [16]: https://github.com/projectcontour/contour/releases/tag/v1.13.0