mirror of
https://github.com/GothenburgBitFactory/taskchampion-sync-server.git
synced 2026-07-16 08:24:45 +00:00
Helm-chart GitHub action (#199)
This commit is contained in:
1
.github/workflows/publish-docs.yml
vendored
1
.github/workflows/publish-docs.yml
vendored
@ -28,3 +28,4 @@ jobs:
|
|||||||
with:
|
with:
|
||||||
github_token: ${{ secrets.GITHUB_TOKEN }}
|
github_token: ${{ secrets.GITHUB_TOKEN }}
|
||||||
publish_dir: ./docs/book
|
publish_dir: ./docs/book
|
||||||
|
keep_files: true
|
||||||
|
|||||||
37
.github/workflows/publish-helm.yml
vendored
Normal file
37
.github/workflows/publish-helm.yml
vendored
Normal 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
|
||||||
@ -2,9 +2,10 @@
|
|||||||
|
|
||||||
- [Introduction](./introduction.md)
|
- [Introduction](./introduction.md)
|
||||||
- [Usage](./usage.md)
|
- [Usage](./usage.md)
|
||||||
- [Docker Compose](./usage/docker-compose.md)
|
|
||||||
- [Docker Images](./usage/docker-images.md)
|
|
||||||
- [Binaries](./usage/binaries.md)
|
- [Binaries](./usage/binaries.md)
|
||||||
|
- [Docker Images](./usage/docker-images.md)
|
||||||
|
- [Docker Compose](./usage/docker-compose.md)
|
||||||
|
- [Helm](./usage/helm.md)
|
||||||
- [Integration](./integration.md)
|
- [Integration](./integration.md)
|
||||||
- [Pre-built Images](./integration/pre-built.md)
|
- [Pre-built Images](./integration/pre-built.md)
|
||||||
- [Rust Crates](./integration/crates.md)
|
- [Rust Crates](./integration/crates.md)
|
||||||
|
|||||||
60
docs/src/usage/helm.md
Normal file
60
docs/src/usage/helm.md
Normal 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.
|
||||||
Reference in New Issue
Block a user