Zum Inhalt

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

docker pull cargo.ayedo.cloud/library/polycrate:0.30.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.30.0

Installationsanleitung

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.

Der Polycrate Container

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 run mit einer Fehlermeldung ab.
  • Git-versioniert und für alle Beteiligten sichtbar.

Workspaces: .state.poly

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:

registry:
  block_push_exclude:
    - .specs
    - .git

Registry: Exclude Patterns

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:

config:
  crds:
    install: false

Operator: CRDs installieren

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):

polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-operator
polycrate run polycrate-operator install