This repository has been archived on 2026-10-19. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Daniel Brunner 5bd2071ee0
Publish and promote Helm charts / publish (push) Failing after 3m31s
Document the indexed public Helm repository
2026-10-18 18:39:57 +02:00

1.9 KiB

Homelab adapter charts

Public Helm charts and immutable images for upstream applications that do not publish a suitable chart. Each workload is an independent chart with its upstream application release in appVersion. Static Artcraft release assets and nginx configuration are baked into a distinct image during CI; pods never download application code at startup. Cluster hostnames, storage classes, addresses, secrets, and sizing belong in homelab-gitops, not here.

Chart release tags use <chart>-vMAJOR.MINOR.PATCH. CI derives the package version with git describe: an exact cadcraft-v1.0.0 tag publishes 1.0.0; the next relevant main-branch commit publishes a unique version such as 1.0.0-1-g41627ab. The hash is retained because removing it could make distinct histories publish the same immutable version.

Each Artcraft chart has its own appVersion for its corresponding WordCraft, GridCraft, and related upstream release. CI builds one image repository per application and tags that image with the chart package version; the chart uses .Chart.Version as its default image tag. A change therefore creates an immutable image/chart pair while retaining the readable upstream application release in chart metadata.

helm repo add brunner.ninja https://brunner.ninja/charts
helm repo update brunner.ninja
helm install cadcraft brunner.ninja/cadcraft --set ingress.enabled=true --set ingress.host=cadcraft.example.com

The charts are published to the indexed Gitea Helm package repository behind brunner.ninja/charts. Quay stores the corresponding immutable Artcraft container images; charts are not duplicated into Quay OCI.

The main-branch workflow requires owner/repository Actions secrets QUAY_USERNAME, QUAY_TOKEN, PACKAGE_USERNAME, PACKAGE_TOKEN, and GITOPS_TOKEN. After every successful publish it updates the matching Argo Applications in feedc0de/homelab-gitops; it never receives a kubeconfig.