Polycrate 0.29.4¶
Veröffentlicht am: 2026-01-09
Highlights¶
Kritisches Bugfix-Release für den Operator mit Fixes für API-Synchronisation, TLS-Port-Konfiguration und Cluster-Erkennung.
Artefakte¶
Docker Images¶
# Multi-arch Image (linux/amd64, linux/arm64)
docker pull cargo.ayedo.cloud/library/polycrate:0.29.4
docker pull cargo.ayedo.cloud/library/polycrate:latest
CLI Downloads¶
| Plattform | Architektur | Download |
|---|---|---|
| Linux | amd64 | Download |
| Linux | arm64 | Download |
| macOS | amd64 | Download |
| macOS | arm64 | Download |
Installation & Update¶
# Bestehende Installation aktualisieren
polycrate update 0.29.4
# Neuinstallation siehe Dokumentation
→ Installationsanleitung | Update-Anleitung
Bugfixes¶
Cluster API Filter (polycrate-api)¶
Der Workspace-Filter bei der Cluster-Suche akzeptierte nur Namen, nicht aber UUIDs. Da der Operator Workspace-UUIDs sendet, wurden existierende Cluster nicht gefunden.
Symptom: Der Operator versuchte bei jedem Reconcile ein neues Cluster zu erstellen, obwohl bereits eines existiert:
django.db.utils.IntegrityError: duplicate key value violates unique constraint "unique_k8s_cluster_per_workspace"
Fix: Der filter_workspace() erkennt jetzt automatisch ob der Wert eine UUID oder ein Name ist:
- UUID → exakter Match auf
workspace__id - Name →
icontainsaufworkspace__name
Cluster Duplikat-Handling (Operator)¶
Selbst wenn die API den Workspace-Filter nicht korrekt verarbeitet, fängt der Operator jetzt Duplikat-Fehler ab und holt das existierende Cluster.
Verbesserungen:
- Neue Funktion
GetClusterByNameAndWorkspace()für präzisere Suche - Sucht nach Name UND Workspace statt nur Workspace
- Fängt Duplikat-Fehler ab und verwendet existierendes Cluster
- Robuster bei Race-Conditions und API-Fehlern
TLS-Port-Synchronisation (Operator)¶
Wenn TLS in der API aktiviert wurde, blieb der Port in der Endpoint CR auf 80. Das führte zu fehlgeschlagenen HTTPS-Checks:
Fix: Automatische Port-Anpassung in mergeAPIEndpointSpec():
- TLS aktiviert + Port 80/0 → Port wird auf 443 gesetzt
- TLS deaktiviert + Port 443 → Port wird auf 80 gesetzt
Node RBAC (Operator)¶
Der Operator konnte Finalizers auf Node-Ressourcen nicht verwalten:
nodes "node-name" is forbidden: User "system:serviceaccount:polycrate:polycrate-operator" cannot update resource "nodes"
Fix: ClusterRole erweitert um update und patch Permissions für nodes.
polycrate-operator Block¶
Der polycrate-operator Block wird mit diesem Release auf Version 0.3.9 aktualisiert:
# Block aktualisieren
polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-operator
# Operator neu installieren (wendet neue RBAC-Regeln an)
polycrate run polycrate-operator install
Wichtig: Nach dem Update muss der Operator neu installiert werden, damit die neuen ClusterRole-Permissions wirksam werden.
Migration¶
API Deployment erforderlich¶
Dieses Release erfordert auch ein Update der polycrate-api auf Version 0.11.3, da der Workspace-UUID-Filter dort gefixt wurde.
# In polycrate-api Workspace
polycrate run docker build
polycrate run docker push
polycrate run polycrate-api install
Weitere Informationen¶
- Polycrate CLI Übersicht - Allgemeine Dokumentation
- Operator-Dokumentation - Kubernetes Operator
- Polycrate 0.29.3 Release Notes - Vorherige Version