Zum Inhalt

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
  • Nameicontains auf workspace__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:

Get "https://example.com:80/": http: server gave HTTP response to HTTPS client

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