Skip to content

Blog post to address concerns about ingress-nginx's EOL coming in March 2026#1857

Merged
cert-manager-prow[bot] merged 10 commits intocert-manager:masterfrom
maelvls:blog-post-ingress-nginx-eol
Dec 2, 2025
Merged

Blog post to address concerns about ingress-nginx's EOL coming in March 2026#1857
cert-manager-prow[bot] merged 10 commits intocert-manager:masterfrom
maelvls:blog-post-ingress-nginx-eol

Conversation

@maelvls
Copy link
Copy Markdown
Member

@maelvls maelvls commented Nov 26, 2025

Description of the change Preview link
Main annoucement announcements/2025/11/26/ingress-nginx-eol-and-gateway-api/
Added note in tutorial docs/tutorials/acme/nginx-ingress
Added note in tutorial docs/tutorials/venafi/venafi
Added note in tutorial docs/tutorials/zerossl/zerossl
Added note in Ingress page docs/usage/ingress
Added note in the Gateway page to warn people that cert-manager doesn't support yet self-service for folks coming from Ingresses docs/usage/gateway

I've addressed the feedback I got on Slack.

Note that the diagrams and most of the blog post come from cert-manager/cert-manager#7839.

Fixes cert-manager/cert-manager#8278.

CyberArk tracker: VC-47740

Signed-off-by: Maël Valais <mael@vls.dev>
…ession"

Signed-off-by: Maël Valais <mael@vls.dev>
@cert-manager-prow cert-manager-prow bot added dco-signoff: yes Indicates that all commits in the pull request have the valid DCO sign-off message. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 26, 2025
@netlify
Copy link
Copy Markdown

netlify bot commented Nov 26, 2025

Deploy Preview for cert-manager ready!

Built without sensitive environment variables

Name Link
🔨 Latest commit 92fd028
🔍 Latest deploy log https://app.netlify.com/projects/cert-manager/deploys/692ed8e7ca6b600008bd6ad6
😎 Deploy Preview https://deploy-preview-1857--cert-manager.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@cert-manager-prow cert-manager-prow bot added size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. and removed size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Nov 26, 2025
Signed-off-by: Maël Valais <mael@vls.dev>
@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch from 7fa8c48 to f476543 Compare November 26, 2025 12:00
@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch from 9b2e80c to 41d91ec Compare November 26, 2025 12:12
Context around 1.20: the page https://cert-manager.io/docs/releases/
says that we should be spelling release branches (also called 'releases')
without the 'v' prefix.

Signed-off-by: Maël Valais <mael@vls.dev>
@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch from 41d91ec to f168bc8 Compare November 26, 2025 14:45
Comment on lines +112 to +113
This restores the separation of concerns while preserving the security
improvements of Gateway API's design:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Something should really explain why it works. Namely that a given something becomes first come first served and as long as no one accidentally deletes it, it's committed to that resource. At least, I think that's why it works. As a non expert, I can't really be sure. And I don't want to have to read all of the other docs (I will, because I'm more or less committed to reviewing them, but everyone else shouldn't have to, especially not yet, as they aren't in great shape).

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

By "why it works", what are you referring to? Preserving the improvements of Gateway API's design? I'd love to add more details to this paragraph, but I'm a little short on time.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Why listenersets ensures that if one team claims a domain a second team can't steal traffic for it.


- ingress-nginx and InGate will reach EOL in March 2026, but it is unclear to
cert-manager users what's possible today and what will only be possible once
`XListenerSet` is supported.
Copy link
Copy Markdown
Contributor

@ThatsMrTalbot ThatsMrTalbot Nov 27, 2025

Choose a reason for hiding this comment

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

At this point in the article you have not mentioned GatewayAPI at all - I would not expect a reader to know what an XListenerSet is.

TBH, I think this point is redundant, you cover the fact cert-manager is waiting on XListenerSet support and that our support is not ready yet in the next two bullet points.

If we don't want to drop this bullet point entirely, I would:

  1. Move it to the end of the list so they have context from the other bullet points what an XListenerSet is
  2. Reword it from but it is unclear to cert-manager users to we want to clarify to cert-manager users

Copy link
Copy Markdown
Member Author

@maelvls maelvls Nov 27, 2025

Choose a reason for hiding this comment

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

Fair point, it did feel off to talk about XListenerSet upfront... thank you for pointing that out. Also, I don't like these bullet points as they feel a bit too much ChatGPT-esque, so I've rephrased the paragraph to:

cert-manager users who migrate from Ingress to Gateway API will realize that
they not have the same TLS self-service experience due to Gateway being owned by
Cluster Operators. The community brought up this concern in various forums.

The missing piece is Gateway API's experimental XListenerSet resource, which
aims to restore per-team TLS configuration on a shared Gateway. cert-manager
will add experimental XListenerSet support in 1.20, targeted for 10 February
2026, with alpha builds in January 2026.

And since ingress-nginx and InGate will reach EOL in March 2026, we want to
clarify to cert-manager users
what's possible today and what will only be
possible once cert-manager supports XListenerSet.

WDYT?

Copy link
Copy Markdown
Contributor

@ThatsMrTalbot ThatsMrTalbot Nov 27, 2025

Choose a reason for hiding this comment

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

I don't really like the cert-manager users will realise format. We the cert-manager devs realise, thats why we are making the post.

Maybe something like this

Since the announcement that ingress-nginx and InGate will reach EOL in March 2026 we have seen more questions about the Ingres to GatewayAPI migration path. Currently cert-manager does not have the same TLS self-service experience due to design differences between Ingress and GatewayAPI.

Whereas Ingress was a single resource, GatewayAPI breaks the resource down into cluster operator owned Gateway resources, and team owned HTTPRoute resources, with certificates being configured on the cluster operator owned Gateway resources.

The missing piece is Gateway API's experimental XListenerSet resource, which aims to restore per-team TLS configuration on a shared Gateway. cert-manager will add experimental XListenerSet support in 1.20, targeted for 10 February 2026, with alpha builds in January 2026.

Copy link
Copy Markdown
Member Author

@maelvls maelvls Nov 28, 2025

Choose a reason for hiding this comment

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

I like what you wrote. I'll use that, is that OK? I've fixed a few things, but it's mostly the same:

Since the announcement that ingress-nginx and InGate will reach end of life in March 2026, we have seen more questions about the migration path from Ingress to Gateway API. Today, cert-manager cannot offer the same TLS self-service experience because of design differences between the two APIs.

Whereas Ingress was a single resource, Gateway API breaks the resource down into cluster-operator-owned Gateway resources and team-owned HTTPRoute resources, with certificates configured on cluster-operator-owned Gateways.

The missing piece is Gateway API's experimental XListenerSet resource, which aims to restore per-team TLS configuration on a shared Gateway. cert-manager plans to add experimental XListenerSet support in 1.20, targeted for 10 February 2026, with alpha builds in January 2026.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Only nit is the comma here: reach end of life in March 2026, we have seen

It leaves a weird spacing when reading it, I think it reads better without that comma.

Other then that very minor nit, it looks good to me 🙂

Copy link
Copy Markdown
Contributor

@jsoref jsoref Nov 28, 2025

Choose a reason for hiding this comment

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

I'd probably reorder it to:

We have seen questions about migrating from Ingress to Gateway API since the announcement that ingress-nginx and InGate will reach end of life in March 2026.

-- drop more and replace migration path, etc. to simplify

Copy link
Copy Markdown
Member Author

@maelvls maelvls Nov 30, 2025

Choose a reason for hiding this comment

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

[The comma] leaves a weird spacing when reading it, I think it reads better without that comma.

I can feel that weird spacing your are talking about. The reason I've added that comma is because of the long introductory clause ("Since..."). This writing guide explains why the comma is warranted.

I like Josh's suggestion to reorder the sentence: it works around my very long introductory clause and avoids any confusion.

@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch from c284d0b to 48b32e5 Compare November 27, 2025 08:41
Signed-off-by: Maël Valais <mael@vls.dev>
Signed-off-by: Maël Valais <mael@vls.dev>
Comment on lines +11 to +13
cert-manager users who migrate from Ingress to Gateway API will realize that
they do not have the same TLS self-service experience due to Gateway being owned by
Cluster Operators. The community brought up this concern in various forums.
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I agree with @ThatsMrTalbot about "cert-manager users ... will realize".

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I've gone with Adam's proposed paragraph, does it look better?

Copy link
Copy Markdown
Member

@wallrj-cyberark wallrj-cyberark left a comment

Choose a reason for hiding this comment

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

Nice post @maelvls

But I don't like the opening paragraph. I feel like you should start with what you've got in the third paragraph

Ingress-nginx and InGate will reach EOL in March 2026, and we want to
reassure cert-manager users that we're on it!
In this blog post you will learn about the options available to you today and what we have planned for the next versions of cert-manager.

... or something like that.

Also suggest add cross-links to this blog post from the relevant reference docs and tutorials.

@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch from 4591829 to 27e7cac Compare November 28, 2025 10:49
@maelvls
Copy link
Copy Markdown
Member Author

maelvls commented Nov 28, 2025

I think this is good to go. @wallrj-cyberark can you give me a LGTM? Thanks

hi.mladen Outdated
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Remove this :-)

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

ooops.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Made me think of this video from the Primagen: https://www.youtube.com/watch?v=YFkeOBqfQBw

@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch 2 times, most recently from db0e4d9 to bcbb743 Compare November 28, 2025 13:51
---

> **Upcoming change:** ingress-nginx is scheduled for end of life in March 2026. See [Ingress-nginx End-of-Life: What cert-manager Supports Today and What's Coming](/announcements/2025-11-26-ingress-nginx-eol-and-gateway-api) for migration guidance and Gateway API plans.

Copy link
Copy Markdown
Member

@wallrj-cyberark wallrj-cyberark Nov 28, 2025

Choose a reason for hiding this comment

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

Link doesn't work. Did you check it? Is it just me?

https://deploy-preview-1857--cert-manager.netlify.app/announcements/2025-11-26-ingress-nginx-eol-and-gateway-api/

vs

https://deploy-preview-1857--cert-manager.netlify.app/announcements/2025/11/26/ingress-nginx-eol-and-gateway-api/

The automated link checker only works for relative markdown links to the raw markdown.md file, I think.

image

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

You are right. I pushed the commit to verify (didn't build locally) but haven't had time to test and fix yet (had to run to the hospital).

I'll finish this tomorrow

Copy link
Copy Markdown
Member Author

@maelvls maelvls Nov 30, 2025

Choose a reason for hiding this comment

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

I'm back.

I made a mistake in the backlinks. I fixed them and checked the links in each of the pages:

Description of the change Preview link
Added note in tutorial docs/tutorials/acme/nginx-ingress
Added note in tutorial docs/tutorials/venafi/venafi
Added note in tutorial docs/tutorials/zerossl/zerossl
Added note in Ingress page docs/usage/ingress
Added note in the Gateway page to warn people that cert-manager doesn't support yet self-service for folks coming from Ingresses docs/usage/gateway

@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch 5 times, most recently from fc51d0a to fbb48f2 Compare December 1, 2025 11:16
Signed-off-by: Maël Valais <mael@vls.dev>
@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch 2 times, most recently from ee3eb7f to 79f0d89 Compare December 1, 2025 11:19
Signed-off-by: Maël Valais <mael@vls.dev>
@maelvls maelvls force-pushed the blog-post-ingress-nginx-eol branch from 79f0d89 to 9ef28ad Compare December 1, 2025 11:49
@wallrj
Copy link
Copy Markdown
Member

wallrj commented Dec 2, 2025

/approve
/lgtm

@cert-manager-prow cert-manager-prow bot added lgtm Indicates that a PR is ready to be merged. approved Indicates a PR has been approved by an approver from all required OWNERS files. labels Dec 2, 2025
@wallrj-cyberark
Copy link
Copy Markdown
Member

@maelvls Not sure why this isn't merging. Do you need to rebase it on latest master? Is that a new rule? I don't remember having to in the past.

@cert-manager-prow cert-manager-prow bot removed the lgtm Indicates that a PR is ready to be merged. label Dec 2, 2025
@cert-manager-prow
Copy link
Copy Markdown
Contributor

New changes are detected. LGTM label has been removed.

@maelvls
Copy link
Copy Markdown
Member Author

maelvls commented Dec 2, 2025

Not sure. Sounds like something new? I've pressed "Update branch"... which removed the LGTM label.

@maelvls maelvls added the lgtm Indicates that a PR is ready to be merged. label Dec 2, 2025
@jsoref
Copy link
Copy Markdown
Contributor

jsoref commented Dec 2, 2025

Do you need to dismiss the requested change?

@cert-manager-prow
Copy link
Copy Markdown
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: wallrj, wallrj-cyberark

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@cert-manager-prow cert-manager-prow bot merged commit 81aea8f into cert-manager:master Dec 2, 2025
7 checks passed
@wallrj-cyberark wallrj-cyberark added the cybr Used by CyberArk-employed maintainers to report to line management what's being worked on. label Dec 12, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cybr Used by CyberArk-employed maintainers to report to line management what's being worked on. dco-signoff: yes Indicates that all commits in the pull request have the valid DCO sign-off message. lgtm Indicates that a PR is ready to be merged. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Publish an announcement regarding Gateway API with a multi-tenant single Ingress controller

6 participants