Files
homelab-gitops/docs/chart-ownership.md
T

1.8 KiB

Helm chart ownership and promotion

This repository contains cluster policy and values, not application workload implementations. Deployments, StatefulSets, Services, ports, probes, mount paths, and configuration wiring belong to a published upstream or maintained Helm chart outside this repository.

Each independently versioned application has one chart and one Argo CD Application. This includes each Artcraft application: WordCraft, GridCraft, DeckCraft, PhotoCraft, LightCraft, VectorCraft, FilmCraft, EffectCraft, DesignCraft, FigCraft, PdfCraft, SoundCraft, and CADCraft are separate releases, not one suite chart. They share the artcraft namespace but do not share Kubernetes resource ownership. Their static upstream release bundles and nginx configuration are baked into distinct immutable images; pods never download application code at startup.

Maintained chart repositories set Chart.yaml.appVersion to the tested application/image version. CI derives the chart package version from Git:

  • tag v1.0.0 produces chart 1.0.0;
  • the next commit produces a unique version such as 1.0.0-1-g41627abcdef.

The shared chart repository uses per-chart tags such as wordcraft-v1.0.0; a single-chart repository uses v1.0.0.

The hash is retained to prevent package-version collisions. CI publishes to https://brunner.ninja/charts, then uses GITOPS_TOKEN to update only the matching Argo Application's exact Helm targetRevision. Argo CD performs the deployment; chart CI never receives Kubernetes credentials.

GitOps values may select namespaces, hostnames, ingress integration, existing claims or storage classes/sizes, resource sizing, replica counts, monitoring labels, and names of existing Secrets. They must not duplicate chart-owned image versions or resource topology.