Skip to content
Merged
Show file tree
Hide file tree
Changes from 23 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
4fcfad1
Merge pull request #1832 from cert-manager/master
cert-manager-prow[bot] Nov 4, 2025
d481d62
Add cert-manager 1.20 release notes and update manifest
wallrj-cyberark Nov 4, 2025
cc5edae
Merge pull request #1833 from wallrj-cyberark/release-next-cert-manag…
cert-manager-prow[bot] Nov 4, 2025
26521cb
Add docs for new Ingress annotation "acme.cert-manager.io/http01-over…
lunarwhite Nov 19, 2025
c32f9cf
Add redirect for new annotation "acme.cert-manager.io/http01-ingress-…
lunarwhite Nov 19, 2025
077192c
Incorporate review suggestions
lunarwhite Nov 20, 2025
b14023f
Merge pull request #1848 from lunarwhite/new-anno
cert-manager-prow[bot] Nov 21, 2025
cb65c79
Merge remote-tracking branch 'origin/master' into release-next-merge-…
wallrj-cyberark Dec 23, 2025
b30933a
Merge pull request #1899 from wallrj-cyberark/release-next-merge-master
cert-manager-prow[bot] Dec 23, 2025
4f4027c
venafi: Issuer custom fields documentation
k0da Dec 23, 2025
9731efa
Merge pull request #1900 from AbsaOSS/issuer_annotation
cert-manager-prow[bot] Jan 6, 2026
2e29f61
Merge pull request #1918 from cert-manager/master
cert-manager-prow[bot] Jan 16, 2026
315b301
[VC-48226]: Document the default NetworkPolicy and show example egres…
wallrj-cyberark Jan 9, 2026
8336efc
Merge pull request #1911 from wallrj-cyberark/8370-enable-network-policy
cert-manager-prow[bot] Jan 16, 2026
e4d264f
listenerset: documentation
maelvls Feb 17, 2026
6a9fa66
address Hemant's feedback: add the two new annotations
maelvls Feb 23, 2026
b3f207c
two annotations were missing from the _redirect file
maelvls Feb 23, 2026
3bf9e7c
Merge pull request #1970 from maelvls/listenerset-documentation
cert-manager-prow[bot] Feb 23, 2026
4432928
gateway.md: remove backticks from resource names
maelvls Feb 24, 2026
ed5d6b9
Merge pull request #1977 from maelvls/listenerset-documentation
cert-manager-prow[bot] Feb 28, 2026
6016ace
Merge branch 'master' into release-next
maelvls Mar 10, 2026
b100485
release-1.20: update the change log
maelvls Mar 10, 2026
7d32c16
Merge pull request #1997 from maelvls/release-notes-for-1.20
cert-manager-prow[bot] Mar 11, 2026
64342e0
bump supported releases
maelvls Mar 10, 2026
90cb77c
ran ./scripts/gendocs/generate-new-import-path-docs
maelvls Mar 11, 2026
1c95724
Merge pull request #2007 from maelvls/bump-versions-to-1.20
cert-manager-prow[bot] Mar 11, 2026
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
12 changes: 12 additions & 0 deletions .spelling
Original file line number Diff line number Diff line change
Expand Up @@ -594,8 +594,17 @@ v1.18.0.
v1.19
v1.19.0
v1.19.1
v1.20.0
v1.19.2
v1.20.0
v1.19.x
v1.20.0
v1.20.
v1.19.2
v1.20.0
Rebranding
alpha.0
beta.0
v1.4.1
v1.5
v1.5.0
Expand Down Expand Up @@ -861,6 +870,9 @@ example.org
experimental.cert
http01-edit-in-place
http01-ingress-class
http01-ingress-ingressclassname
http01-parentrefkind
http01-parentrefname
ingress.class
ip-sans
kubernetes.io
Expand Down
6 changes: 6 additions & 0 deletions content/docs/configuration/acme/http01/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,9 @@ controllers support `ingressClassName`, with the notable exception of
ingress-gce (as per the page [Configure Ingress for external load
balancing](https://cloud.google.com/kubernetes-engine/docs/how-to/load-balance-ingress)).

> You can override the `ingressClassName` on a per-Ingress basis using the
[`acme.cert-manager.io/http01-ingress-ingressclassname`](https://cert-manager.io/docs/reference/annotations/#acmecert-manageriohttp01-ingress-ingressclassname) annotation.

### `class`

If the `class` field is specified, a new Ingress resource with a randomly
Expand All @@ -79,6 +82,9 @@ value set to the value of the `class` field.
This field is only recommended with ingress-gce. ingress-gce [doesn't support the
`ingressClassName` field](https://cloud.google.com/kubernetes-engine/docs/how-to/load-balance-ingress).

> You can override the `class` on a per-Ingress basis using the
[`acme.cert-manager.io/http01-ingress-class`](https://cert-manager.io/docs/reference/annotations/#acmecert-manageriohttp01-ingress-class) annotation.

### `name`

If the `name` field is specified, cert-manager will edit the named
Expand Down
42 changes: 42 additions & 0 deletions content/docs/configuration/venafi.md
Original file line number Diff line number Diff line change
Expand Up @@ -304,3 +304,45 @@ metadata:
]
...
```

### Issuer Custom Fields

Starting `v1.20`, you can use `venafi.cert-manager.io/custom-fields` annotation on an `Issuer` or `ClusterIssuer` resource.
This configuration would be applied to all Certificate requests created from `Issuer`.

It is possible to override or append custom configuration to `Certificate` resources via the `Issuer` assigned to it.
For example with an `Issuer` such as:

```yaml
apiVersion: cert-manager.io/v1
kind: Issuer
metadata:
name: corp-issuer
annotations:
venafi.cert-manager.io/custom-fields: |-
[
{"name": "Environemnt", "value": "Dev"},
]
Comment on lines +324 to +325
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The field name "Environemnt" appears to be misspelled; if this is intended to be an environment field, it should be "Environment" to avoid propagating a typo into user configs.

Copilot uses AI. Check for mistakes.
```
Comment on lines +322 to +326
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These JSON examples contain a trailing comma after the last element, which makes the JSON invalid. Since the docs say the annotation value is a JSON array, the examples should be valid JSON (no trailing commas).

Copilot uses AI. Check for mistakes.

and a `Certificate` resource:

```yaml
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: example-com-certificate
annotations:
venafi.cert-manager.io/custom-fields: |-
[
{"name": "Team", "value": "amber"},
]
Comment on lines +336 to +339
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This JSON example also has a trailing comma after the last element, which makes the annotation value invalid JSON. Please remove the trailing comma so users can copy/paste the example as-is.

Copilot uses AI. Check for mistakes.
...
```

Final configuration will be:

```json
{"name": "Environemnt", "value": "Dev"},
{"name": "Team", "value": "amber"}
Comment on lines +346 to +347
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The "Final configuration" JSON snippet is not valid JSON (it’s missing the surrounding array and includes commas as if it were part of a list). Consider showing the merged value as a proper JSON array to match what the annotation expects.

Suggested change
{"name": "Environemnt", "value": "Dev"},
{"name": "Team", "value": "amber"}
[
{"name": "Environemnt", "value": "Dev"},
{"name": "Team", "value": "amber"}
]

Copilot uses AI. Check for mistakes.
```
38 changes: 38 additions & 0 deletions content/docs/installation/best-practice.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,6 +47,44 @@ Or you may prefer to use the custom resources provided by your CNI software.
> 📖 Learn about the [Kubernetes builtin NetworkPolicy API](https://kubernetes.io/docs/concepts/services-networking/network-policies/)
> and see [some example policies](https://kubernetes.io/docs/concepts/services-networking/network-policies/#default-policies).

The cert-manager Helm chart allows you to create a `NetworkPolicy` resource for
each `Deployment`.

By default, it allows inbound traffic to all the listening ports of each component.
And by default, it allows outbound traffic to:
- TCP port 443: For connections to the Kubernetes API server and other
in-cluster and external HTTPS API servers.
- TCP port 6443: For connections to the Kubernetes API server on OpenShift.
- TCP and UDP port 53: To resolve DNS names using the in-cluster DNS and
external DNS servers when using DNS01.
- TCP port 80: So that the controller can perform ACME HTTP01 self-checks before
accepting the ACME server challenge.

These are over-permissive defaults to provide a good installation experience.

You should customize the `ingress` and `egress` rules to restrict the inbound
and outbound traffic to allow only those connections which are necessary for
your cert-manager configuration.

Example Helm values:

```yaml
# helm-values.yaml
networkPolicy:
enabled: true

webhook:
networkPolicy:
enabled: true

cainjector:
networkPolicy:
enabled: true
```

There are examples of extended egress rules in the example Helm chart values
file at the end of this document.

### Network Requirements

Here is an overview of the network requirements:
Expand Down
12 changes: 10 additions & 2 deletions content/docs/manifest.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,16 @@
"path": "/docs/releases/README.md"
},
{
"title": "1.19",
"path": "/docs/releases/release-notes/release-notes-1.19.md"
"title": "1.20",
"path": "/docs/releases/release-notes/release-notes-1.20.md"
},
{
"title": "Upgrade 1.19 to 1.20",
"path": "/docs/releases/upgrading/upgrading-1.19-1.20.md"
},
{
"title": "1.19",
"path": "/docs/releases/release-notes/release-notes-1.19.md"
},
Comment on lines +28 to 34
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Indentation in this JSON block is inconsistent with the surrounding entries (these lines are indented further than the other route objects). Please align indentation to match the existing 2-space style used throughout the file to keep diffs stable and readable.

Copilot uses AI. Check for mistakes.
{
"title": "Upgrade 1.18 to 1.19",
Expand Down
43 changes: 37 additions & 6 deletions content/docs/reference/annotations.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,12 +27,43 @@ This is useful for keeping compatibility with the `ingress-gce` component.
## acme.cert-manager.io/http01-ingress-class
- [Ingress](../usage/ingress.md)

this annotation allows you to configure the ingress class that will be used to
solve challenges for this ingress. Customizing this is useful when you are
trying to secure internal services, and need to solve challenges using a
different ingress class to that of the ingress. If not specified and the
`acme-http01-edit-in-place` annotation is not set, this defaults to the ingress
class defined in the Issuer resource.
Allows the `kubernetes.io/ingress.class` annotation to be configured.
Customizing this is useful when you are trying
to secure internal services, and need to solve challenges using a different ingress class
to that of the ingress. If not specified and the `acme-http01-edit-in-place` annotation is
not set, this defaults to the `http01.ingress.class` defined in the Issuer resource.
Comment on lines +30 to +34
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section refers to the acme-http01-edit-in-place annotation, but the correct annotation name (and the heading above) is acme.cert-manager.io/http01-edit-in-place. Please update the reference to the fully-qualified annotation key.

Copilot uses AI. Check for mistakes.

## acme.cert-manager.io/http01-ingress-ingressclassname

- [Ingress](../usage/ingress.md)

Allows the Ingress's `spec.ingressClassName` to be configured.
Customizing this is useful when you are trying
to secure internal services, and need to solve challenges using a different ingress class
to that of the ingress. If not specified and the `acme-http01-edit-in-place` annotation is
not set, this defaults to the `http01.ingress.ingressClassName` defined in the Issuer resource.
Comment on lines +40 to +44
Copy link

Copilot AI Mar 11, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section refers to the acme-http01-edit-in-place annotation, but the correct annotation name is acme.cert-manager.io/http01-edit-in-place. Please update the reference to avoid pointing users at a non-existent key.

Copilot uses AI. Check for mistakes.

## acme.cert-manager.io/http01-parentrefkind

- [Certificate](../usage/certificate.md)

This annotation is automatically added by cert-manager to Certificate resources
when they are created from a [Gateway](../usage/gateway.md) or
[ListenerSet](../usage/gateway.md#listenerset) resource. It stores the kind of
the parent resource (either `Gateway` or `ListenerSet`) that triggered the
creation of the Certificate. This is used internally by the ACME HTTP-01 solver
to know where to attach the temporary HTTPRoute for the challenge.

## acme.cert-manager.io/http01-parentrefname

- [Certificate](../usage/certificate.md)

This annotation is automatically added by cert-manager to Certificate resources
when they are created from a [Gateway](../usage/gateway.md) or
[ListenerSet](../usage/gateway.md#listenerset) resource. It stores the name of
the parent resource that triggered the creation of the Certificate. This is used
internally by the ACME HTTP-01 solver to know where to attach the temporary
HTTPRoute for the challenge.

## cert-manager.io/allow-direct-injection
- `Secret`
Expand Down
2 changes: 1 addition & 1 deletion content/docs/releases/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -332,7 +332,7 @@ NB: cert-manager 1.12 was a public Long Term Support (LTS) release sponsored by

[s]: #kubernetes-supported-versions
[test]: #supported-vs-tested
[1.20]: https://github.com/cert-manager/cert-manager/milestone/42
[1.20]: ./release-notes/release-notes-1.20.md
[1.19]: ./release-notes/release-notes-1.19.md
[1.18]: ./release-notes/release-notes-1.18.md
[1.17]: ./release-notes/release-notes-1.17.md
Expand Down
Loading