Skip to content

feat: integrate gateway api endpoint for chart deployment#329

Open
tboerger wants to merge 2 commits into
backstage:mainfrom
tboerger:feat/gateway-api
Open

feat: integrate gateway api endpoint for chart deployment#329
tboerger wants to merge 2 commits into
backstage:mainfrom
tboerger:feat/gateway-api

Conversation

@tboerger
Copy link
Copy Markdown

@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
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
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
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
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
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. 🙌

hostnames:
{{- toYaml . | nindent 4 }}
{{- end }}
rules:
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.

Looking at the upstream API spec it seems we're lacking the timeouts field within rules. Can you please add it?

https://gateway-api.sigs.k8s.io/reference/spec/#httprouterule

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

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

I can this, but I haven't seen this on any helm resource for other charts so far.

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.

3 participants