Skip to content

fix(docs): pin chart version in Helm install snippets#82

Merged
mayurkr merged 5 commits into
mainfrom
claude/kind-merkle
Apr 17, 2026
Merged

fix(docs): pin chart version in Helm install snippets#82
mayurkr merged 5 commits into
mainfrom
claude/kind-merkle

Conversation

@mayurkr
Copy link
Copy Markdown
Contributor

@mayurkr mayurkr commented Apr 16, 2026

Summary

  • Every helm install ... oci://ghcr.io/zelyo-ai/charts/... snippet in the docs was missing --version. OCI registries have no "latest" alias, so copy-pasting from the README failed with INSTALLATION FAILED: could not locate a version matching provided version string for every user.
  • Added --version "$ZELYO_VERSION" to the 2 installs in README.md and all 5 installs in docs/quickstart.md, plus a short note at the top of each install block pointing readers at the releases page to pick the current tag.
  • Defaults the variable to 1.0.0-alpha3 (the current pre-release).

Discovered while auditing zelyo-operator-demo/setup.sh, which was failing at Step 2 with the same root cause.

Out of scope — flagging for follow-up

Same bug also appears in:

Happy to extend this PR or do a follow-up — didn't want to scope-creep.

Test plan

  • Repro old failure: helm install zelyo-operator oci://ghcr.io/zelyo-ai/charts/zelyo-operator --dry-run=clientcould not locate a version matching provided version string
  • Verify fix: ZELYO_VERSION=1.0.0-alpha3 helm install zelyo-operator oci://ghcr.io/zelyo-ai/charts/zelyo-operator --version "\$ZELYO_VERSION" --dry-run=client → renders successfully
  • Same verification for zelyo-policies chart
  • Reviewer to sanity-check the default ZELYO_VERSION value is the tag we want to advertise (currently 1.0.0-alpha3)

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Documentation
    • Updated installation instructions to require explicit Helm chart version pinning for OCI-hosted charts, as no latest alias is available. All Helm install commands now include the --version flag with version variable support for improved clarity and reproducibility during setup.

mayurkr and others added 3 commits April 16, 2026 07:55
…n Helm chart

The Helm chart ClusterRole listed `events` under read-only core resources
with only get/list/watch verbs. Controllers use EventRecorder which requires
create and patch, causing "events is forbidden" errors at runtime.

The Helm-shipped ZelyoConfig CRD was also missing the `llmKeyStatus` and
`llmKeyLastVerified` status fields that the controller writes, causing
"unknown field" warnings and a reconcile loop on every startup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nding

Add a full multi-page SPA dashboard served from port 8080, embedded in the
Go binary via //go:embed. The dashboard reads CRD data from the informer
cache and pushes live updates via SSE.

Backend:
- Inject controller-runtime client.Client into dashboard server
- 9 REST API endpoints: overview, policies, scans, reports, cloud,
  compliance, settings, health, SSE events
- 30-second heartbeat goroutine for overview auto-refresh
- Security score computed from latest scan report severity counts

Frontend (vanilla HTML/CSS/JS, no build step):
- Dark theme matching Zelyo brand (navy bg, blue-cyan gradient, pink accent)
- Hash-based SPA router with 6 pages: Overview, Policies, Scans,
  Cloud Security, Compliance, Settings
- SVG chart utilities (donut, bar, progress ring)
- EventSource SSE client with per-page live update handlers
- Responsive layout with collapsible sidebar

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The installation snippets in README.md and docs/quickstart.md ran
`helm install ... oci://ghcr.io/zelyo-ai/charts/...` with no --version
flag. OCI registries have no "latest" alias, so every user following
the copy-paste snippet hit:

  Error: INSTALLATION FAILED: could not locate a version matching
  provided version string

Add --version "$ZELYO_VERSION" to each helm install call and a note
pointing users at the releases page so they can substitute the current
tag. This was found while auditing zelyo-operator-demo/setup.sh, which
was failing at Step 2 for the same reason.

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

coderabbitai Bot commented Apr 16, 2026

📝 Walkthrough

Walkthrough

Updated installation documentation for the Zelyo Helm charts to enforce explicit version pinning for OCI-hosted deployments. Added ZELYO_VERSION variable definitions and --version flags to all Helm install commands, with explanatory notes that OCI chart repositories lack a latest alias.

Changes

Cohort / File(s) Summary
Documentation updates for Helm version pinning
README.md, docs/quickstart.md
Added explicit version pinning guidance and shell variable definitions for Zelyo Helm chart installation. Updated all helm install commands for zelyo-operator and zelyo-policies to include --version "$ZELYO_VERSION" flag, with callouts explaining OCI chart repository limitations.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Poem

🐰 A version pinned, no guesses made,
OCI charts need guidance displayed,
With ZELYO_VERSION set just right,
No mystery tags, all clear and bright!
Documentation shines, docs take flight ✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately summarizes the main change: adding chart version pinning to Helm install snippets across documentation files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

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

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch claude/kind-merkle

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

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 introduces a comprehensive, dark-themed single-page dashboard for the Zelyo Operator, enabling real-time monitoring of security policies, cluster scans, and cloud account security. Key changes include the implementation of a REST API with Server-Sent Events (SSE) for live updates, the embedding of frontend assets, and updates to the Helm charts and documentation to enforce chart version pinning. The review feedback identifies several critical frontend issues, such as undefined CSS variables and hardcoded API paths that could break under custom base path configurations. Additionally, there are recommendations to improve backend performance by optimizing how scan reports are fetched and to resolve data inconsistencies between policy violations and scan summaries.

Comment thread internal/dashboard/data.go
Comment thread internal/dashboard/data.go
Comment thread internal/dashboard/static/js/app.js
Comment thread internal/dashboard/static/js/app.js
Comment thread internal/dashboard/static/js/pages/overview.js
Comment thread internal/dashboard/static/js/pages/overview.js
Comment thread internal/dashboard/static/js/pages/overview.js
Comment thread internal/dashboard/static/js/pages/settings.js
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@README.md`:
- Around line 88-90: Update the README declaration for ZELYO_VERSION so it
matches the shell-export form used elsewhere: change the plain assignment
"ZELYO_VERSION=1.0.0-alpha3" to an exported variable "export
ZELYO_VERSION=1.0.0-alpha3" (ensure the exact variable name ZELYO_VERSION is
used and the value remains unchanged) so the environment variable is available
to child processes and consistent with docs/quickstart.md.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 50cb7ebc-2d3d-403a-b7bb-965891222e4d

📥 Commits

Reviewing files that changed from the base of the PR and between d036790 and 86bb18c.

📒 Files selected for processing (2)
  • README.md
  • docs/quickstart.md

Comment thread README.md
@mayurkr mayurkr merged commit e6b0220 into main Apr 17, 2026
7 checks passed
@mayurkr mayurkr deleted the claude/kind-merkle branch April 17, 2026 03:52
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