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.