Zum Inhalt

Polycrate 0.29.3

Veröffentlicht am: 2026-01-09

Highlights

Bugfix-Release mit wichtigen Fixes für Action Run Output Capture, Git Branch-Awareness und Operator-Stabilität bei langen Secret-Namen und Wildcard-Ingress-Hostnames.


Artefakte

Docker Images

# Multi-arch Image (linux/amd64, linux/arm64)
docker pull cargo.ayedo.cloud/library/polycrate:0.29.3
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.3

# Neuinstallation siehe Dokumentation

Installationsanleitung | Update-Anleitung


Bugfixes

Action Run Output Capture

Container-Output wurde bei --docker-native (Standard seit 0.28.0) nicht an die API übermittelt. Das stdout-Feld in ActionRun-Objekten war leer.

Fix: NativeDockerBackend.Run() verwendet jetzt io.MultiWriter um Output gleichzeitig anzuzeigen und zu erfassen.

Action Run Dokumentation

Block Config Submission

Die block.poly Konfiguration wurde nicht korrekt zur API gesendet, weil YAML-Parsing map[interface{}]interface{} erzeugt, was JSON nicht serialisieren kann.

Fix: Explizite Konvertierung zu map[string]interface{} vor der API-Submission.

Dockerfile.poly Spinner Flicker

Beim Build von Custom Docker Images (Dockerfile.poly) flackerte der Terminal-Spinner durch doppelte, verschachtelte Spinner-Aufrufe.

Fix: Spinner aus BuildContainer() entfernt - der Aufrufer ist für UI-Feedback verantwortlich.


Verbesserungen

Git Branch-Aware Operations

Alle Git-Operationen verwenden jetzt den aktuell ausgecheckten Branch statt hardcoded main:

# Auf Branch 'staging'
git checkout staging
polycrate git pull   # Pullt von origin/staging (nicht origin/main!)
polycrate git push   # Pusht nach origin/staging
polycrate git sync   # Synct mit origin/staging

Die Warnung vor polycrate run zeigt jetzt den korrekten Branch:

Workspace is on branch 'staging' at commit abc1234 which is 3 commits behind origin/staging

Expliziter Override weiterhin möglich:

polycrate git pull --branch main  # Pullt explizit von origin/main

Git-Dokumentation

Block Push Spinner & Feedback

polycrate block push zeigt jetzt einen animierten Spinner während des Uploads mit Erfolgs-/Fehler-Indikator:

# Während des Uploads
[/] Pushing block cargo.ayedo.cloud/ayedo/k8s/my-block:1.0.0...

# Bei Erfolg
 Pushing block cargo.ayedo.cloud/ayedo/k8s/my-block:1.0.0

# Bei Fehler
 Pushing block cargo.ayedo.cloud/ayedo/k8s/my-block:1.0.0: access denied

Blocks-Dokumentation


Operator-Fixes

K8sApp Secret Name Length (RFC 1123)

Bei Blocks mit langen Namen (>40 Zeichen) schlug die K8sApp-CR-Erstellung fehl:

metadata.labels: Invalid value: "...-cli-meta.poly": must be no more than 63 characters

Fix:

  • CLI: Neue generateK8sMetaSecretName() Funktion mit Truncation + Hash bei >63 Zeichen
  • Operator: Defensive sanitizeLabelValue() Funktion für alle Label-Werte

Wildcard Hostname Handling

Ingress-Ressourcen mit Wildcard-Hostnames (*.example.com) führten zu ungültigen Endpoint-CR-Namen:

Endpoint.polycrate.io "-example-com" is invalid: metadata.name: must start with alphanumeric

Fix: hostToName() ersetzt jetzt * durch "wildcard" und stellt RFC 1123 Compliance sicher:

  • *.example.comwildcard-example-com
  • *.cdn.example.orgwildcard-cdn-example-org

Accepted Status Codes bei Updates

Wenn ein User die accepted_status_codes in der Polycrate API änderte (z.B. HTTP 401 als akzeptiert hinzufügt), wurden diese Änderungen nicht in den Kubernetes Endpoint CR übernommen.

Symptom: Der Operator-Agent meldete einen Endpoint als DOWN, obwohl der Status Code in der API als akzeptiert konfiguriert war.

Fix: Die mergeAPIEndpointSpec() Funktion übernimmt jetzt auch accepted_status_codes aus der API bei Updates.


Verbesserungen

Host SSH-Agent Auto-Mount

Der auf dem Host laufende SSH-Agent wird jetzt automatisch in den Container gemountet, wenn die Environment-Variable SSH_AUTH_SOCK gesetzt ist.

Das ermöglicht Git-Operationen im Container (z.B. polycrate run app release) ohne manuelle Mount-Konfiguration:

# SSH-Agent muss laufen und Key geladen sein
ssh-add ~/.ssh/id_ed25519

# Actions mit Git funktionieren jetzt automatisch
polycrate run app release

Mit --loglevel 2 wird angezeigt: Mounting host SSH agent socket: /run/user/1000/keyring/ssh

Release Action: Verbesserte Artefakt-Verwaltung

  • Nur aktuelle Version: Upload filtert jetzt auf *_{{ version }}_*.tar.gz
  • Automatisches Cleanup: dist/ wird nach erfolgreichem Release geleert

polycrate-operator Block

Der polycrate-operator Block wird mit diesem Release auf Version 0.3.8 aktualisiert:

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

Weitere Informationen