Polycrate CLI 0.39.0¶
Release-Datum: 8. Mai 2026
Typ: Feature-Release
Highlights¶
Polycrate CLI 0.39.0 fuehrt einen zweiphasigen ActionRun-Flow ein: Die CLI registriert einen ActionRun vor der Ausfuehrung bei der Polycrate-API und exponiert die resultierende ActionRun-ID als Block-Label (polycrate_actionrun_id). Damit ist die ID zur Laufzeit im Block-Kontext verfuegbar. Bei einem Konflikt (bereits laufender ActionRun fuer denselben Block) erscheint ein interaktiver Prompt. Zusaetzlich werden CTRL+C-Unterbrechungen jetzt sauber als cancelled in der API markiert. Ein Fix sorgt dafuer, dass Container-stdout und -stderr korrekt demultiplext werden, sodass --ansible-stdout-callback=json 2>/dev/null einen vollstaendig sauberen JSON-Stream auf stdout liefert.
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¶
ActionRun: Zweiphasiger Start/Finish-Flow mit Block-Label-Propagation¶
Die CLI fuehrt nun einen zweiphasigen ActionRun-Flow durch, wenn die API-Integration aktiv ist (--api-enabled):
Phase 1 – Start (vor der Ausfuehrung):
POST /api/v1/cli/action-runs/start/wird aufgerufen, bevor die Action startet- Bei Erfolg:
polycrate_actionrun_idwird als kanonisches Block-Label gesetzt und steht im Block-Kontext zur Verfuegung - Bei 409 Conflict (bereits laufender ActionRun fuer denselben Block): interaktiver Prompt erscheint mit Link zur laufenden ActionRun; User kann Ausfuehrung erzwingen (
force=true) oder abbrechen (exit 0) - Bei API-Fehler (nicht erreichbar): Ausfuehrung laeuft ohne registrierten ActionRun weiter (non-blocking Fallback)
Phase 2 – Finish (nach der Ausfuehrung):
POST /api/v1/cli/action-runs/finish/wird mit Exit-Code und Status aufgerufen- Ist keine
actionRunIDbekannt (API war beim Start nicht erreichbar): Fallback auf einphasige Submission
Das Block-Label polycrate_actionrun_id ist damit in Ansible-Tasks und Block-Templates waehrend der Ausfuehrung verfuegbar.
ActionRun: CTRL+C-Unterbrechung als cancelled markieren¶
Wird eine Action mit CTRL+C unterbrochen (Exit Code 130), registriert die CLI den ActionRun jetzt via Cleanup-Handler als cancelled in der API. Ein sync.Once-Mechanismus stellt sicher, dass nur einer der beiden Pfade (normaler Finish oder Cancellation) den API-Aufruf ausfuehrt.
Ausserdem erhaelt die Polycrate-API-Oberflaeche einen Cancel-Button fuer ActionRuns im Status running, sofern diese von der CLI gestartet wurden. Damit koennen orphaned ActionRuns manuell abgebrochen werden.
Fix: Container stdout/stderr Demultiplexing¶
Docker-Attach liefert einen multiplexten Stream, der Container-stdout und -stderr gemischt enthaelt. Bisher wurde dieser Stream via io.Copy direkt auf polycrate-stdout kopiert, sodass Ansible-Meldungen wie Using /path/ansible.cfg as config file trotz 2>/dev/null auf stdout erschienen.
Ab 0.39.0 wird stdcopy.StdCopy verwendet: Container-stdout landet auf polycrate-stdout, Container-stderr auf polycrate-stderr. Das ermoeglicht vollstaendig saubere JSON-Pipelines:
polycrate-operator Block¶
Der polycrate-operator Block wurde auf Version 0.4.3 aktualisiert (app_version: 0.39.0):
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.