36 lines
1.8 KiB
Markdown
36 lines
1.8 KiB
Markdown
# 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.
|