Skip to content

Install ​

The chart is published as an OCI artifact; the images live on GitHub Container Registry. A first install needs an SSH host with Borg and a directory there for the repositories (mycluster below, which Borg 1 does not create), a passphrase, an SSH key the host accepts and the host's known_hosts line. The chart names no paths to back up by default: give them as R roots, here each node's /etc:

sh
helm install my-borg oci://ghcr.io/ioanalytica/charts/k8s-borg \
  --version <version> -n k8s-borg --create-namespace \
  --set borg.repoBase.value="ssh://user@borg.example.com:22/./mycluster" \
  --set borg.passphrase.value="…" \
  --set-file ssh.privateKey=./id_ed25519 \
  --set-file ssh.knownHosts=./known_hosts \
  --set 'node.include={P fm,R /node/etc}'
ghcr.io/ioanalytica/k8s-borg:<tag>       # backup / agent / repository server image
ghcr.io/ioanalytica/k8s-borg-ui:<tag>    # Borg UI server image, built from the pinned borg-ui

For anything beyond a smoke test, keep the sensitive values in a pre-created Secret (existingSecret). The modes, the repository server, Borg 1 vs 2, the Borg UI options and every parameter are documented on the documentation site. A Flux HelmRelease with the Secrets it references is in examples/.

From a checkout ​

To install the chart from a clone of the repository:

sh
# pull the common library dependency (or use the vendored charts/ tarball)
helm dependency build ./chart

helm install my-borg ./chart -n k8s-borg --create-namespace \
  --set borg.repoBase.value="ssh://user@borg.example.com:22/./mycluster" \
  --set borg.passphrase.value="…" \
  --set-file ssh.privateKey=./id_ed25519 \
  --set-file ssh.knownHosts=./known_hosts

For anything beyond a smoke test, put the sensitive values in a pre-created Secret and reference it with existingSecret / ssh.existingSecret (managed with SOPS, Sealed Secrets, or External Secrets) — see examples/.

Next steps ​

  • Configuration: standalone or Borg UI managed agents, the modes of each component, and the example release.
  • Parameters: the sections of values.yaml.
  • Verify releases: the images' and the chart's signatures.

Distributed under the AGPL-3.0-only license.