aYOUne

Changelog

Was sich verändert hat — gruppiert nach Release, filterbar nach Komponente und Repository.

Ohne Meilenstein 2
Fix node

Spreizung zaehlt nur Pods derselben Fassung (matchLabelKeys, 0.1.10)

GEMESSEN, nicht abgeleitet: nach der Ausbringung von 0.1.9 landeten BEIDE Repliken
von ayoune-updates-develop-node auf demselben Knoten (fp7m), waehrend heartbeats im
selben Lauf sauber auf zwei Knoten verteilte. Gegenprobe: das Loeschen einer der
beiden updates-Repliken liess den Ersatz-Pod auf einem ANDEREN Knoten (fny8) starten
- der Mechanismus greift also, nur nicht waehrend eines Rollouts.

Ursache: der labelSelector der Spreizung (name/instance/app) trifft auch die Pods der
ALTEN Fassung. Waehrend eines Rollouts zaehlen die mit, die Schiefe wird gegen den
falschen Bestand gerechnet, und mit dem weichen ScheduleAnyway kann die Wertung dann
zugunsten eines einzelnen Knotens ausfallen.

matchLabelKeys: [pod-template-hash] beschraenkt die Zaehlung auf dieselbe Fassung
(stabil seit K8s 1.30, Cluster faehrt 1.35). Umkehrprobe gefahren: der API-Server
liefert das Feld im Objekt zurueck, verwirft es also nicht still.

Ein-Replikat-Render bleibt gegen 0.1.7 identisch (ausser dem Fassungs-Etikett);
leere matchLabelKeys-Liste laesst das Feld ersatzlos entfallen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Neu node

PodDisruptionBudget + Knoten-Spreizung fuer Mehr-Replikat-Dienste (0.1.8)

Anlass: 2026-08-22T18:19Z raeumte ein ScaleDown des Cluster-Autoscalers BEIDE
Repliken von ayoune-states-develop-node zugleich (0/2, rund 14 Minuten). Das Chart
bot dem Autoscaler nichts an, was ihn bremst - im ganzen Baum existierte genau EIN
PodDisruptionBudget, und der gehoert dem Istio-Ingressgateway.

- templates/pdb.yaml: PDB, gerendert NUR bei replicaCount > 1, minAvailable: 1,
Selektor = die drei POD-Etiketten (name/instance/app). Ein echter bool in
podDisruptionBudget.enabled schlaegt die Automatik; maxUnavailable schlaegt
minAvailable.
- deployment.yaml: topologySpreadConstraints - Roh-Durchreichung (Bauform wie
affinity) plus Automatik ab replicaCount > 1 mit chart-gerendertem labelSelector.
whenUnsatisfiable: ScheduleAnyway, bewusst weich.
- values.yaml: podDisruptionBudget / topologySpreadConstraints / topologySpread.

Fuer die 227 Ein-Replikat-Dienste aendert sich NICHTS: helm template 0.1.7 gegen
0.1.8 ist identisch ausser dem helm.sh/chart-Etikett (das jeder Chart-Bump traegt);
bei replicaCount 0 und 1 wird weder PDB noch Spread gerendert.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>