Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update compatibility docs and release cutting notes #3796

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
45 changes: 45 additions & 0 deletions hack/release/release-notes-template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
We are delighted to present version $$VERSION$$ of Contour, our layer 7 HTTP reverse proxy for Kubernetes clusters.

A big thank you to everyone who contributed to the release.

# Major Changes

## Theme 1

### Specific Change 1

Description

### Specific Change 2

Description

## Theme 2

### Specific Change 1

Description

### Specific Change 2

Description

# Deprecation & Removal Notices

## Deprecation 1

## Deprecation 2

# Upgrading
Please consult the [upgrade documentation](https://projectcontour.io/resources/upgrading/).

## Compatible Kubernetes Versions

Contour $$VERSION$$ is tested against Kubernetes X.X through Y.Y

# Community Thanks!
We’re immensely grateful for all the community contributions that help make Contour even better! For this release, special thanks go out to the following contributors:
- ...

# Are you a Contour user? We would love to know!
If you're using Contour and want to add your organization to our adopters list, please visit this [page](https://github.com/projectcontour/contour/blob/master/ADOPTERS.md). If you prefer to keep your organization name anonymous but still give us feedback into your usage and scenarios for Contour, please post on this [GitHub thread](https://github.com/projectcontour/contour/issues/1269).
15 changes: 6 additions & 9 deletions site/content/resources/compatibility-matrix.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,7 @@ layout: page
---

This page documents the compatibility matrix of versions of Contour, Envoy, Kubernetes, and the Contour Operator.
These combinations of versions are specifically tested and supported by the Contour maintainers.
Other combinations *may* work, but are not tested or supported.
These combinations of versions are specifically tested in CI and supported by the Contour maintainers.

## Compatibility Matrix

Expand Down Expand Up @@ -37,15 +36,13 @@ Other combinations *may* work, but are not tested or supported.
<br />

## Notes on Compatibility
Contour utilizes [client-go][98] to watch for resources in a Kubernetes cluster.
Since Kubernetes is backwards compatible with clients, older client-go versions will work with many different Kubernetes cluster versions.
Contour also only consumes a small number of quite stable Kubernetes APIs.
This means that Contour is *likely* compatible with more Kubernetes versions than those listed in the matrix.
However, combinations not listed are not tested or supported by the Contour maintainers.

The `client-go` package includes a [compatibility matrix][99] as to what Kubernetes API versions are supported with the version of client-go.
**As of version 1.16.0, since Contour only subscribes to Ingress v1 resources (and no longer falls back to Ingress v1beta1), the minimum compatible Kubernetes version is 1.19.**
sunjayBhatia marked this conversation as resolved.
Show resolved Hide resolved

__Note:__ As of version 1.16.0, since Contour only subscribes to Ingress v1 resources (and no longer falls back to Ingress v1beta1), the minimum compatible Kubernetes version is 1.19.
Contour utilizes [client-go][98] to watch for resources in a Kubernetes cluster.
We try to stay up to date with the latest version of the library and by extension the latest versions of Kubernetes.
sunjayBhatia marked this conversation as resolved.
Show resolved Hide resolved
While the `client-go` [compatibility matrix][99] may list older versions of Kubernetes as being compatible and supported by upstream, the Contour project only tests a given version of Contour against the versions listed in the table above.
Combinations not listed are not tested, guaranteed to work, or supported by the Contour maintainers.

## Envoy Extensions
Contour requires the following Envoy extensions.
Expand Down
5 changes: 2 additions & 3 deletions site/content/resources/philosophy.md
Original file line number Diff line number Diff line change
Expand Up @@ -77,14 +77,13 @@ When designing Kubernetes objects, we try to expose information as close as poss
For example, we will ensure that HTTPProxy objects have status conditions that tell the user that created them if there is a problem, rather than just logging that information from Contour itself.

### We meet users where they are
Contour currently supports Ingress v1beta1, HTTPProxy and IngressRoute.
In the near future, we’ll add support for Ingress v1 and after that Ingress v2.
Contour currently supports Ingress v1, HTTPProxy and IngressRoute and we are working on supporting the Kubernetes Gateway API.
sunjayBhatia marked this conversation as resolved.
Show resolved Hide resolved
We don’t ask users to choose which ingress API they want to use, instead we will consider providing support for any requested types to meet users wherever they are.
sunjayBhatia marked this conversation as resolved.
Show resolved Hide resolved

This goal is in conflict with the goal of a minimum surface area, but we realize that channeling all our users to an API which is only implemented in Contour is bad for their interoperability and limits our total addressable market.
The idea for this goal is that we will thoughtfully consider new ingress types as they become available, and add them in if we believe it is a good idea.

By closely tracking the upcoming Ingress V1 and V2 specifications we actively contribute to the broader Kubernetes community as early adopters.
By closely tracking the Ingress v1 and Gateway API specifications we actively contribute to the broader Kubernetes community as early adopters.

## Our pledge to our users

Expand Down
32 changes: 23 additions & 9 deletions site/content/resources/release-process.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ title: Contour Release Process
layout: page
---

- [Minor release process](#minor-release-process)
- [Patch release process](#patch-release-process)
- [Minor release process][1]
- [Patch release process][2]

# Minor Release Process

Expand Down Expand Up @@ -52,7 +52,7 @@ go run ./hack/release/prepare-release.go $CONTOUR_RELEASE_VERSION
1. Document upgrade instructions for the new release (`site/content/resources/upgrading.md`).
1. Commit all changes, push the branch, and PR it into `main`.

_Note: the PR will probably fail the siteproof check due to [#2032](https://github.com/projectcontour/contour/issues/2032). It's a good idea to scan the CI log for any true issues._
_Note: the PR will probably fail the siteproof check due to [#2032][3]. It's a good idea to scan the CI log for any true issues._
sunjayBhatia marked this conversation as resolved.
Show resolved Hide resolved

### Branch and tag release

Expand Down Expand Up @@ -131,21 +131,24 @@ git push ${CONTOUR_OPERATOR_UPSTREAM_REMOTE_NAME} ${CONTOUR_RELEASE_VERSION}

Now you have a tag pushed to Github, go to the release tab on github, select the tag and write up your release notes.

_Note: Filter on the Github label "release note" and Github milestone which should include any PRs which should be called out in the release notes._
You can use [this template][4] as a basic structure to get started.

Specific items to call out in the release notes:
- Filter on the Github label `release-note` and Github milestone which should include any PRs which should be called out in the release notes.
- Also filter on the Github label `release-note-action-required` and ensure these are mentioned specifically with emphasis there may be user action required.
- Be sure to include a section that specifies the compatible kubernetes versions for this version of Contour.

### Toot your horn

- Post a blog entry to projectcontour.io
- Post a note to the #contour channel on k8s slack, also update the /topic with the current release number
- Post a note to the #project-contour channel on the vmware slack, also update the /topic with the current release number
- Send an update to the [cncf-contour-users mailing list](https://lists.cncf.io/g/cncf-contour-users/)
- Send an update to the [cncf-contour-users mailing list][5]

### File issues

If you encountered any problems or areas for improvement while executing the release, file issues before you forget.



# Patch Release Process

## Overview
Expand Down Expand Up @@ -266,14 +269,25 @@ git push ${CONTOUR_OPERATOR_UPSTREAM_REMOTE_NAME} ${CONTOUR_RELEASE_VERSION}

Now you have a tag pushed to Github, go to the release tab on github, select the tag and write up your release notes.

_Note: Filter on the Github label "release note" and Github milestone which should include any PRs which should be called out in the release notes._
You can use [this template][4] as a basic structure to get started.

Specific items to call out in the release notes:
- Filter on the Github label `release-note` and Github milestone which should include any PRs which should be called out in the release notes.
- Also filter on the Github label `release-note-action-required` and ensure these are mentioned specifically with emphasis there may be user action required.
- Be sure to include a section that specifies the compatible kubernetes versions for this version of Contour.

### Toot your horn

- Post a note to the #contour channel on k8s slack, also update the /topic with the current release number
- Post a note to the #project-contour channel on the vmware slack, also update the /topic with the current release number
- Send an update to the [cncf-contour-users mailing list](https://lists.cncf.io/g/cncf-contour-users/)
- Send an update to the [cncf-contour-users mailing list][5]

### File issues

If you encountered any problems or areas for improvement while executing the release, file issues before you forget.

[1]: #minor-release-process
[2]: #patch-release-process
[3]: {{< param github_url >}}/contour/issues/2032
[4]: {{< param github_url >}}/blob/main/hack/release/release-notes-template.md
[5]: https://lists.cncf.io/g/cncf-contour-users/