3.5 KiB
3.5 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-apiattune-executorattune-workerattune-sensorattune-notifierattune-webattune-migrationsattune-init-userattune-init-packsattune-agent
The Helm chart is pushed as an OCI chart to:
oci://<registry>/<namespace>/helm/attune
Required Gitea Repository Configuration
Set these variables:
CLUSTER_GITEA_HOST: Registry hostname only, for examplegitea.example.comCONTAINER_REGISTRY_NAMESPACE: Optional override for the registry namespace. If omitted, the workflow uses the repository owner.CONTAINER_REGISTRY_INSECURE: Optional boolean override for plain HTTP registry access. If omitted, the workflow auto-detects*.svc.cluster.localregistry hosts and treats them as insecure/plain HTTP. Set this explicitly to force either behavior.
Set one of these authentication options:
- Preferred:
CONTAINER_REGISTRY_USERNAMEandCONTAINER_REGISTRY_PASSWORD - Fallback: allow the workflow
GITHUB_TOKENor 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
edgeandsha-<12-char-sha> - release tags like
v0.3.0publish0.3.0,latest, andsha-<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>
For a plain HTTP internal registry:
helm registry login gitea-http.gitea.svc.cluster.local --username <user> --plain-http
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, andartifactsclaims default toReadWriteMany - Your cluster storage class must support RWX for the default values to work as written
web.config.apiUrlandweb.config.wsUrlmust be browser-reachable URLs, not cluster-internal service DNS names- The default security and bootstrap values in
charts/attune/values.yamlare placeholders and should be overridden
Suggested First Release Sequence
- Push the workflow and chart changes to
main. - Verify that the workflow publishes the
edgeimages and dev chart package. - Create a release tag such as
v0.1.0. - Install the chart using that exact image tag and chart version.