Skip to content

feat: integrate gateway api endpoint for chart deployment#329

Merged
tumido merged 3 commits into
backstage:mainfrom
tboerger:feat/gateway-api
May 25, 2026
Merged

feat: integrate gateway api endpoint for chart deployment#329
tumido merged 3 commits into
backstage:mainfrom
tboerger:feat/gateway-api

Conversation

@tboerger
Copy link
Copy Markdown
Contributor

@tboerger tboerger commented May 9, 2026

Description of the change

The Gateway API had been established as the new standard as an alternative for Ingress resources. With this change it's possible to deploy the HTTPRoute resource directly as part of the chart.

Existing or Associated Issue(s)

None

Additional Information

None

Checklist

  • Chart version bumped in Chart.yaml according to semver.
  • Variables are documented in the values.yaml and added to the README.md. The helm-docs utility can be used to generate the necessary content. Use helm-docs --dry-run to preview the content.
  • JSON Schema generated.
  • List tests pass for Chart using the Chart Testing tool and the ct lint command.

@tboerger tboerger requested a review from a team as a code owner May 9, 2026 16:54
@ChrisJBurns
Copy link
Copy Markdown
Contributor

@tboerger Thanks for this, could you perhaps add a CI test for the gateway api resources?

@tboerger
Copy link
Copy Markdown
Contributor Author

tboerger commented May 9, 2026

Sure, let me check that.

@tboerger tboerger force-pushed the feat/gateway-api branch from 56a1c0c to 2a2d36b Compare May 9, 2026 20:25
@tboerger
Copy link
Copy Markdown
Contributor Author

tboerger commented May 9, 2026

I have added charts/backstage/ci/httproute-values.yaml now.

The Gateway API had been established as the new standard as an
alternative for Ingress resources. With this change it's possible to
deploy the HTTPRoute resource directly as part of the chart.

Signed-off-by: Thomas Boerger <thomas@webhippie.de>
@tboerger tboerger force-pushed the feat/gateway-api branch from 2a2d36b to 6b4e237 Compare May 10, 2026 22:12
@tboerger
Copy link
Copy Markdown
Contributor Author

I have checked everything with pre-commit now, it should be fine :)

@tumido
Copy link
Copy Markdown
Member

tumido commented May 11, 2026

Hi @tboerger thank you for opening your PR! 🙌

I 💯 agree with you that Backstage chart should have support for Gateway, it's a great addition.

However it seems our CI is not currently ready. This is not an issue with your PR by itself, yet it is still required to adjust the test setup before we can merge your PR.

The issue is that we use a Kind cluster to test the chart and this cluster has no Gateway provider.

I suggest we extend it with
https://github.com/kubernetes-sigs/cloud-provider-kind

(see: https://kubernetes.io/blog/2026/01/28/experimenting-gateway-api-with-kind/ )

Here is where we need to extend the workflow:

- name: Create KIND Cluster
if: steps.list-changed.outputs.changed == 'true'
uses: helm/kind-action@ef37e7f390d99f746eb8b610417061a60e82a6cc # pin@v1.14.0
- name: Install Ingress Controller
if: steps.list-changed.outputs.changed == 'true'
run: "helm install ingress-nginx/ingress-nginx --generate-name --set controller.service.type='NodePort' --set controller.admissionWebhooks.enabled=false"
- name: Run chart-testing (install)
if: steps.list-changed.outputs.changed == 'true'
run: ct install --config ct-install.yaml --target-branch "${{ github.event.pull_request.base.ref }}"

@tboerger
Copy link
Copy Markdown
Contributor Author

@tumido I think it does not even need the kind cloud provider, it should be already enough to install the Gateway API CRDs to get the tests working as expected.

Signed-off-by: Thomas Boerger <thomas@webhippie.de>
@tboerger
Copy link
Copy Markdown
Contributor Author

Looks like this solved the testing :)

Copy link
Copy Markdown
Member

@tumido tumido left a comment

Choose a reason for hiding this comment

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

I think I found just one little deviation from the upstream core spec, otherwise LGTM. 🙌

Comment thread charts/backstage/templates/httproute.yaml
@younsl
Copy link
Copy Markdown

younsl commented May 20, 2026

Could kind and group be templatable (empty by default) for backendRefs?

When omitted, the controller fills in defaults and Argo CD reports the HTTPRoute as out-of-sync on every reconcile. See argoproj/argo-cd#22151.

@tboerger
Copy link
Copy Markdown
Contributor Author

tboerger commented May 20, 2026

parentRefs is directly piped into toYaml, so you can define whatever you want.

Edit: just the name attribute per row is required.

Signed-off-by: Thomas Boerger <thomas@webhippie.de>
@tboerger
Copy link
Copy Markdown
Contributor Author

I have integrated the latest comment.

@ChrisJBurns
Copy link
Copy Markdown
Contributor

Am happy to approve, did you want to put your green button stamp on it too @tumido

Copy link
Copy Markdown
Member

@tumido tumido left a comment

Choose a reason for hiding this comment

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

/lgtm
/approve

@tumido
Copy link
Copy Markdown
Member

tumido commented May 25, 2026

Sorry for the delay on my side, was caught by other work.. 🙂 Approved! Thank you! 👍

@tumido tumido merged commit 927fe5d into backstage:main May 25, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants