Running Cascade
On a Podman host, deploy/quadlet has systemd units. One file and a volume is
Cascade on SQLite; deploy/quadlet/postgres is the server, a worker and
PostgreSQL on a network of their own. Both start at boot, restart on failure and
run read-only, nonroot, with every capability dropped. Its README walks through
it.
To pull a version by hand:
podman pull ghcr.io/hotloop-io/hotloop-cascade:0.1.2The units follow :stable and Podman’s auto-update timer moves them.
On k3s, charts/hotloop-cascade is the Helm chart:
helm install cascade oci://ghcr.io/hotloop-io/charts/hotloop-cascade --version 0.1.2That is one pod on SQLite with a volume. --set split=true with PostgreSQL
(--set postgresql.enabled=true for one the chart runs, or
externalDatabase.existingSecret for yours) splits it into API, webhook and
worker pods that you scale on their own. The key that seals stored credentials
is made on the first install and kept when the release is uninstalled, because
a key that goes with the release takes every credential in a kept database with
it. Back it up.
hotloop-cascade healthcheck asks the running server’s own health endpoint and
exits 0 or 1. The Quadlet units and the chart’s probes both use the endpoints
behind it.