Polycrate CLI 0.30.0¶
Release-Datum: 25. Februar 2026
Typ: Feature-Release
Highlights¶
Polycrate CLI 0.30.0 ist ein größeres Feature-Release mit Python 3.12 und Ansible 13.2 im Container-Image, dem neuen --set Flag für Runtime-Overrides von Action-Konfigurationen, der Einführung von .state.poly für CLI/API/Operator-Koordination, der Auslagerung der Operator-CRDs in den polycrate-operator Block sowie mehreren wichtigen Bugfixes.
Artefakte¶
Docker Images¶
CLI Downloads¶
| Plattform | Architektur | Download |
|---|---|---|
| Linux | amd64 | Download |
| Linux | arm64 | Download |
| macOS | amd64 | Download |
| macOS | arm64 (Apple Silicon) | Download |
Installation & Update¶
Neue Features¶
Python 3.12 + Ansible 13.2¶
Das Polycrate Container-Image basiert nun auf python:3.12-slim und enthält Ansible 13.2.0 (ansible-core 2.18.x). Damit steht kubernetes.core >= 6.1.0 zur Verfügung, das den take_ownership-Parameter für kubernetes.core.helm mitbringt.
Das vorherige Ansible 10.7.0 war zum Zeitpunkt des Releases bereits End-of-Life und enthielt eine ältere kubernetes.core-Version, die neuere Modul-Parameter nicht unterstützte.
Runtime Config Overrides (--set)¶
Das neue --set Flag für polycrate run ermöglicht es, action.config-Werte zur Laufzeit zu überschreiben – ohne workspace.poly oder block.poly zu verändern. Die Syntax folgt dem Helm-Standard.
polycrate run my-block migrate \
--set database.host=prod-db.internal \
--set database.port=5433 \
--set options.dry_run=true
Priorität: block.poly < workspace.poly < --set (höchste Priorität).
→ Actions: Runtime Config Overrides
.state.poly: CLI/API/Operator-Koordination¶
Die neue Datei .state.poly im Workspace-Root enthält den operationalen State aller instanziierten Blocks. Sie koordiniert zwischen CLI, API und Operator, um konkurrierende Block-Verwaltung zu verhindern.
- Wird nach jedem Action Run automatisch aktualisiert und committed.
- Konflikt-Erkennung: Wenn ein Block gleichzeitig von CLI und API verwaltet wird, bricht
polycrate runmit einer Fehlermeldung ab. - Git-versioniert und für alle Beteiligten sichtbar.
Docker Pull Progress¶
polycrate run zeigt beim Pullen des Container-Images jetzt eine aggregierte Fortschrittsanzeige mit Layer-Tracking, Prozentangaben und Byte-Zähler. In CI/CD-Umgebungen ohne TTY degradiert die Anzeige graceful.
Block Push Exclude Paths¶
polycrate blocks push unterstützt jetzt das Ausschließen von Verzeichnissen und Dateien vom OCI-Image. .specs/ wird standardmäßig ausgeschlossen.
# Mit eigenem Exclude-Pattern
polycrate blocks push cargo.ayedo.cloud/my-org/my-block \
--exclude .specs \
--exclude .git \
--exclude "*.log"
Konfigurierbar auch dauerhaft in ~/.polycrate/polycrate.yml:
Verbesserungen¶
CRD Block Migration¶
Die Operator-CRDs werden ab 0.30.0 im polycrate-operator Block (crds/-Verzeichnis) ausgeliefert statt in der CLI embedded zu sein. Dies stellt sicher, dass CRD-Version und Block-Version immer übereinstimmen.
Der Block installiert CRDs standardmäßig automatisch beim install-Playbook. Für GitOps-Setups kann die automatische Installation deaktiviert werden:
Git Remote Ahead Check Zuverlässigkeit¶
Der Check „workspace is behind remote" vor polycrate run ist jetzt robuster: Fetch-Fehler werden als Warning geloggt statt still ignoriert. Die Action-Ausführung wird durch einen fehlgeschlagenen Check niemals blockiert.
Bugfixes¶
| Fix | Beschreibung |
|---|---|
| Panic bei selbstreferenzierenden Blocks | Blocks mit from: die auf sich selbst verweisen, verursachten einen Panic. |
| Wildcard Hostnames | *.example.com erzeugte ungültige K8s Namen (-example-com). Fix: * → wildcard, führende/nachfolgende Bindestriche werden getrimmt. |
| K8sApp Secret Name Length | Secret-Namen > 63 Zeichen brachen die K8s Label-Validierung. Fix: Truncation mit Hash-Suffix für Eindeutigkeit. |
| Ansible Reserved Variable Warning | Warnungen „Found variable using reserved name 'action'/'block'" wurden eliminiert. |
| BackupSchedule Name | BackupSchedules wurden als „Unnamed" gespeichert, weil der Name fehlte im API-Request des Operators. |
polycrate-operator Block¶
Der polycrate-operator Block wurde auf Version 0.3.35 aktualisiert (app_version: 0.30.0):