You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: _posts/2026-02-13-gateway-api-migration.md
+21-7Lines changed: 21 additions & 7 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -16,6 +16,19 @@ hide_header_image: true
16
16
17
17
In this post we'll walk through the current options for getting traffic into OpenFaaS on Kubernetes, the latest Gateway API, and how to migrate from Ingress.
18
18
19
+
Table of contents:
20
+
21
+
*[Preamble: The unfortunate double-whammy](#preamble-the-unfortunate-double-whammy)
22
+
*[Introduction to Gateway API](#introduction-to-gateway-api)
23
+
*[Prerequisites](#prerequisites)
24
+
*[Check and update Gateway API CRDs](#check-and-update-gateway-api-crds)
25
+
*[Install a Gateway API Implementation](#install-a-gateway-api-implementation)
26
+
*[Install cert-manager](#install-cert-manager)
27
+
*[Create a cert-manager Issuer](#create-a-cert-manager-issuer)
28
+
*[Expose the OpenFaaS gateway with TLS](#expose-the-openfaas-gateway-with-tls)
29
+
*[Add the OpenFaaS dashboard](#add-the-openfaas-dashboard)
30
+
*[Final thoughts and next steps](#final-thoughts-and-next-steps)
31
+
19
32
## Preamble: The unfortunate double-whammy
20
33
21
34
For as long as we can remember, Ingress has been the de facto standard for exposing HTTP services from Kubernetes clusters. It has always had a very simple syntax, and has only gone through one major change, graduating from `extensions/v1beta1` to `networking.k8s.io/v1` in Kubernetes 1.19 (around 2019). The key change was the introduction of the `pathType` field for precise path matching and the `IngressClass` (instead of annotations) resource for consistent controller configuration.
@@ -24,22 +37,22 @@ Honestly, we don't need to explain how Ingress works, it's so well understood an
24
37
25
38
But there was a glint in the eyes of the Kubernetes maintainers, and they wanted to provide something that was much more ambitious in its scope, that addressed needs that OpenFaaS customers don't tend to have. The [Istio service mesh](https://istio.io/) was a precursor for this, with its own set of add-ons with similar names, and was eventually crystallised into the *Gateway API*.
26
39
27
-
Most OpenFaaS and Inlets customers we've encountered have been using Ingress (many moved away from Istio and service meshes) preferring simplicity and ease of use. They tended to always be using the [ingress-nginx](https://kubernetes.github.io/ingress-nginx/) controller. A brief history: Ingress Nginx started off as a hobby project for a single maintainer, who was unable to find corporate sponsorship or support from the CNCF, and had to give it up after some tough years on his own. Shortly after 2-3 maintainers stepped up and ran it reasonably well as a spare-time project, but without sustainable backing as part of a day job, the same thing started to happen again. More issues were raised, than there were people ready to fix and test them.
40
+
Most OpenFaaS and Inlets customers we've encountered have been using Ingress (many moved away from Istio and service meshes) preferring simplicity and ease of use. They tended to always be using the [ingress-nginx](https://kubernetes.github.io/ingress-nginx/) controller. A brief history: Ingress Nginx started off as a hobby project for a single maintainer, who was unable to find corporate sponsorship or support from the CNCF, and had to give it up in 2019. Shortly after 2-3 maintainers stepped up and ran it reasonably well as a spare-time project, but without sustainable backing as part of a day job, the same thing started to happen again. More issues were raised, than there were people ready to fix and test them.
28
41
29
42
So the Kubernetes maintainers made a judgement call, they decided to announce project would be officially mothballed in March 2026. No further updates, or security patches. That's a big deal.
30
43
31
-
Why is this a double whammy?
44
+
**Why is this a double whammy?**
32
45
33
46
The announcement had some choice words: "if you must continue to use Ingress" - sounds a bit like you're in the wrong if you are using something that fits your needs. It has an undertone of Ingress being a legacy or inappropriate solution, potentially something that may eventually go the way of ingress-nginx. We focus on simple solutions that work well for our users, however, reading between the lines, we want to make sure you're prepared for the future.
34
47
35
-
So if we're pragmatic, we have a couple of options:
48
+
**So if we're pragmatic, we have a couple of options:**
36
49
37
-
1) try to move to an Ingress Controller like Traefik which can support some of the behaviours and settings of Ingress Nginx,
38
-
2) or move to Gateway API (the developing, but approved future standard).
50
+
1. try to move to an Ingress Controller like Traefik which can support some of the behaviours and settings of Ingress Nginx,
51
+
2. or move to Gateway API (the developing, but approved future standard).
39
52
40
53
Rather than installing one chart, and creating a basic Ingress resource, and adding 1-2 annotations, we have a much more varied path. Gateway API intends to provide an agnostic overlay, shying away from annotations as extensions, and focusing on a new set of decoupled API objects.
41
54
42
-
It's only a bit of YAML, how hard could it be?
55
+
**It's only a bit of YAML, how hard could it be?**
43
56
44
57
For OpenFaaS customers, we're trying to make this transition as simple as possible, starting with this guide that converts YAML for like for like. But one of our other products [Inlets Uplink](https://docs.inlets.dev/uplink/) integrates ingress-nginx much more deeply and relies on its annotations, that is going to be significantly more work both for the controller itself, and for users needing to upgrade.
45
58
@@ -164,13 +177,14 @@ Install cert-manager with Gateway API support enabled:
0 commit comments