Skip to content

chore(chart): declare kubeVersion ">=1.27.0-0" in chart + subcharts#291

Merged
dmitsh merged 1 commit into
NVIDIA:mainfrom
resker:chore/chart-kubeversion-1-27
Apr 24, 2026
Merged

chore(chart): declare kubeVersion ">=1.27.0-0" in chart + subcharts#291
dmitsh merged 1 commit into
NVIDIA:mainfrom
resker:chore/chart-kubeversion-1-27

Conversation

@resker

@resker resker commented Apr 23, 2026

Copy link
Copy Markdown
Collaborator

Description

Adds a machine-enforced Kubernetes version floor to the topograph chart and its node-observer and node-data-broker subcharts. Previously the chart made no kubeVersion declaration, so helm install would not reject older clusters even though Topograph min version is Kubernetes 1.27.

Why 1.27

Committing 1.27 as the floor in `Chart.yaml` makes it a machine-checked guard and prevents install on older clusters where behavior is undefined.

Why the `-0` suffix

The constraint is `">=1.27.0-0"` rather than `">=1.27.0"` so that cloud providers' prerelease-style version strings — e.g., `1.27.0-gke.100`, `1.28.3-eks-1234`, `1.29.0-eks.1` — satisfy the constraint. Without the `-0` floor on the prerelease segment, Masterminds/semver's default comparison treats prerelease versions as strictly less than the base release, which causes false negatives on GKE, EKS, AKS, etc.

Chart README tightening (same PR)

While touching the chart's Prerequisites section:

  • Kubernetes bullet simplified to "1.27 or later" (now enforced, so the bullet no longer needs to argue for the floor)
  • Provider-specific prerequisites bullet links to docs/providers/ rather than enumerating provider-specific details inline (CSP credentials, `ibnetdiscover`, etc.)

Verification

  • `helm lint charts/topograph` — no new findings
  • `helm template test charts/topograph` — renders cleanly

Checklist

  • Documentation Impact Evaluation — chart README updated in the same PR to reflect the enforced floor and simplified the per-provider bullet
  • `make qualify` — N/A (chart YAML + markdown only; no Go changes)
  • Every commit has a DCO sign-off

Adds a machine-enforced Kubernetes version floor to the topograph chart
and its node-observer and node-data-broker subcharts. Previously the
chart made no `kubeVersion` declaration, so `helm install` would not
reject older clusters even though Topograph is only tested against
Kubernetes 1.27 and later.

The `-0` suffix on the constraint follows the common Helm convention for
accepting prerelease-style version strings cloud providers append (e.g.,
`1.27.0-gke.100`, `1.28.3-eks-1234`) without requiring per-provider
workarounds.

Also tightens the chart README's Prerequisites section: the Kubernetes
bullet states "1.27 or later" (now enforced via kubeVersion), and the
per-provider bullet links to the providers documentation rather than
enumerating provider-specific prerequisites inline.

Signed-off-by: Rob Esker <[email protected]>
@resker resker requested a review from dmitsh as a code owner April 23, 2026 03:21
@greptile-apps

greptile-apps Bot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

This PR adds kubeVersion: ">=1.27.0-0" to the topograph parent chart and both node-observer and node-data-broker subcharts, turning the previously informal Kubernetes 1.27 requirement into a machine-enforced helm install guard. The README prerequisites section is updated accordingly, and the provider-specific bullet is simplified to link out to docs/providers/ instead of enumerating details inline.

Confidence Score: 5/5

Safe to merge — minimal, well-scoped YAML and Markdown changes with no logic or template impact.

All changes are additive and correct: the >=1.27.0-0 constraint uses proper Masterminds/semver syntax to handle cloud-provider prerelease version strings, the same floor is applied consistently across all three charts, and the README accurately reflects the newly enforced constraint. No P0/P1 findings.

No files require special attention.

Important Files Changed

Filename Overview
charts/topograph/Chart.yaml Added kubeVersion: ">=1.27.0-0" to enforce Kubernetes 1.27+ minimum; no other changes.
charts/topograph/charts/node-observer/Chart.yaml Added kubeVersion: ">=1.27.0-0" to enforce the same Kubernetes floor as the parent chart.
charts/topograph/charts/node-data-broker/Chart.yaml Added kubeVersion: ">=1.27.0-0" to enforce the same Kubernetes floor as the parent chart.
charts/topograph/README.md Simplified Kubernetes prerequisite bullet to "1.27 or later" and replaced inline provider details with a link to docs/providers/.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[helm install topograph] --> B{kubeVersion check\n>=1.27.0-0}
    B -- "Pass (e.g. 1.27+, GKE 1.28.x-gke.y,\nEKS 1.29.x-eks.z)" --> C[Install proceeds]
    C --> D[topograph chart]
    D --> E[node-observer subchart\nkubeVersion >=1.27.0-0]
    D --> F[node-data-broker subchart\nkubeVersion >=1.27.0-0]
    B -- "Fail (e.g. 1.26.x or older)" --> G[helm rejects install]
Loading

Reviews (1): Last reviewed commit: "chore(chart): declare kubeVersion ">=1.2..." | Re-trigger Greptile

@dmitsh dmitsh merged commit f5713e6 into NVIDIA:main Apr 24, 2026
4 checks passed
dmitsh pushed a commit that referenced this pull request Apr 29, 2026
PR #268 removed the `branches: [main]` push filter from
`publish-fern-docs.yml` while keeping the `tags: [docs/v*]` filter. With
GitHub Actions, defining `tags:` without a corresponding `branches:`
restricts push events to tag refs only — branch pushes (including main)
no longer trigger the workflow even when their changed paths match the
`paths:` filter.

Symptom: the live Fern site at
https://topograph.docs.buildwithfern.com/topograph has not been
republished since the manual workflow_dispatch on 2026-04-20T16:51Z.
PRs #284, #289, #290, #291, and #292 all touched docs/ but produced
zero workflow runs. The Reference section restored by #284 (and the
clique-semantics clarifications added by #289) are on main but invisible
on the published site.

Restore `branches: [main]` so push events to main with docs/ or fern/
changes resume triggering publishes. Tag pushes for `docs/v*` and manual
`workflow_dispatch` continue to work unchanged.

To clear the backlog after this PR merges, dispatch the workflow
manually one time:

  gh workflow run publish-fern-docs.yml --repo NVIDIA/topograph --ref main

Signed-off-by: Rob Esker <[email protected]>
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