Skip to content

feat(metal-control-plane): add GatewayAPI support#156

Merged
l0wl3vel merged 7 commits into
masterfrom
feat/gateway-api
May 12, 2026
Merged

feat(metal-control-plane): add GatewayAPI support#156
l0wl3vel merged 7 commits into
masterfrom
feat/gateway-api

Conversation

@l0wl3vel
Copy link
Copy Markdown
Contributor

@l0wl3vel l0wl3vel commented Apr 28, 2026

Description

Add GatewayAPI support to metal-control-plane

Used AI-Tools ✨

  • none used for generation

Closes #157

References: metal-stack/metal-roles#562

Noteworthy

The `metal-control-plane` helm chart can now use Gateway API resources in place of `Ingress` resources and TCP port exposure using `ingress-nginx`. This marks the start of our journey to deprecate the use of `Ingress`.

What does that mean for you? Right now, nothing. You will not have to move to Gateway API right now and we will support both `Ingress` and Gateway API during a transition period. During the next releases we will wire up the missing pieces and document a migration process. Now is a great time to familiarize yourself with Gateway API to ensure a smooth transistion

If you want to check on the progress or leave feedback, take a look at our umbrella issue here: https://github.com/metal-stack/metal-roles/issues/562

Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
@l0wl3vel l0wl3vel requested a review from a team as a code owner April 28, 2026 10:08
Copy link
Copy Markdown
Contributor

@Gerrit91 Gerrit91 left a comment

Choose a reason for hiding this comment

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

Thanks for taking on this topic. PR looks good!

Can you please reference the umbrella issue in metal-roles in the PR description?

As far as I know we have not documented anything or discussed / decided on how the migration will take place. Can we elaborate a bit on this topic somewhere? Because maybe we need to write something to the release notes. Is this already running somewhere? With which implementation? Would be nice if this would run in the mini-lab, I think?

Comment thread charts/metal-control-plane/templates/httproute.yaml Outdated
@l0wl3vel
Copy link
Copy Markdown
Contributor Author

l0wl3vel commented Apr 28, 2026

Thanks for taking on this topic. PR looks good!

Can you please reference the umbrella issue in metal-roles in the PR description?

As far as I know we have not documented anything or discussed / decided on how the migration will take place. Can we elaborate a bit on this topic somewhere? Because maybe we need to write something to the release notes. Is this already running somewhere? With which implementation? Would be nice if this would run in the mini-lab, I think?

Sure, going to add that to the umbrella.

The plan is to add the required functionality for GatewayAPI to all roles,charts and the mini-lab in addition to ingress and the ingress-nginx tcp exposure we are doing right now in mini-lab. GatewayAPI will be disabled by default in the roles and charts. This way operators can migrate gradually and switch over one service at a time, if they would like.

I would like to enable GatewayAPI in the mini-lab by default as soon as everything is ready so we get some mileage before rolling it out to real clusters.

I am developing this using mini-lab, so there is going to be a reference implementation using envoy-gateway on top of cloud-provider-kind/ for LoadBalancer Services.

@Gerrit91
Copy link
Copy Markdown
Contributor

Thanks, sounds good to me.

Two more questions:

  1. For the migration is it planned that operators deploy both resource types (ingress + gateway) and then point their DNS entry to the new gateway controller?
  2. If there was a mini-lab PR that I can use for trying this out, it would be easier for me to verify this PR. Do you think it's possible to create one for this purpose?

@l0wl3vel
Copy link
Copy Markdown
Contributor Author

Yes, the goal is to have gatewayapi behave in the same way as our current ingress setup. Operators should be able to deploy both and only have to adjust their DNS records to point to the gateway(s).

The mini-lab PR is not ready yet. Going to set this PR to draft and ping you when it is ready. Sorry for the disturbance.

@l0wl3vel l0wl3vel marked this pull request as draft April 28, 2026 13:29
@Gerrit91
Copy link
Copy Markdown
Contributor

Thanks a lot!

@iljarotar iljarotar moved this to In Progress in Development May 4, 2026
l0wl3vel added 3 commits May 4, 2026 14:54
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
@l0wl3vel l0wl3vel marked this pull request as ready for review May 4, 2026 16:04
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
Copy link
Copy Markdown
Contributor

@Gerrit91 Gerrit91 left a comment

Choose a reason for hiding this comment

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

Maybe add a Noteworthy section for the release notes that the metal-control-plane helm chart now supports Gateway API?

Comment thread charts/metal-control-plane/templates/metal-api-gateway.yaml
Comment thread charts/metal-control-plane/values.yaml
Signed-off-by: Benjamin Ritter <benjamin.ritter@x-cellent.com>
@l0wl3vel l0wl3vel requested a review from Gerrit91 May 12, 2026 11:10
Copy link
Copy Markdown
Contributor

@Gerrit91 Gerrit91 left a comment

Choose a reason for hiding this comment

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

Looks good to me, I did not try it out and I might find something when I can make a final check in the mini-lab. In this case, I would ask for a follow-up PR.

@l0wl3vel
Copy link
Copy Markdown
Contributor Author

Thanks for the review, sounds good

@l0wl3vel l0wl3vel merged commit 1e69f07 into master May 12, 2026
6 checks passed
@github-project-automation github-project-automation Bot moved this from In Progress to Done in Development May 12, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Implement GatewayAPI support

3 participants