ROADMAP.md

April 21, 2023 · View on GitHub

Contour Roadmap

About this document

This document provides a link to the Contour Project board that serves as the up to date description of items that are in the Contour release pipeline. The board tracks the Github milestones for upcoming releases and other issues planned to work on soon. Most items are gathered from the community or include a feedback loop with the community. This should serve as a reference point for Contour users and contributors to understand where the project is heading, and help determine if a contribution could be conflicting with a longer term plan.

How to help?

Discussion on the roadmap can take place in threads under Issues or in community meetings. Please open and comment on an issue if you want to provide suggestions and feedback to an item in the roadmap. Please review the roadmap to avoid potential duplicated efforts.

How to add an item to the roadmap?

Please open an issue to track any initiative on the roadmap of Contour (Usually driven by new feature requests or feature proposals). For smaller enhancements, you can just open an issue to track that initiative or feature request. We work with and rely on community feedback to focus our efforts to improve Contour and maintain a healthy roadmap.

Current Roadmap

The following table includes the current roadmap for Contour. If you have any questions or would like to contribute to Contour, please attend a community meeting to discuss with our team. If you don't know where to start, we are always looking for contributors that will help us reduce technical, automation, and documentation debt. Please take the timelines & dates as proposals and goals. Priorities and requirements change based on community feedback, roadblocks encountered, community contributions, etc. If you depend on a specific item, we encourage you to attend community meetings to get updated status information, or help us deliver that feature by contributing to Contour.

Last Updated: April 2023

ThemeDescriptionTimelineIssueNotes
Gateway APISupport arbitrary number of Listeners per-Gateway2023 H1projectcontour/contour#4960Will likely be required to stay conformant with Gateway API.
InfrastructureReplace Contour xDS code with go-control-plane as default2023 H2projectcontour/contour#2134There’s some work left to do, but this should be finished soon.These changes will also make Delta xDS available, which should help with wire transfer times and scalability.
ObservabilityImprove observability of Contour (the control plane)2023 H2metrics labelAdditional metrics, logging, etc. will improve our and users' ability to troubleshoot bugs, performance issues and scale issues
ScaleImprove Contour's performance and reduce resource utilization at scale2023 H2performance labelEnsure Contour operates well in large clusters. Ideally, automated testing is added to help prevent future regressions as well.
SecurityAdd OIDC support to contourUnknownprojectcontour/contour#2664This covers work to pull OIDC support directly into Contour, without requiring running an external auth server. We started this work, but the Oauth2 filter in Envoy is still very experimental and needs a lot of work. This work can’t proceed until significant work has been done on the Oauth2 filter.
New Use CaseUDP SupportWon't Doprojectcontour/contour#1248Contour is focused on Layer 7 HTTP Ingress, and supports Layer 4 only in service of that goal. Contour will not add UDP support.

Completed Roadmap items

ThemeDescriptionTimelineIssueNotes
SecurityIP filtering2023 H1projectcontour/contour#2971 and projectcontour/contour#3693Implementation PR: projectcontour/contour#5008
ObservabilityTracing support2023 H1projectcontour/contour#399Implementation PR: projectcontour/contour#5043
Gateway APIImplement GRPCRoute2023 H1projectcontour/contour#4820Implemented in projectcontour/contour#5114
Gateway APICreate a plan for v0.6.02022 H2projectcontour/contour#4738Make a plan for how to handle Gateway API v0.6.0 when it's released.
OperationalContour with managed Envoys2022 H1Contour’s Gateway API implementation now allows for the dynamic creation of Envoy Daemonsets or Deployments, this functionality is included there.We were considering making this available outside of Gateway API, but the work involved is too prohibitive.
Gateway APIsImplement Gateway 0.5.0 API Support2021 H2projectcontour/contour#2287Contour will only support HTTPRoute and TLSRoute, the Layer 7 route objects. No support planned for TCPRoute and UDPRoute at this time. Related issue that's on our radar - https://github.com/projectcontour/contour/issues/3367
DeploymentContour Operator GAWon't doprojectcontour/contour-operator#205The Operator will not be moved to GA. It’s now in maintenance mode, and will have minimal updates done to keep it working with new Contour releases until we say otherwise. Once Envoy Gateway is available and ready for use, we strongly encourage Operator users to move to it for your dynamic ingress traffic routing needs.
OperationalHarden contour-authserver to provide a simple auth optionWon't doprojectcontour/contour-authserver#14Contour-authserver is an experimental ext_auth server. We’re going to move this to archived, as we don’t expect further development on it. https://github.com/travisghansen/external-auth-server is a possible alternative.
Load BalancingList of hash_policy for HTTPProxyUnknownprojectcontour/contour#3044
OperationalSession Affinity by Source IP2021 H2projectcontour/contour#3703Implemented in #4141
OperationalRe-evaluate container image storage2021 H2projectcontour/contour#3366Contour's primary image storage has moved to Github Container Registry (GHCR)
SecurityFIPS ComplianceMay 2021
GeneralWildcard Hostname MatchingMarch 2021projectcontour/contour#2138A limited form of this is required for both Ingress and Gateway-APIs.
CompatibilityImplement Kubernetes Ingress V1 specification (requires v1.16)March 2021projectcontour/contour#2139
PerformanceRate limiting supportFebruary 2021projectcontour/contour#370Local rate limiting support arrived in 1.12 in January 2021, global rate limiting support arrived in 1.13, February 2021.
GeneralSelf Service Capabilities in Contour2021 H2projectcontour/contour#2206 mainly, with some othersSee #2206, but in short, HTTPProxy and self-service don't work. The Gateway API has been better desgined to be able to support this sort of capability, and will be the method via which this solved. There's nothing more for Contour to do here.
ObservabilityAdditional HTTPProxy Status informationOctober 2020
SecurityAuthentication support for services backed by ContourOctober 2020
ExtensibilityExpose more Envoy configuration knobsDecember 2020
InfrastructurexDS v3 upgradeDecember 2020 (must be done by EOY 2020)
DeploymentContour Helm ChartDecember 2020
OperationalContour Operator AlphaDecember 2020