Skip to content

feat: official helm chart integration and documentation#546

Open
drifterza wants to merge 1 commit into
tale:mainfrom
drifterza:feat/issue-55-helm-chart
Open

feat: official helm chart integration and documentation#546
drifterza wants to merge 1 commit into
tale:mainfrom
drifterza:feat/issue-55-helm-chart

Conversation

@drifterza
Copy link
Copy Markdown
Contributor

@drifterza drifterza commented May 3, 2026

Closes #55

Description

Standalone Headplane Helm chart distributed as an OCI artifact via GHCR. Headscale is not bundled; users point headscale.url at their existing upstream instance.

Changes

  • Chart under kubernetes/headplane/ with dynamic naming via _helpers.tpl (fullname, selectorLabels, standard Kubernetes labels)
  • OCI release workflow pushes packaged chart to oci://ghcr.io/tale/headplane
  • CI uses Nix for tooling, Kind for integration tests, helm test for connection verification
  • HPA support with CPU/memory scaling targets
  • Liveness and readiness probes on the container
  • existingSecret support for cookie, OIDC, and API key secrets (GitOps compatible)
  • ServiceAccount and RBAC toggles (serviceAccount.create, rbac.create)
  • Resource requests/limits, nodeSelector, tolerations, affinity, topologySpreadConstraints
  • values.yaml annotated with grouped comments; all template values use default functions
  • CODEOWNERS reverted
  • Vitepress docs updated for OCI installation

@drifterza drifterza requested a review from tale as a code owner May 3, 2026 21:18
@github-actions github-actions Bot added the Docs Improvements or additions to documentation label May 3, 2026
@drifterza drifterza force-pushed the feat/issue-55-helm-chart branch 5 times, most recently from f2db6f4 to 9450b50 Compare May 3, 2026 22:08
Copy link
Copy Markdown
Owner

@tale tale left a comment

Choose a reason for hiding this comment

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

I requested quite a few changes, I think ultimately there are several problems with this implementation and I would've appreciated an early discussion to align on what I want for the Helm charts for Headplane.

A few things:

  • We should be distributing Helm charts as an OCI artifact not as a repository, they're less of a burden for DevOps people and easy to move up to locked environments, etc.
  • Headscale should not be a requirement, someone should be able to run Headplane without integrated mode against an existing Headscale connection.
  • I like the way the initContainer for the autogenerated credentials is going, this is the direction I wanted, but I'm not sure if running Headscale as an initContainer itself makes sense. I get that there's no easy workaround, just something I wanted to flag.

There's work that needs to be done here, and I'm not in a rush to make this available as a Helm chart, but this is a good first step in the right direction.

Aside: Please don't edit the CODEOWNERS file, I'm more than capable of maintaining a set of Helm charts for the release, thank you.

Comment thread .github/workflows/helm-release.yaml Outdated
Comment thread .github/workflows/helm-release.yaml Outdated
Comment thread .github/CODEOWNERS
Comment thread kubernetes/headplane/templates/headscale/configmap.yaml Outdated
Comment thread kubernetes/headplane/templates/deployment.yaml Outdated
Comment thread kubernetes/headplane/README.md Outdated
@drifterza drifterza force-pushed the feat/issue-55-helm-chart branch 5 times, most recently from 76e93e7 to a3773ba Compare May 4, 2026 09:58
@drifterza drifterza requested a review from tale May 4, 2026 11:31
- Helm chart with standard app.kubernetes.io labels and helpers
- existingSecret pattern for cookie, OIDC, and API key secrets
- ConfigMap-based config.yaml generation with headscale integration
- RBAC, ServiceAccount, HPA, Ingress, and PVC support
- Liveness/readiness probes against /admin/healthz
- Security context with readOnlyRootFilesystem and /tmp emptyDir
- CI workflow with helm lint and KinD integration testing
- Configuration parameters table in README
@drifterza drifterza force-pushed the feat/issue-55-helm-chart branch from 804ca70 to 0016efc Compare May 4, 2026 11:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Docs Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document (or even move) Helm chart in-tree

3 participants