feat: Helm chart for Kubernetes deployment - #8
Merged
Merged
Conversation
Adds charts/nx-cache-server/ — a Deployment+Service+Secret+ServiceAccount chart with `/health` probes, IRSA-ready ServiceAccount annotations, and support for either chart-managed Secret values or an existing Secret. CI: new helm-lint job on every push/PR; new helm-publish job on release events pushes the chart as an OCI artifact to ghcr.io/ikatsuba/charts, versioned to the release tag. Resolves #4.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
charts/nx-cache-server/— Deployment, Service, Secret, ServiceAccount, with/healthliveness/readiness probes.secrets.existingSecretpointing at an externally managed one (External Secrets / Sealed Secrets / Vault).helm-lintjob on every push/PR + newhelm-publishjob that runs onrelease: publishedand pushes the chart as an OCI artifact toghcr.io/ikatsuba/charts/nx-cache-server, versioned to the release tag — same trigger as the Docker image.Using Helm (Kubernetes)section pointing at the chart's own README for the full values reference.Resolves #4.
Test plan
Verified locally before opening the PR:
helm lint charts/nx-cache-server— cleanhelm template— default renderhelm template --set secrets.existingSecret=...— Secret manifest is skipped, Deployment references the external onehelm templatewithout required values — fails with explicitrequiredmessagesactionlint .github/workflows/main.yml— cleanhelm install --dry-runagainst a real cluster (orbstack) — OKhelm install --waiton orbstack (with--set image.tag=mainsince nov0.1.0release exists yet) — Pod Ready 1/1curl /healthvia port-forward →HTTP 200 "OK"curl /v1/cache/abc123withoutAuthorization→HTTP 401(auth gate works)curl /v1/cache/abc123withBearer devtoken→ reaches S3 client (auth path verified)Post-merge follow-ups (manual, one-time)
vX.Y.Zto triggerhelm-publish.ikatsuba/charts/nx-cache-serverpackage visibility to Public in the GHCR UI sohelm pull oci://...works without auth.