Skip to content

[Feature]: Add Gateway API HTTPRoute support to the Amoro Helm chart #4242

@somaz94

Description

@somaz94

Description

The Amoro Helm chart (charts/amoro) currently exposes the dashboard only through a Kubernetes Ingress resource (amoro-ingress.yaml, gated on ingress.enabled). Clusters that have standardized on the Gateway API (Istio, Envoy Gateway, Cilium, Kong, ...) have no first-class way to route to the Amoro dashboard and must hand-write an HTTPRoute outside the chart.

Use case/motivation

Gateway API is the successor to Ingress and is now the recommended north-south routing API on many clusters. Users running a Gateway-API-based ingress data plane should be able to expose the Amoro dashboard declaratively through the chart, the same way ingress.enabled works today — without maintaining a separate out-of-band HTTPRoute.

Describe the solution

Add an optional, purely additive httpRoute block to charts/amoro that renders a gateway.networking.k8s.io/v1 HTTPRoute when httpRoute.enabled=true, targeting the existing <fullname>-rest Service (port rest / 1630) that the Ingress already backends to. The existing Ingress template and its tests are left untouched (independent gate).

  • values.yaml: new httpRoute block (enabled, parentRefs, hostnames, matches, annotations) mirroring the shape of the existing ingress block.
  • templates/amoro-httproute.yaml: new template gated on httpRoute.enabled, reusing the chart's common.names.* / common.labels.standard / common.tplvalues.* helpers.
  • tests/amoro-httproute_test.yaml: helm-unittest cases mirroring amoro-ingress_test.yaml.
  • README.md: document the new httpRoute.* parameters.

Subtasks

  • Add httpRoute values block
  • Add amoro-httproute.yaml template
  • Add amoro-httproute_test.yaml helm-unittest test
  • Document httpRoute.* parameters in the chart README

Related issues

None.

Are you willing to submit a PR?

  • Yes I am willing to submit a PR!

Code of Conduct

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions