Skip to content

Add Gateway API HTTPRoute and simplify installation#71

Merged
mayurkr merged 2 commits into
mainfrom
refactor-chart
Apr 13, 2026
Merged

Add Gateway API HTTPRoute and simplify installation#71
mayurkr merged 2 commits into
mainfrom
refactor-chart

Conversation

@mayurkr
Copy link
Copy Markdown
Contributor

@mayurkr mayurkr commented Apr 13, 2026

Changes

Features

  • Gateway API HTTPRoute Support: Added optional HTTPRoute template for dashboard exposure via Gateway API, with configurable parent refs, hostnames, and path prefix in values.yaml
  • Simplified Installation: Removed mandatory cert-manager dependency; webhook TLS now uses self-signed certificates by default
  • Automatic ZelyoConfig Creation: Converted ZelyoConfig from Helm hook to regular template for automatic CR creation during install

Documentation Updates

  • Streamlined quickstart from 10 to 5 minutes with simplified installation steps
  • Updated README installation section to remove cert-manager requirement
  • Added optional cert-manager setup section for users who prefer managed certificates
  • Improved Helm NOTES.txt with clearer LLM configuration and API key setup instructions
  • Enhanced markdown table formatting for better readability across all docs

Configuration

  • Added httpRoute values block with enabled, annotations, parentRefs, hostnames, and path options
  • Updated values.yaml with HTTPRoute configuration examples
  • Added prerequisite check in zelyo-policies NOTES.txt

Non-Breaking

All changes are backward compatible. Existing installations continue to work; new Gateway API features are opt-in.

mayurkr and others added 2 commits April 13, 2026 13:36
ZelyoConfig was deployed as a post-install/post-upgrade Helm hook,
which meant it was not tracked in the release manifest — helm upgrade
could not update it, helm rollback could not restore it, and helm get
manifest did not show it. Converting to a regular template fixes all
three issues.

Also streamlines onboarding: removes cert-manager as a required
prerequisite (self-signed is the default), reduces quickstart from
5 steps to 3, and adds ZelyoConfig status messaging to NOTES.txt.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adds an HTTPRoute template alongside the existing Ingress, so users
on Gateway API can expose the dashboard without annotations hacks.
Configured via httpRoute.parentRefs and httpRoute.hostnames in values.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request simplifies the installation workflow by making cert-manager optional and defaulting to self-signed certificates for webhook TLS. It also introduces support for Gateway API HTTPRoute and updates the documentation and Helm charts to reflect these changes. Feedback identifies a high-severity issue where removing Helm hooks from the ZelyoConfig template creates a breaking change for existing users, likely causing upgrade failures due to resource ownership conflicts. Additionally, the Helm notes logic for HTTPRoute should be updated to include a fallback display for when the hostnames list is empty to ensure the dashboard URL is always visible when enabled.

I am having trouble creating individual review comments. Click here to see my feedback.

deploy/helm/zelyo-operator/templates/zelyoconfig.yaml (9-10)

high

Removing the Helm hooks from the ZelyoConfig template is a breaking change for existing installations. When users attempt to run helm upgrade, Helm will try to create the ZelyoConfig resource as a managed object. However, the operation will fail because the resource already exists in the cluster (having been created by the previous hook-based installation) and lacks the ownership labels and annotations required by Helm. This will require manual intervention, such as deleting the CR or manually adding the app.kubernetes.io/managed-by label and meta.helm.sh/release-* annotations, before the upgrade can succeed.

deploy/helm/zelyo-operator/templates/NOTES.txt (51-54)

medium

If httpRoute.enabled is set to true but httpRoute.hostnames is an empty list (which is the default in values.yaml), this range loop will not execute, and no dashboard URL will be displayed in the Helm notes. Since an HTTPRoute without hostnames is valid and matches all hostnames of the parent gateway, it would be better to provide a fallback display (e.g., using a placeholder or just the path) when the hostnames list is empty.

@mayurkr mayurkr merged commit c74b4b8 into main Apr 13, 2026
6 checks passed
@mayurkr mayurkr deleted the refactor-chart branch April 13, 2026 08:58
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.

1 participant