Asciinema Server Helm chart
This repository maintains a Helm chart for the upstream
asciinema-server image. The
chart declares the application Deployment, PostgreSQL StatefulSet and claim,
Services, probes, optional Ingress, and optional S3 bucket bootstrap. CI
publishes versioned releases to the public brunner.ninja Helm repository and
promotes each main-branch release to the homelab GitOps repository.
For the homelab deployment, cluster-specific values and the Argo CD Application
are maintained in homelab-gitops/apps/asciinema.
Install
The chart expects an existing Kubernetes Secret containing the database URL, database password, Phoenix signing key, release cookie, and S3 credentials. Create it with your own secure secret-management method before installation; the chart never creates or prints secret values.
To install the current source checkout with custom values:
cp examples/values.yaml values.yaml
# Edit values.yaml for your hostname, SMTP relay, and S3-compatible endpoint.
./install.sh
To install a published version:
helm repo add brunner.ninja https://brunner.ninja/charts
helm repo update brunner.ninja
helm upgrade --install asciinema brunner.ninja/asciinema \
--namespace asciinema --create-namespace \
--values values.yaml --wait --timeout 10m
The example enables Ingress and uses example hostnames. Set your own values for
config.urlHost, config.s3.endpoint, and the SMTP fields. If using S3, the
bucket must already exist unless bucketBootstrap.enabled is explicitly
enabled. PostgreSQL uses a persistent volume claim; set
postgresql.persistence.storageClass and its size as appropriate for your
cluster.
Chart releases
Git tags version the chart (v1.0.0 publishes chart version 1.0.0). Commits
after a tag use the unique git describe --tags --long version, including the
commit hash. Chart.yaml.appVersion is the exact upstream application image
tag selected by the chart. The workflow requires PACKAGE_USERNAME,
PACKAGE_TOKEN, and GITOPS_TOKEN repository secrets; it does not access
Kubernetes.
Validate locally
./test.sh