Files
attune/docs/deployment/gitea-registry-and-helm.md
David Culbreth 6a86dd7ca6
Some checks failed
CI / Rustfmt (push) Successful in 1m30s
Publish Images And Chart / Resolve Publish Metadata (push) Failing after 2s
Publish Images And Chart / Publish init-packs (push) Has been skipped
Publish Images And Chart / Publish init-user (push) Has been skipped
Publish Images And Chart / Publish migrations (push) Has been skipped
Publish Images And Chart / Publish sensor (push) Has been skipped
Publish Images And Chart / Publish web (push) Has been skipped
Publish Images And Chart / Publish worker (push) Has been skipped
Publish Images And Chart / Publish api (push) Has been skipped
Publish Images And Chart / Publish executor (push) Has been skipped
Publish Images And Chart / Publish notifier (push) Has been skipped
Publish Images And Chart / Publish Helm Chart (push) Has been skipped
CI / Web Blocking Checks (push) Successful in 1m55s
CI / Security Advisory Checks (push) Failing after 13m14s
CI / Web Advisory Checks (push) Failing after 13m20s
CI / Security Blocking Checks (push) Failing after 13m31s
CI / Cargo Audit & Deny (push) Failing after 14m51s
CI / Tests (push) Failing after 14m53s
CI / Clippy (push) Failing after 14m59s
[wip]helmchart
2026-03-14 18:11:10 -05:00

3.1 KiB

Gitea Registry And Helm Publishing

This repository now includes:

  • A Gitea Actions publish workflow at .gitea/workflows/publish.yml
  • OCI-published container images for the Kubernetes deployment path
  • A Helm chart at charts/attune

What Gets Published

The workflow publishes these images to the Gitea OCI registry:

  • attune-api
  • attune-executor
  • attune-worker
  • attune-sensor
  • attune-notifier
  • attune-web
  • attune-migrations
  • attune-init-user
  • attune-init-packs

The Helm chart is pushed as an OCI chart to:

  • oci://<registry>/<namespace>/helm/attune

Required Gitea Repository Configuration

Set these repository variables:

  • GITEA_REGISTRY_HOST: Registry hostname only, for example gitea.example.com
  • GITEA_REGISTRY_NAMESPACE: Optional override for the registry namespace. If omitted, the workflow uses the repository owner.

Set one of these authentication options:

  • Preferred: GITEA_REGISTRY_USERNAME and GITEA_REGISTRY_PASSWORD
  • Fallback: allow the workflow GITHUB_TOKEN or Gitea-provided token to push packages

Publish Behavior

The workflow runs on:

  • pushes to main
  • pushes to master
  • tags matching v*
  • manual dispatch

Tag behavior:

  • branch pushes publish edge and sha-<12-char-sha>
  • release tags like v0.3.0 publish 0.3.0, latest, and sha-<12-char-sha>

Chart packaging behavior:

  • branch pushes package the chart as 0.0.0-dev.<run_number>
  • release tags package the chart with the tag version, for example 0.3.0

Helm Install Flow

Log in to the registry:

helm registry login gitea.example.com --username <user>

Install the chart:

helm install attune oci://gitea.example.com/<namespace>/helm/attune \
  --version 0.3.0 \
  --set global.imageRegistry=gitea.example.com \
  --set global.imageNamespace=<namespace> \
  --set global.imageTag=0.3.0 \
  --set web.config.apiUrl=https://attune.example.com/api \
  --set web.config.wsUrl=wss://attune.example.com/ws

For a branch build:

helm install attune oci://gitea.example.com/<namespace>/helm/attune \
  --version 0.0.0-dev.<run_number> \
  --set global.imageRegistry=gitea.example.com \
  --set global.imageNamespace=<namespace> \
  --set global.imageTag=edge

Chart Expectations

The chart defaults to deploying:

  • PostgreSQL via TimescaleDB
  • RabbitMQ
  • Redis
  • Attune API, executor, worker, sensor, notifier, and web services
  • Migration, test-user bootstrap, and built-in pack bootstrap jobs

Important constraints:

  • The shared packs, runtime_envs, and artifacts claims default to ReadWriteMany
  • Your cluster storage class must support RWX for the default values to work as written
  • web.config.apiUrl and web.config.wsUrl must be browser-reachable URLs, not cluster-internal service DNS names
  • The default security and bootstrap values in charts/attune/values.yaml are placeholders and should be overridden

Suggested First Release Sequence

  1. Push the workflow and chart changes to main.
  2. Verify that the workflow publishes the edge images and dev chart package.
  3. Create a release tag such as v0.1.0.
  4. Install the chart using that exact image tag and chart version.