What’s new in Contour 1.17.0?

by | 09.07.2021 | Changelog

Contour 1.17.0 is out with a layer seven HTTP reverse proxy for Kubernetes clusters. The new version has arrived with many new features and several fixes, which will make the functioning of the ingress controller smoother. More activities within the community came along with the release of this version. So, we will have a look at all of this. Let’s get going.

Tech Writing Working Group

As earlier told, a significant change came to the community with this new release. It is seen vividly with the announcement of introducing the tech writing working group in the Contour community. Because of this, specific documentation proposals and fixes comes as contributions. We can see a few changes, such as fixing of error by flagging an expected argument with –kubernetes-debug command.

Ignoring Irrelevant Endpoints Updates

As reported earlier here, previously to this release, we can see endpoint changes for services not related to Contour would cause a no-op configuration push to Envoy. Because of this, we find a lot of churns in busy clusters. Now, we have fixed this issue. For more information, click here.

GATEWAY API

Reconciling Gateways

In the Gateway API, Gateways refer to a GatewayClass, and controllers decide which Gateways to reconcile. They did it by determining for which GatewayClass(es) they are responsible. It is specified using the spec.controller field in the GatewayClass. We now expect that controllers look for a specific value in that field and only reconcile Gateways that reference GatewayClasses that match.

In this release, Contour has changed the method by which it selects which Gateway to reconcile. It now follows the spec for looking up a GatewayClass and finding the first created Gateway in that GatewayClass to be the Gateway it will watch for config when using the Gateway API. We can now accomplish this by specifying the value to look for inside the GatewayClass spec.controller field using the controllerName area inside the gateway stanza in the config file. It means that the name and namespace parameters in the gateway stanza inside the Contour config file are now deprecated.

Support for TLS Route Termination Mode

Contour now supports the Gateway API TLSRoute object’s terminate mode, which terminates TLS at the Gateway. For more information and description on this topic, click here.

Testing Changes

With the new release, we can see an improved testing framework and CI infrastructure. As well as several other changes, the CI now runs Contour out-of-cluster to enable testing multiple configurations. It will now allow Contour to experiment with more combinations of config and objects and increase the overall test coverage.

Now, tests will use Contour running locally. Again, we can check for nil conditions in an HTTP request. We can see Controller Runtime test suite improvements with this update. Also, we can see updates of test scripts README for the new e2e format. We can now fix codespell errors. Also, now we can use up to date go in e2e/upgrade CI jobs and install Gateway API CRDs from examples/gateway.

Deprecations

Config file: Gateway.Name and Gateway.Namespace

As described in the “Reconciling Gateways” section, the config file parameters Gateway.Name & Gateway.Namespace is deprecated.

Config file: make gencerts

Contour currently has a make gencerts available in the local Makefile for creating certificates for securing Contour to Envoy traffic. The contour certgen command now superseded, which can output to local files in various formats or directly to Kubernetes Secrets. This part of the Makefile is therefore deprecated.

Other Changes

The new release comes with the fixing of Rendered Gateway Example. We now see bumping of gomega package to 1.13.0, golang to 1.16.5 and ginkgo to 1.16.4. Also, it will now help users with the bumping of protobuf and fix lint issues. Also, we find the fixing of references to kuard-dag.png. The pull deployment manifest can now unmarshal/update into the framework. Updating compatibility docs, releasing cutting notes, fixing label sync, updating labels, and adding new decision issue types comes with the latest release.

We also see several fixes on the site too. The new Contour release will now replace latest_release_tag_name with latest_version. It will also now use a single parameter for the latest version. Several fixups like fixing the upgrade guide, RateLimiting Guide, and some other links and improving the configuration page for Hugo’s move will now help users. Also, we will have the bulk replacement of Jekyll templates. We will now have fixing of links on deploy-options pages and to HTTP Proxy fundamentals for annotations page.

Learn More:

The new and improved Contour will now help more. You can also try it out by clicking here.

Join the Community

The DevOps Awareness Program

Subscribe to the newsletter

Join 100+ cloud native ethusiasts

#wearep3r

Join the community Slack

Discuss all things Kubernetes, DevOps and Cloud Native

More stories from our blog

Linkerd: Looming on Service Meshes

Linkerd: Looming on Service Meshes

Microservices and service meshes have become a staple of the industry as companies realize the full potential of creating an independent architecture that allows for easier scale up, agile development, resilience and streamlined deployment. Many of these applications...

What’s new in Flux v0.17.0?

What’s new in Flux v0.17.0?

Flux2 came with its new update a while ago, and it is sheer exciting for the users because it brought a lot of new features. It also made a lot of new enhancements and updates. We will take a look at the entire catalogue in this article. So, without further a due,...

What’s new in Portainer v2.7.0 BE?

What’s new in Portainer v2.7.0 BE?

A few days ago, Portainer Business Edition came up with their new update. It is quite a massive update with many new features, bug fixes, enhancements and much more. In this article, we will see all of those in a nutshell. Let's start What is Portainer? Portainer is...

DVC (Git For Data): A Complete Intro

DVC (Git For Data): A Complete Intro

As a data scientist or ML engineer, have you ever faced the inconvenience of experimenting with the model? When we train the model, the model file is generated. Now, if you want to experiment with some different parameters or data, generally people rename the existing...

Recap of the Cloud Native Meetup Saar #3

Recap of the Cloud Native Meetup Saar #3

We are looking back on a very successful third edition of our Cloud Native Meetup Saar #3! Togetherer with our co-host anynines, we enjoyed a fun afternoon filled with great speakers, intriguing topics and thoughtful conversations! We welcomed a total of three...

Portainer Ambassador Series ft. Fabian Peter

Portainer Ambassador Series ft. Fabian Peter

Portainer arranged a fun and informative discussion through a one-hour special named “Ambassador Series” on 1st July 2021. It was pretty amazing to see Savannah Peterson as the host and two other guests. One is our very own CEO of p3r.one, Fabian Peter and the other...

What’s new in Longhorn v1.2.0?

What’s new in Longhorn v1.2.0?

Longhorn came with their new update. It is full of surprises. We will peel off one by one to see all the latest updates, features, bug fixes and much more. This one is a much-awaited update, and we will see all of it in a moment. So, without further a due, let's...

Kubernetes Stateful Friend: What’s more to etcd?

Kubernetes Stateful Friend: What’s more to etcd?

The Kubernetes control plane consists of various components, and one of such components is etcd. Anyone starting to learn k8s come across it and memorizes quickly that it’s a key-value pair for Kubernetes with persistence store. But, what’s more to it? Why do we need...

What’s New in Flux 1.24.0?

What’s New in Flux 1.24.0?

Flux 1.24 is out this month with couple of updates and Important notices. Let’s get around what are the updates in the new release. But, first, let’s do a quick intro on Flux. What is Flux? Flux is a tool that checks to see if the status of a cluster matches the git...

Event Driven Architecture Demystified (For Pros)

Event Driven Architecture Demystified (For Pros)

Event-Driven Architecture or EDA is talked about with pride inside any organization. But, through last few months, I have noticed a trend that the definition of EDA is not consistent across people and organizations. It’s vague. EDA is something where you have events...

Interested in what we do? Looking for help? Wanna talk about software strategy?