Helm-chart GitHub action (#199)

This commit is contained in:
Jansen Fuller
2026-05-12 12:00:16 +00:00
committed by GitHub
parent d7d9de3bbe
commit 5165897200
4 changed files with 101 additions and 2 deletions

View File

@ -28,3 +28,4 @@ jobs:
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
publish_dir: ./docs/book
keep_files: true

37
.github/workflows/publish-helm.yml vendored Normal file
View File

@ -0,0 +1,37 @@
name: Publish Helm Charts
on:
push:
branches:
- main
paths:
- 'helm/**'
jobs:
release:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Configure Git
run: |
git config user.name "$GITHUB_ACTOR"
git config user.email "$GITHUB_ACTOR@users.noreply.github.com"
- name: Install Helm
uses: azure/setup-helm@v4
- name: Run chart-releaser
uses: helm/chart-releaser-action@v1.6.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
charts_dir: helm
charts_repo_url: https://gothenburgbitfactory.org/taskchampion-sync-server/helm-chart
pages_index_path: helm-charts

View File

@ -2,9 +2,10 @@
- [Introduction](./introduction.md)
- [Usage](./usage.md)
- [Docker Compose](./usage/docker-compose.md)
- [Docker Images](./usage/docker-images.md)
- [Binaries](./usage/binaries.md)
- [Docker Images](./usage/docker-images.md)
- [Docker Compose](./usage/docker-compose.md)
- [Helm](./usage/helm.md)
- [Integration](./integration.md)
- [Pre-built Images](./integration/pre-built.md)
- [Rust Crates](./integration/crates.md)

60
docs/src/usage/helm.md Normal file
View File

@ -0,0 +1,60 @@
# Helm
A Helm chart is available for deploying taskchampion-sync-server on Kubernetes.
## Adding the Repository
```sh
helm repo add taskchampion https://gothenburgbitfactory.org/taskchampion-sync-server/helm-charts
helm repo update
```
## Installing the Chart
The chart requires exactly one storage backend to be enabled. To install with
the SQLite backend:
```sh
helm install taskchampion-sync-server taskchampion/taskchampion-sync-server \
--set sqlite.enabled=true
```
To install with the Postgres backend, provide the connection details:
```sh
helm install taskchampion-sync-server taskchampion/taskchampion-sync-server \
--set postgres.enabled=true \
--set postgres.host=my-postgres \
--set postgres.database=taskchampion \
--set postgres.username=myuser \
--set postgres.password=mypassword
```
Alternatively, pass an existing Secret name via `postgres.existingSecret`. The
secret must contain a `connection` key holding a [LibPQ-style connection
URI](https://www.postgresql.org/docs/current/libpq-connect.html#LIBPQ-CONNSTRING-URIS).
## Configuration
The chart does not implement TLS. The expectation is that a Kubernetes ingress
or gateway will terminate TLS and proxy HTTP traffic to the server container.
Enable one of the built-in options or configure your own:
```sh
# NGINX ingress
--set ingress.enabled=true --set ingress.hosts[0]=taskchampion.example.com
# Gateway API HTTPRoute
--set httpRoute.enabled=true \
--set httpRoute.gateway=my-gateway \
--set httpRoute.host=taskchampion.example.com
```
To restrict which client IDs the server accepts, create a Secret containing a
newline-separated list of UUIDs and reference it:
```sh
--set clientIdSecret=my-client-ids-secret
```
See the chart's `values.yaml` for the full set of configuration options.