Polycrate CLI 0.39.2¶
Release-Datum: 8. Mai 2026
Typ: Patch-Release
Highlights¶
Polycrate CLI 0.39.2 behebt vier Operator-Fehler, die beim Neustart oder nach CRD-Upgrades auftraten: doppelte K8sApp-Eintraege, doppelte Certificate-/Backup-/BackupSchedule-Eintraege sowie wiederkehrende Konflikte beim OperatorConfig-Status-Update.
Artefakte¶
Docker Images¶
CLI Downloads¶
| Plattform | Architektur | Download |
|---|---|---|
| Linux | amd64 | Download |
| Linux | arm64 | Download |
| macOS | amd64 | Download |
| macOS | arm64 (Apple Silicon) | Download |
Installation & Update¶
Aenderungen¶
Fix: K8sApp-Duplikate beim Operator-Neustart (Spec 178)¶
Beim Neustart des Operators wurden bestehende K8sApps doppelt in der Polycrate-API angelegt. Ursache war, dass der syncK8sApp-Reconciler seine Adopt-Lookup-Logik uebersprang, solange OrganizationID und WorkspaceID noch nicht vom APIAgentReconciler aufgeloest worden waren — ein Zeitfenster, das beim Start immer auftritt.
Ein neuer Guard in syncK8sApp stellt sicher, dass Reconciliations ohne gecachte ApiId und ohne aufgeloeste WorkspaceID mit einem kurzen Requeue (10s) verzoegert werden, bis die IDs verfuegbar sind. Label-entdeckte Apps (ohne Workspace-Abhaengigkeit) sind ausgenommen.
Fix: Certificate-Reconciler Pre-Lookup (Spec 179)¶
Nach einem CRD-Upgrade, das den Status der Certificate-CRs loescht, versuchte der Reconciler vorhandene Zertifikate neu anzulegen. Da die Django-API fuer Unique-Constraint-Verletzungen HTTP 400 statt HTTP 409 zurueckgibt, griff der bestehende adopt-on-409-Fallback nicht.
Ein neues Pre-Lookup vor dem CREATE-Pfad prueft nun via FindCertificateByNameAndCluster, ob das Zertifikat bereits in der API existiert, und uebernimmt dessen ID (Adoption) statt ein Duplikat anzulegen.
Fix: OperatorConfig Status-Update Konflikte (Spec 180)¶
Der apiagent-Controller loggete beim Hochfahren wiederholt Failed to update agent status-Fehler durch optimistische Nebenläufigkeitskonflikte: Die OperatorConfig wurde zu Beginn des Reconcile-Zyklus gelesen, aber ein paralleler Zyklus hatte sie zwischenzeitlich modifiziert.
Die updateAgentStatus-Funktion nutzt jetzt RetryOnConflict aus k8s.io/client-go/util/retry und fetcht die OperatorConfig innerhalb der Retry-Schleife neu, sodass immer die aktuelle resourceVersion verwendet wird.
Fix: Backup/BackupSchedule Pre-Lookup (Spec 181)¶
Analog zu Spec 179: Die Backup- und BackupSchedule-Reconciler hatten ebenfalls nur einen adopt-on-409-Fallback ohne vorgelagertes Pre-Lookup. Nach einem CRD-Upgrade mit leerem Status entstanden daher auch hier Duplikate.
Beide Reconciler pruefen nun via FindBackupByNameAndCluster bzw. FindBackupScheduleByNameAndCluster vor dem CREATE, ob die Ressource bereits in der API vorhanden ist, und adoptieren sie gegebenenfalls.
polycrate-operator Block¶
Der polycrate-operator Block wurde auf Version 0.4.6 aktualisiert (app_version: 0.39.2):
polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-operator
polycrate run polycrate-operator install
Jetzt aktualisieren¶
Oder laden Sie die Binaries direkt vom PolyHub herunter.