Skip to content

Add Gateway API HTTPRoute support to the Helm chart#10095

Closed
somaz94 wants to merge 1 commit into
pgadmin-org:masterfrom
somaz94:feat/httproute
Closed

Add Gateway API HTTPRoute support to the Helm chart#10095
somaz94 wants to merge 1 commit into
pgadmin-org:masterfrom
somaz94:feat/httproute

Conversation

@somaz94

@somaz94 somaz94 commented Jun 16, 2026

Copy link
Copy Markdown
Contributor

Adds an opt-in Gateway API HTTPRoute template to the pgAdmin Helm chart as an alternative to the existing Ingress, addressing #9942. Disabled by default (httpRoute.enabled: false) so existing installs are unaffected.

The template mirrors the existing ingress.yaml conventions: pgadmin4.fullname backend, commonLabels/commonAnnotations propagation, and a hostname that falls back to ingress.hostname when httpRoute.hostnames is unset. parentRefs is required (a fail guard fires when it is empty), apiVersion defaults to gateway.networking.k8s.io/v1, and the default rule forwards / (PathPrefix) to the pgAdmin service. Custom hostnames and rules can be supplied for full control.

Validation (local helm v3.18):

  • Default values render no HTTPRoute (kind: HTTPRoute count = 0).
  • httpRoute.enabled=true with parentRefs + hostnames renders a valid HTTPRoute (backendRef → service port 80, PathPrefix /).
  • httpRoute.enabled=true without parentRefs fails fast with a clear message.
  • Empty httpRoute.hostnames correctly falls back to ingress.hostname.
  • Custom httpRoute.rules override renders as supplied.
  • helm lint clean both with the feature disabled and enabled.

related: #9942


Was generative AI tooling used to co-author this PR?
  • Yes — Claude Code (Opus 4.8)

Generated-by: Claude Code (Opus 4.8)

Summary by CodeRabbit

  • New Features
    • Added support for Kubernetes HTTPRoute resources with Gateway API integration
    • HTTPRoute can be conditionally enabled with configurable parent references, hostnames, and custom routing rules
    • Routes all traffic to the pgAdmin4 service by default when no custom rules are specified

@coderabbitai

coderabbitai Bot commented Jun 16, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 13f08e96-6cc2-4ef2-adac-cbddf9f1ee45

📥 Commits

Reviewing files that changed from the base of the PR and between 4beb7e4 and 7150d75.

📒 Files selected for processing (2)
  • pkg/helm/templates/httproute.yaml
  • pkg/helm/values.yaml

Walkthrough

Adds Gateway API HTTPRoute support to the pgadmin4 Helm chart. A new httpRoute values block is introduced with fields for enablement, apiVersion, parentRefs, hostnames, annotations, and rules. A corresponding Helm template conditionally renders a HTTPRoute resource using these values.

Changes

Gateway API HTTPRoute Support

Layer / File(s) Summary
HTTPRoute values schema and Helm template
pkg/helm/values.yaml, pkg/helm/templates/httproute.yaml
Adds the httpRoute values block (enabled, apiVersion, parentRefs, hostnames, annotations, rules) and the full HTTPRoute Helm template. The template validates parentRefs presence, merges common labels and annotations, derives hostnames with an ingress.hostname fallback via tpl, and renders either user-supplied rules or a default PathPrefix / rule targeting the pgadmin4 service on service.port.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The pull request title 'Add Gateway API HTTPRoute support to the Helm chart' directly and clearly summarizes the main change—adding HTTPRoute support to the Helm chart as documented in the PR objectives and file changes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

somaz94 added a commit to somaz94/somaz94 that referenced this pull request Jun 16, 2026
@somaz94 somaz94 marked this pull request as ready for review June 16, 2026 05:50
dpage pushed a commit that referenced this pull request Jun 19, 2026
Add an opt-in Gateway API HTTPRoute template to the Helm chart as an
alternative to the existing Ingress, addressing #9942. It is disabled by
default (httpRoute.enabled: false) so existing installs are unaffected.

The template mirrors the existing ingress.yaml conventions: the
pgadmin4.fullname backend, commonLabels/commonAnnotations propagation, and
a hostname that falls back to ingress.hostname when httpRoute.hostnames is
unset. parentRefs is required (a fail guard fires when it is empty),
apiVersion defaults to gateway.networking.k8s.io/v1, and the default rule
forwards "/" (PathPrefix) to the pgAdmin service. Custom hostnames and
rules can be supplied for full control. The new values are documented in
the chart README.
@dpage

dpage commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Merged to master as 7e76fb4 (squashed; the SHA differs so GitHub won't auto-close this). I folded in one small addition on top of your work: rows for the httpRoute.* values in the chart README's Important Values table, for parity with the existing ingress.* entries. Nicely done, and thanks for the thorough helm template/helm lint validation in the description!

@dpage dpage closed this Jun 19, 2026
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