Zum Inhalt

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

docker pull cargo.ayedo.cloud/library/polycrate:0.39.0

CLI Downloads

Plattform Architektur Download
Linux amd64 Download
Linux arm64 Download
macOS amd64 Download
macOS arm64 (Apple Silicon) Download

Installation & Update

polycrate update 0.39.0

Installationsanleitung

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_id wird 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 actionRunID bekannt (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.

CLI-Referenz: polycrate run

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 run --silent --ansible-stdout-callback=json my-block my-action 2>/dev/null

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

polycrate update 0.39.0

Oder laden Sie die Binaries direkt vom PolyHub herunter.