Skip to content

Conversation

@michaelbeutler
Copy link
Contributor

This pull request adds support for the Kubernetes Gateway API to all Truvami Helm charts (API, Bridge, Dashboard, and Decoder), providing a modern alternative to the traditional Ingress resource for routing external traffic. The changes introduce new configuration options for HTTPRoute resources, update documentation, and add the necessary Helm templates to generate Gateway API manifests. Ingress and Gateway API are now mutually exclusive options in these charts.

Gateway API Support:

  • Added support for Gateway API's HTTPRoute resource in all charts, allowing users to enable httpRoute as an alternative to ingress for traffic routing. Each chart now includes a templates/httproute.yaml file that generates an HTTPRoute manifest when httpRoute.enabled is set to true. [1] [2] [3]
  • Updated values.yaml files in all charts to include a new httpRoute section with configurable options such as enabled, annotations, parentRefs, hostnames, and rules. This provides flexibility for customizing the Gateway API integration. [1] [2] [3]

Documentation Updates:

  • Enhanced all chart README.md files with detailed instructions on enabling and configuring Gateway API support, including migration steps from Ingress to Gateway API and example configurations. [1] [2] [3] [4]
  • Updated the values tables in the documentation to reflect the new httpRoute configuration options for each chart. [1] [2] [3] [4]

Helm Chart Template Improvements:

  • Introduced .gotmpl files for each chart's README to ensure documentation is consistently generated and up-to-date with the chart's values and configuration options. [1] [2] [3] [4]

michaelbeutler and others added 3 commits January 7, 2026 16:04
- Introduced `httpRoute` configuration in `values.yaml` for `truvami-api`, `truvami-bridge`, `truvami-dashboard`, `truvami-decoder`, `truvami-gateway`, and `truvami-siren` charts.
- Created `httproute.yaml` templates to define HTTPRoute resources for Gateway API.
- Updated README files to include instructions for using Gateway API and migrating from Ingress.
- Ensured compatibility by making Ingress and HTTPRoute mutually exclusive.
@github-actions
Copy link
Contributor

github-actions bot commented Jan 7, 2026

📊 Chart Diagram

Visual representation of Kubernetes resources in changed charts:

truvami-dashboard (Before/After)
Before After
Before After
truvami-decoder (Before/After)
Before After
Before After
truvami-docs (Before/After)
Before After
Before After
truvami-gateway (Before/After)
Before After
Before After
truvami-siren (Before/After)
Before After
Before After
truvami-api (Before/After)
Before After
Before After
truvami-bridge (Before/After)
Before After
Before After

💡 Diagrams generated with KubeDiagrams

@michaelbeutler michaelbeutler marked this pull request as ready for review January 7, 2026 15:10
Copilot AI review requested due to automatic review settings January 7, 2026 15:10
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds Kubernetes Gateway API support to all Truvami Helm charts (API, Bridge, Dashboard, Decoder, Gateway, and Siren), providing a modern alternative to traditional Ingress for external traffic routing.

Key Changes:

  • Added HTTPRoute template files and configuration options to all six charts
  • Updated documentation with Gateway API usage instructions and migration guides
  • Introduced .gotmpl files for automated README generation

Reviewed changes

Copilot reviewed 26 out of 33 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
charts/truvami-siren/values.yaml Added httpRoute configuration section with Gateway API settings
charts/truvami-siren/templates/httproute.yaml New HTTPRoute template for Gateway API resource generation
charts/truvami-siren/README.md.gotmpl Template for automated README generation with Gateway API documentation
charts/truvami-siren/README.md Updated documentation with Gateway API support section
charts/truvami-gateway/values.yaml Added httpRoute configuration section
charts/truvami-gateway/templates/httproute.yaml New HTTPRoute template
charts/truvami-gateway/README.md.gotmpl Template for automated README generation
charts/truvami-gateway/README.md Updated documentation with Gateway API support
charts/truvami-docs/README.md.gotmpl Template for automated README generation
charts/truvami-docs/README.md Updated documentation with Gateway API support
charts/truvami-decoder/values.yaml Added httpRoute configuration section
charts/truvami-decoder/templates/httproute.yaml New HTTPRoute template
charts/truvami-decoder/README.md.gotmpl Template for automated README generation
charts/truvami-decoder/README.md Updated documentation with Gateway API support
charts/truvami-dashboard/values.yaml Added httpRoute configuration section
charts/truvami-dashboard/templates/httproute.yaml New HTTPRoute template
charts/truvami-dashboard/README.md.gotmpl Template for automated README generation
charts/truvami-dashboard/README.md Updated documentation with Gateway API support
charts/truvami-bridge/values.yaml Added httpRoute configuration section
charts/truvami-bridge/templates/httproute.yaml New HTTPRoute template
charts/truvami-bridge/README.md.gotmpl Template for automated README generation
charts/truvami-bridge/README.md Updated documentation with Gateway API support
charts/truvami-api/values.yaml Added httpRoute configuration section
charts/truvami-api/templates/httproute.yaml New HTTPRoute template
charts/truvami-api/README.md.gotmpl Template for automated README generation
charts/truvami-api/README.md Updated documentation with Gateway API support

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +25 to +32
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
Copy link

Copilot AI Jan 7, 2026

Choose a reason for hiding this comment

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

The template creates invalid HTTPRoute YAML when a rule has no matches defined. The '- matches:' line will be rendered without any content under it, resulting in malformed YAML. Add validation or restructure to only output the matches key when the list is non-empty.

Suggested change
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
- {{- with .matches }}
{{- if and . (gt (len .) 0) }}
matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}

Copilot uses AI. Check for mistakes.
Comment on lines +25 to +32
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
Copy link

Copilot AI Jan 7, 2026

Choose a reason for hiding this comment

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

The template creates invalid HTTPRoute YAML when a rule has no matches defined. The '- matches:' line will be rendered without any content under it, resulting in malformed YAML. Add validation or restructure to only output the matches key when the list is non-empty.

Suggested change
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
- {{- with .matches }}
matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}

Copilot uses AI. Check for mistakes.
Comment on lines +25 to +28
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
Copy link

Copilot AI Jan 7, 2026

Choose a reason for hiding this comment

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

The template creates invalid HTTPRoute YAML when a rule has no matches defined. The '- matches:' line will be rendered without any content under it, resulting in malformed YAML. Add validation or restructure to only output the matches key when the list is non-empty.

Suggested change
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .matches }}
{{- if gt (len .) 0 }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}

Copilot uses AI. Check for mistakes.
Comment on lines +25 to +32
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
Copy link

Copilot AI Jan 7, 2026

Choose a reason for hiding this comment

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

The template creates invalid HTTPRoute YAML when a rule has no matches defined. The '- matches:' line will be rendered without any content under it, resulting in malformed YAML. Add validation or restructure to only output the matches key when the list is non-empty.

Suggested change
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
-
{{- with .matches }}
matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}

Copilot uses AI. Check for mistakes.
Comment on lines +25 to +32
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
Copy link

Copilot AI Jan 7, 2026

Choose a reason for hiding this comment

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

The template creates invalid HTTPRoute YAML when a rule has no matches defined. The '- matches:' line will be rendered without any content under it, resulting in malformed YAML. Add validation or restructure to only output the matches key when the list is non-empty.

Suggested change
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
- {{- with .matches }}
matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}

Copilot uses AI. Check for mistakes.
Comment on lines +25 to +32
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
Copy link

Copilot AI Jan 7, 2026

Choose a reason for hiding this comment

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

The template creates invalid HTTPRoute YAML when a rule has no matches defined. The '- matches:' line will be rendered without any content under it, resulting in malformed YAML. Add validation or restructure to only output the matches key when the list is non-empty.

Suggested change
{{- with .matches }}
- matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}
- {{- with .matches }}
matches:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .filters }}
filters:
{{- toYaml . | nindent 8 }}
{{- end }}

Copilot uses AI. Check for mistakes.
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.

2 participants