Skip to content

docs: replace Ingress NGINX with Gateway API (Envoy Gateway)#5160

Draft
heruan wants to merge 1 commit intomainfrom
docs/gateway-api-migration
Draft

docs: replace Ingress NGINX with Gateway API (Envoy Gateway)#5160
heruan wants to merge 1 commit intomainfrom
docs/gateway-api-migration

Conversation

@heruan
Copy link
Member

@heruan heruan commented Feb 11, 2026

Summary

  • Replace Ingress NGINX configuration with Gateway API (Envoy Gateway) in Kubernetes Kit docs
  • Use HTTPRoute with sessionPersistence for sticky sessions, weighted backendRefs for canary deployments, and RequestHeaderModifier for version notification headers
  • Add deprecation admonition about Ingress NGINX retirement (March 2026)
  • Add deprecation note to Azure Cloud Kit TLS page

Closes vaadin/kubernetes-kit#260

Draft

This PR is a draft because Kubernetes Kit needs to be updated to detect new application versions via the X-AppUpdate request header (set by the Gateway API RequestHeaderModifier filter) instead of relying on NGINX-specific cookie mechanisms.

Test plan

  • Verify Envoy Gateway Helm install command works with a local cluster
  • Verify GatewayClass, Gateway, and HTTPRoute manifests apply correctly
  • Verify session persistence (sticky sessions) works with Envoy Gateway
  • Verify weighted routing correctly sends new sessions to v2 while keeping existing sessions on v1
  • Verify X-AppUpdate header is injected via RequestHeaderModifier and detected by Kubernetes Kit (after kit update)
  • Review rendered documentation for correctness

🤖 Generated with Claude Code

Ingress NGINX is being retired (March 2026). Update Kubernetes Kit
docs to use the Gateway API with Envoy Gateway, which provides
built-in session persistence and portable HTTP header manipulation,
replacing insecure NGINX-specific configuration snippets.

Prerequisite: kubernetes-kit needs to support request header-based
version detection (instead of cookie-based) before merging.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@CLAassistant
Copy link

CLAassistant commented Feb 11, 2026

CLA assistant check
All committers have signed the CLA.

backendRefs:
- name: my-app-v1
port: 80
weight: 0
Copy link
Contributor

Choose a reason for hiding this comment

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

Testing locally, I had to set weight: 1, otherwise all requests where redirected to v2.

backendRefs:
- name: my-app-v1
port: 80
weight: 0
Copy link
Contributor

Choose a reason for hiding this comment

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

Same here; to be able to see the notifications weight needs to be 1

Copy link
Contributor

Choose a reason for hiding this comment

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

A workaround to make ClusterSupport work is to add sessionName: INGRESSCOOKIE to sessionPersistence configuration of HTTPRoute descriptors

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 🔎Iteration reviews

Development

Successfully merging this pull request may close these issues.

Research Gateway API as replacement for rolling-updates

3 participants