README
Contour

Overview
Contour is an Ingress controller for Kubernetes that works by deploying the Envoy proxy as a reverse proxy and load balancer. Contour supports dynamic configuration updates out of the box while maintaining a lightweight profile.
Contour also introduces a new ingress API (HTTPProxy) which is implemented via a Custom Resource Definition (CRD). Its goal is to expand upon the functionality of the Ingress API to allow for a richer user experience as well as solve shortcomings in the original design.
Prerequisites
Contour requires Kubernetes version 1.16 or later, for v1 Custom Resource Definition support.
RBAC must be enabled on your cluster.
Get started
Getting started with Contour is as simple as one command. See the Getting Started document.
Troubleshooting
If you encounter issues, review the Troubleshooting section of the docs, file an issue, or talk to us on the #contour channel on the Kubernetes Slack server.
Contributing
Thanks for taking the time to join our community and start contributing!
- Please familiarize yourself with the Code of Conduct before contributing.
- See CONTRIBUTING.md for information about setting up your environment, the workflow that we expect, and instructions on the developer certificate of origin that we require.
- Check out the open issues.
- Join our Kubernetes Slack channel: #contour
- Join the Contour Community Meetings - schedule, notes, and recordings can be found here
Roadmap
See Contour's roadmap to learn more about where we are headed.
Security
Security Audit
A third party security audit was performed by Cure53 in December of 2020. You can see the full report here.
Reporting security vulnerabilities
If you've found a security related issue, a vulnerability, or a potential vulnerability in Contour please let the Contour Security Team know with the details of the vulnerability. We'll send a confirmation email to acknowledge your report, and we'll send an additional email when we've identified the issue positively or negatively.
For further details please see our security policy.
Changelog
See the list of releases to find out about feature changes.
Directories
Path | Synopsis |
---|---|
apis
|
|
projectcontour/v1
Package v1 is the v1 version of the API.
|
Package v1 is the v1 version of the API. |
projectcontour/v1alpha1
Package v1alpha1 contains API Schema definitions for the projectcontour.io v1alpha1 API group +kubebuilder:object:generate=true +k8s:deepcopy-gen=package +groupName=projectcontour.io
|
Package v1alpha1 contains API Schema definitions for the projectcontour.io v1alpha1 API group +kubebuilder:object:generate=true +k8s:deepcopy-gen=package +groupName=projectcontour.io |
cmd
|
|
pkg
|
|
internal
|
|
certgen
Package certgen contains the code that handles the `certgen` subcommand for the main `contour` binary.
|
Package certgen contains the code that handles the `certgen` subcommand for the main `contour` binary. |
contour
Package contour contains the translation business logic that listens to Kubernetes ResourceEventHandler events and translates those into additions/deletions in caches connected to the Envoy xDS gRPC API server.
|
Package contour contains the translation business logic that listens to Kubernetes ResourceEventHandler events and translates those into additions/deletions in caches connected to the Envoy xDS gRPC API server. |
dag
Package dag provides a data model, in the form of a directed acyclic graph, of the relationship between Kubernetes Ingress, Service, and Secret objects.
|
Package dag provides a data model, in the form of a directed acyclic graph, of the relationship between Kubernetes Ingress, Service, and Secret objects. |
debug
Package debug provides http endpoints for healthcheck, metrics, and pprof debugging.
|
Package debug provides http endpoints for healthcheck, metrics, and pprof debugging. |
envoy
Package envoy contains APIs for translating between Contour objects and Envoy configuration APIs and types.
|
Package envoy contains APIs for translating between Contour objects and Envoy configuration APIs and types. |
health
Package health provides a health check service.
|
Package health provides a health check service. |
httpsvc
Package httpsvc provides a HTTP/1.x Service which is compatible with the workgroup.Group API.
|
Package httpsvc provides a HTTP/1.x Service which is compatible with the workgroup.Group API. |
metrics
Package metrics provides Prometheus metrics for Contour.
|
Package metrics provides Prometheus metrics for Contour. |
protobuf
Package protobuf provides helpers for working with golang/protobuf types.
|
Package protobuf provides helpers for working with golang/protobuf types. |
status
Package status holds pieces for handling status updates propagated from the DAG back to Kubernetes
|
Package status holds pieces for handling status updates propagated from the DAG back to Kubernetes |
workgroup
Package workgroup provides a mechanism for controlling the lifetime of a set of related goroutines.
|
Package workgroup provides a mechanism for controlling the lifetime of a set of related goroutines. |