Files
feedc0de af6196d4a9
Validate, publish and promote Asciinema chart / validate (push) Successful in 15s
Validate, publish and promote Asciinema chart / publish (push) Successful in 28s
Support external PostgreSQL deployments
2026-10-25 11:35:37 +01:00

61 lines
2.4 KiB
Markdown

# Asciinema Server Helm chart
This repository maintains a Helm chart for the upstream
[`asciinema-server`](https://github.com/asciinema/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`](https://code.brunner.ninja/feedc0de/homelab-gitops/src/branch/main/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:
```sh
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:
```sh
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. Set `postgresql.enabled: false` when supplying an external PostgreSQL
service; configure the application Secret's `database-url` for that service.
## Chart releases
The upstream image uses a date tag, currently `20260626`. The chart maps it
to SemVer tag `v2026.6.26`, which publishes chart `2026.6.26`. Later chart
commits append the `git describe --tags --long` count and hash.
`Chart.yaml.appVersion` remains the exact upstream image tag. The workflow
requires `PACKAGE_USERNAME`,
`PACKAGE_TOKEN`, and `GITOPS_TOKEN` repository secrets; it does not access
Kubernetes.
## Validate locally
```sh
./test.sh
```