Polycrate API 0.15.6¶
Release-Datum: 24. April 2026
Typ: Fix
Highlights¶
- LoadbalancerInstance – Deterministischer Deployment-Checksum – Label-Änderungen und Package-Wechsel im Artifact triggern ab sofort ein Redeployment. Der
deployment_checksumenthält jetzt die erwarteten Labels (expected_labels) und die vollständige Block-Referenz (from_block_ref= Package + Version). Bestehende Deployments mit alten Labels werden beim ersten Reconcile-Zyklus automatisch neu deployt und erhalten kanonische Labels auf Pods, Block und K8sApp (Spec 201). - Deployment-Checksum Label kanonisch – Der Checksum-Label auf Pods, Block und K8sApp heißt jetzt
polycrate_loadbalancerinstance_deployment_checksumstattloadbalancerinstances.polycrate.io/deployment-checksum.
Details zu einzelnen Specs: polycrate spec inspect <id> im Workspace polycrate-api.
Artefakte¶
Docker Image¶
Block¶
Fixes¶
Deterministischer Deployment-Checksum (Spec 201)¶
Der deployment_checksum auf LoadbalancerInstanceDeployment berücksichtigte bisher weder die Kubernetes-Labels noch den vollständigen Artifact-Bezeichner (Package + Version). Dadurch lösten Label-Korrekturen im Code (z. B. Spec 199 in 0.15.5) kein Redeployment aus — bestehende Pods behielten Legacy-Labels.
Änderungen:
- Neues Feld
system_config_from_block_refspeichertpackage:version(z. B.cargo.ayedo.cloud/ayedo/k8s/haproxy:2.0.8) statt nur den Versions-String. - Neue Methode
_expected_deployment_labels_for_checksum()berechnet die erwarteten Labels ohne den Checksum-Label selbst (zirkulationsfrei). calculate_deployment_checksum()enthält jetztfrom_block_refundexpected_labelsals Hash-Input.LoadbalancerRegion.create_instance()verwendet jetzt_build_deployment_labels()als Single Source of Truth (Parität mit dem Update-Pfad).- Der Checksum-Label heißt jetzt
polycrate_loadbalancerinstance_deployment_checksum(kanonisch).
Effekt: Beim ersten Reconcile-Zyklus nach dem Update auf 0.15.6 ändert sich der Checksum für alle bestehenden Deployments (da system_config_from_block_ref vorher None war) → Redeployment → kanonische Labels auf Pods, Block und K8sApp.
Kompatibilität und Deployment¶
- Eine Django-Migration für das neue Feld
system_config_from_block_refist enthalten. - Kein Breaking Change — Bestandsdaten fallen bei fehlendem
from_block_refautomatisch aufsystem_config_artifact_versionzurück. - Bestehende HAProxy-Pods werden beim ersten Reconcile automatisch neu deployt und erhalten kanonische Labels.