Polycrate 0.28.0

Polycrate 0.28.0

Veröffentlicht am: 2025-12-14

Highlights

Polycrate 0.28.0 ist ein umfangreiches Release mit zahlreichen neuen Features: Kubernetes Operator für Multi-Tenant-Management, Block Security Scanning mit SBOM-Generierung und IaC-Vulnerability-Detection (Checkov, Trivy, Syft/Grype), Verschlüsseltes Secret-Management, MCP-Server-Integration für AI-Assistenten, Kubernetes-Debugging, erweiterte Hub-Commands mit TUI, Workspace List mit API-Integration (Remote-Workspaces, UI-Browser-Öffnung), Git-Integration ohne externe Abhängigkeiten, Docker Native Mode, interaktive Dependency-Auflösung, TUI-Pager für Inspect-Commands, und vieles mehr.


Artefakte

Docker Images

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

# Neuinstallation
curl -sSL https://hub.polycrate.io/get/polycrate/0.28.0/$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/')/polycrate_0.28.0_$(uname -s | tr '[:upper:]' '[:lower:]')_$(uname -m | sed 's/x86_64/amd64/' | sed 's/aarch64/arm64/').tar.gz | sudo tar -xz -C /usr/local/bin/

Installationsanleitung | Update-Anleitung


Neue Features

Workspace Encryption & Secret Management

Polycrate bietet jetzt ein robustes Secret-Management-System mit age-Verschlüsselung:

Features:

  • secrets.poly: Separate Datei für sensitive Block-Konfiguration mit Deep-Merge
  • Artifact Secrets: Verschlüsselte Files in artifacts/secrets/ (workspace- und block-spezifisch)
  • API-Integration: Automatischer Key-Abruf von der Polycrate API
  • Keine Key-Datei im Workspace: Keys nur via API, Umgebungsvariable oder Prompt

Neue Commands:

# Workspace-Secrets verschlüsseln
polycrate workspace encrypt

# Workspace-Secrets entschlüsseln
polycrate workspace decrypt

# Encryption-Status anzeigen
polycrate workspace status

Verwendung in Ansible Playbooks:

Die entschlüsselten Secrets stehen in Ansible Playbooks über die workspace.secrets und block.secrets Dictionaries zur Verfügung:

# playbooks/deploy.yml
- name: Deploy to Kubernetes
  shell: kubectl --kubeconfig={{ workspace.secrets['kubeconfig.yml'] }} get pods

- name: Connect to Database
  shell: mysql -p{{ block.secrets['database_password'] }} -h localhost

Ausführliche Dokumentation

Kubernetes Operator

Polycrate enthält jetzt einen integrierten Kubernetes Operator, der automatisch Cluster-Ressourcen erkennt und mit der Polycrate API synchronisiert. Dies ermöglicht eine zentrale Übersicht über Endpoints, Zertifikate, Backups, Container-Images und deployten Anwendungen.

Hauptfunktionen:

  • Resource Discovery: Automatische Erkennung von Ingresses, Certificates, Backups, Pods und Polycrate Blocks
  • API-Synchronisation: Alle erkannten Ressourcen werden mit der Polycrate API synchronisiert
  • Endpoint-Monitoring: Health-Checks für Endpoints im eigenen Cluster sowie global über die API
  • Prometheus-Metriken: Export von Monitoring-Daten für VictoriaMetrics/Prometheus
  • Change Detection: Hash-basierte Änderungserkennung verhindert unnötige API-Updates
  • Finalizer-basiertes Cleanup: API-Objekte werden bei K8s-Deletion automatisch entfernt

Custom Resource Definitions (Discovery):

CRD Kurzname Beschreibung
OperatorConfig oc Zentrale Operator-Konfiguration
Endpoint ep HTTP(S)-Endpoints aus Ingress-Ressourcen
Certificate cert TLS-Zertifikate von cert-manager
Backup bkp Velero Backup-Status
BackupSchedule bs Velero Backup-Schedules
K8sApp k8a Deployte Polycrate Blocks (Meta-Secrets)
Artifact art Container-Images aus Pods (cluster-scoped)
Host host Kubernetes Nodes

Neue CLI-Commands:

# CRDs ins Cluster installieren
polycrate operator install-crds

# CRD-Definitionen ausgeben
polycrate operator crds

# Operator starten
polycrate operator run --kubeconfig ~/.kube/config

# Status aller Ressourcen anzeigen
polycrate operator status

# Health-Check
polycrate operator health

Discovery-Funktionalität:

Der Operator erkennt automatisch Kubernetes-Ressourcen und erstellt entsprechende Custom Resources, die mit der Polycrate API synchronisiert werden:

K8s Ressource Polycrate CRD Beschreibung
Ingress Endpoint HTTP(S)-Endpoints pro Hostname mit Health-Status
cert-manager Certificate Certificate TLS-Zertifikate mit Ablaufdatum und Issuer
Velero Backup Backup Backup-Status und Metadaten
Velero Schedule BackupSchedule Schedule-Konfiguration
Pod Artifact Container-Images (cluster-weit, dedupliziert)
Meta-Secret (*.poly) K8sApp Deployte Polycrate Blocks mit Artifact-Verknüpfung
Node Host Kubernetes Nodes als Hosts

Alle Discovery-Controller erstellen Custom Resources mit Owner-Reference für automatisches Cleanup. Finalizer stellen sicher, dass API-Objekte bei K8s-Deletion automatisch entfernt werden.

Prometheus-Metriken:

Der Operator exportiert Monitoring-Metriken im Prometheus-Format. Diese können von VictoriaMetrics Agent oder Prometheus selbst aufgesammelt werden:

# Metriken-Endpoint
curl http://localhost:8080/metrics

Ausführliche Dokumentation

Certificate Discovery (cert-manager Integration)

Der Operator erkennt automatisch TLS-Zertifikate von cert-manager und synchronisiert sie mit der API:

Erkannte Felder aus cert-manager Certificate:

Feld Beschreibung
commonName Common Name des Zertifikats
dnsNames Liste der DNS-Namen (SANs)
issuerRef Referenz zum Issuer (Let's Encrypt, etc.)
secretName Secret mit dem TLS-Zertifikat
notBefore / notAfter Gültigkeitszeitraum
renewalTime Geplanter Erneuerungszeitpunkt
revisionHistoryLimit Anzahl der Revision-History

Certificate CRD Status:

status:
  phase: "Synced"  # Ready, Issuing, Failed
  api_id: "uuid-..."
  issuer_ready: true
  certificate_ready: true
  not_after: "2026-03-15T00:00:00Z"
  renewal_time: "2026-02-13T00:00:00Z"
  conditions:
    - type: Ready
      status: "True"
      reason: "Issued"

Beispiel: Erkanntes Zertifikat

$ kubectl get certificates -A
NAMESPACE   NAME              SECRET            ISSUER          READY   AGE
prod        api-example-com   api-tls           letsencrypt     True    30d
prod        web-example-com   web-tls           letsencrypt     True    15d

K8sApp Discovery (Deployed Blocks)

Der Operator erkennt automatisch deployte Polycrate Blocks anhand der Meta-Secrets (*.poly):

K8sApp CRD Features:

  • Block-Metadaten: Name, Version, App-Version, Source, Type, Flavor
  • Helm-Chart-Informationen: Chart-Name, Version, Repo-URL
  • Workspace-Kontext: Workspace-Name und Organization
  • Installation-Status: Ableitung aus Action-Name/Status
  • Artifact-Verknüpfung: Liste der verwendeten Container-Images

Beispiel: K8sApp anzeigen

$ kubectl get k8sapps -A
NAMESPACE   NAME             BLOCK            VERSION   ARTIFACTS   PHASE    AGE
prod        nginx-ingress    nginx-ingress    1.2.0     3           Synced   7d
prod        redis            redis            7.2.0     1           Synced   14d
staging     authentik        authentik        2024.8    5           Synced   3d
$ kubectl describe k8sapp nginx-ingress -n prod
Name:         nginx-ingress
Namespace:    prod
Spec:
  Block:
    Name:           nginx-ingress
    Display Name:   NGINX Ingress Controller
    Version:        1.2.0
    App Version:    1.9.6
    From:           cargo.ayedo.cloud/ayedo/k8s/nginx-ingress
    Type:           ingress-controller
  Workspace:
    Name:           production
    Organization:   acme-corp
Status:
  Phase:         Synced
  Installed:     true
  Artifacts:
    - Name:   cargo-ayedo-cloud-library-nginx-1-25-3
      Image:  cargo.ayedo.cloud/library/nginx:1.25.3
      Pod Count: 3

Artifact Discovery (Container Images)

Der Operator trackt automatisch alle Container-Images im Cluster:

Features:

  • Cluster-weit: Artifacts sind cluster-scoped (nicht namespace-gebunden)
  • Image-Parsing: Vollständige Auflösung von Registry, Repository, Tag/Digest
  • Namespace-Tracking: Welche Namespaces nutzen welches Image?
  • K8sApp-Verknüpfung: Bidirektionale Referenz zwischen K8sApp und Artifacts

Beispiel: Artifacts anzeigen

$ kubectl get artifacts
NAME                                      IMAGE                                      PODS   PHASE
cargo-ayedo-cloud-library-nginx-1-25-3    cargo.ayedo.cloud/library/nginx:1.25.3    5      Discovered
docker-io-library-redis-7-2               redis:7.2                                  2      Discovered
ghcr-io-cert-manager-controller-v1-14     ghcr.io/cert-manager/controller:v1.14     1      Discovered

OperatorConfig für Artifact Discovery:

spec:
  artifact_discovery:
    enabled: true
    ignore_namespaces:
      - kube-system
      - kube-public
    exclude_registries:
      - registry.k8s.io  # System-Images ignorieren
    cleanup:
      enabled: true
      stale_threshold_hours: 1  # Nach 1h ohne Pods löschen

Ausführliche Dokumentation | CLI-Referenz

MCP Server Integration

Die CLI enthält jetzt einen integrierten MCP-Server (Model Context Protocol), der AI-Assistenten direkten Zugriff auf den Polycrate Hub und die Dokumentation ermöglicht.

Use Cases:

  • Workspace-Entwicklung mit AI: Beim Entwickeln neuer Workspaces kann der AI-Assistent das Hub nach passenden Blöcken durchsuchen. Frage einfach: "Welche Blöcke gibt es für Kubernetes-Deployments?" oder "Zeige mir Blöcke für Authentifizierung"
  • Block-Discovery: Der Assistent kann verfügbare Blöcke, deren Versionen und Dokumentation abrufen, ohne dass du das Hub manuell durchsuchen musst
  • Schema-Spezifikationen: AI-Assistenten können die Schemas für workspace.poly, block.poly, secrets.poly und CHANGELOG.poly abrufen um korrekte Konfigurationen zu generieren
  • Dokumentationsabfragen: Der Assistent kann die offizielle Polycrate-Dokumentation von docs.ayedo.de abrufen und kontextbezogen zitieren

Verfügbare Tools:

Kategorie Tool Beschreibung
Hub hub_info Hub-Konfiguration und Verbindungsstatus
Hub hub_list_blocks Alle Blöcke im Hub durchsuchen und filtern
Hub hub_inspect_block Block-Details, README und Config-Schema abrufen
Hub hub_list_versions Verfügbare Versionen eines Blocks auflisten
CLI cli_get_latest_version Neueste stabile CLI-Version
CLI cli_list_versions Alle verfügbaren CLI-Versionen
CLI cli_get_artifacts Download-URLs und Docker-Tags für Release Notes
Spec spec_workspace Schema für workspace.poly
Spec spec_block Schema für block.poly
Spec spec_changelog Format für CHANGELOG.poly
Spec spec_secrets Format für secrets.poly
Docs docs_get Polycrate-Dokumentation abrufen

Beispiel-Interaktion mit AI:

Du: "Ich brauche einen Block für PostgreSQL-Deployments auf Kubernetes"

AI: [nutzt hub_list_blocks mit Filter "postgres"]
    "Im Hub gibt es den Block 'cargo.ayedo.cloud/ayedo/k8s-apps/postgres' 
     in Version 1.2.0. Er unterstützt..."
    [nutzt hub_inspect_block für Details]

Cursor-Konfiguration (~/.cursor/mcp.json):

{
  "mcpServers": {
    "polycrate": {
      "command": "polycrate",
      "args": ["mcp"]
    }
  }
}

Claude Desktop-Konfiguration (~/Library/Application Support/Claude/claude_desktop_config.json auf macOS):

{
  "mcpServers": {
    "polycrate": {
      "command": "polycrate",
      "args": ["mcp"]
    }
  }
}

Auf Linux liegt die Datei unter ~/.config/Claude/claude_desktop_config.json.

GitHub Copilot-Konfiguration (.vscode/mcp.json im Workspace):

{
  "servers": {
    "polycrate": {
      "command": "polycrate",
      "args": ["mcp"]
    }
  }
}

Ausführliche Dokumentation

Hub Commands

Neue Commands zum Arbeiten mit dem Polycrate Hub:

# Alle verfügbaren Blöcke anzeigen
polycrate hub list

# Nach Name filtern
polycrate hub list --filter authentik

# Nach Kind filtern
polycrate hub list --kind k8sapp

# Block-Details anzeigen
polycrate hub inspect ayedo/k8s/authentik

# Block-Versionen anzeigen
polycrate hub versions ayedo/k8s/authentik

Ausführliche Dokumentation | CLI-Referenz

Kubernetes Debug Command

Starte einen temporären Debug-Pod mit Polycrate-Image und cluster-admin Rechten:

# Standard: kube-system Namespace
polycrate k8s debug -w my-workspace

# Custom Namespace
polycrate k8s debug -w my-workspace --namespace monitoring

# Mit PVC-Mounts
polycrate k8s debug -w my-workspace -m data-pvc:/data -m logs-pvc:/var/log

Features:

  • Automatisches ServiceAccount-Setup mit cluster-admin Rechten
  • PVC-Mount-Support für Datenzugriff
  • Automatisches Cleanup bei Exit
  • TTY-Session mit sofortigem Shell-Prompt

Ausführliche Dokumentation | CLI-Referenz

SSH Passphrase Support

Unterstützung für SSH-Keys mit Passphrase über ssh-agent:

# SSH-Passphrase-Support beim Init aktivieren
polycrate --ssh-use-passphrase workspace init

# Für bestehende Workspaces
polycrate --ssh-use-passphrase action run deploy

Passphrase-Quellen (Priorität):

  1. Keyfile: $WORKSPACE_ROOT/ssh-passphrase.poly
  2. User-Prompt: Interaktive Eingabe

Der ssh-agent wird automatisch gestartet und der Socket in Docker-Container gemountet.

Ausführliche Dokumentation

Workspace List Command

Interaktive TUI zum Browsen und Verwalten von Workspaces – jetzt mit API-Integration:

# API-Workspaces (Standard, oder Fallback auf lokal)
polycrate workspace list

# Explizit lokale Workspaces
polycrate workspace list --local

# Mit Vorfilter
polycrate workspace list --filter production

# Tabellenausgabe ohne TUI
polycrate workspace list --no-pager

# Detaillierte Tabellenausgabe (lokal)
polycrate workspace list --local --no-pager -v

Modus-Entscheidung:

Bedingung Verhalten
--local gesetzt Lokale Workspaces aus ~/.polycrate/workspaces/
API konfiguriert Workspaces aus der Polycrate API
API nicht konfiguriert Automatischer Fallback auf lokal

TUI-Navigation:

Taste Aktion
/ oder j/k Navigation
Enter Workspace auswählen → Action-Menü
Tippen Filter-Suche
q oder Esc Beenden

Action-Menü (Remote/API):

  • open – Workspace in der Polycrate UI öffnen (Browser)
  • gitlab – GitLab-Repository im Browser öffnen
  • clone – Repository lokal klonen

Action-Menü (Lokal):

  • open – Workspace-Details und Pfad anzeigen
  • status – Workspace-Status abrufen
  • git-sync – Git-Änderungen synchronisieren

Angezeigte Informationen (Lokal):

  • Name und Organization
  • Encryption-Status (🔒)
  • Git-Branch, Commit, Status (clean/dirty)
  • Letzter Autor und letzte Änderung

Angezeigte Informationen (Remote):

  • Name und Organization
  • State (READY, DEGRADED, DOWN)
  • UI-URL zur Polycrate Weboberfläche

Ausführliche Dokumentation | CLI-Referenz

Git Commands

Vereinfachte Git-Integration ohne externe Git-Installation (basiert auf go-git):

# Repository-Status
polycrate git status

# Dateien stagen
polycrate git add file.txt
polycrate git add --all

# Committen
polycrate git commit --message "feat: add feature"

# Push/Pull
polycrate git push
polycrate git pull

# Automatischer Sync-Workflow
polycrate git sync

Features:

  • Farbige Status-Ausgabe
  • Conflict-Erkennung VOR dem Pull
  • Auto-Stage und Auto-Commit
  • Spinner während Push/Pull

Ausführliche Dokumentation | CLI-Referenz

Workspace Git-Aliase

Alle Git-Commands sind nun auch als polycrate workspace * Aliase verfügbar:

# Äquivalente Commands:
polycrate workspace pull    # = polycrate git pull
polycrate workspace push    # = polycrate git push
polycrate workspace sync    # = polycrate git sync
polycrate workspace add     # = polycrate git add
polycrate workspace commit  # = polycrate git commit

Diese Aliase ermöglichen eine intuitivere UX, bei der alle Workspace-bezogenen Operationen unter polycrate workspace verfügbar sind.

CLI-Referenz

CLI Instance Tracking

Polycrate trackt jetzt automatisch alle CLI-Installationen pro User:

Features:

  • Automatische Registrierung: Bei jedem ActionRun wird die CLI-Installation automatisch erfasst
  • Machine-Identifikation: Hostname, OS, Architektur, Git- und Docker-Version
  • Version-Tracking: Aktuelle und vorherige CLI-Version mit Update-History
  • User Interface: Neuer Tab "CLI Installations" in den Account-Einstellungen

Tracking-Daten:

Feld Beschreibung
hostname Machine-Hostname
os / arch Betriebssystem und Architektur (z.B. linux/amd64)
current_version Aktuelle CLI-Version
last_version Vorherige Version vor dem Update
git_version Installierte Git-Version
docker_version Installierte Docker-Version
submission_count Anzahl der ActionRun-Submissions
first_seen / last_seen Erste und letzte Aktivität

Unique Key: Jede Kombination aus (user, hostname, os, arch) wird als separate Installation getrackt.

Ausführliche Dokumentation

ActionRun API Submission

Action-Run-Ergebnisse werden automatisch an die Polycrate API übermittelt:

# Aktiviert über Konfiguration
polycrate run block action  # Results werden automatisch submitted

# Deaktivieren
polycrate --no-api-submit-action-runs run block action

Features:

  • Fail-Safe Design: API-Fehler blockieren niemals erfolgreiche Actions
  • Retry-Logic mit exponential Backoff
  • Detailliertes Metadata (CLI-Version, Host, OS, Duration)

Ausführliche Dokumentation

Endpoint Path Support

HTTP-Endpoint-Checks unterstützen jetzt spezifische Pfade für Health-Checks:

Ingress-Annotation:

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: my-api
  annotations:
    # Health-Check auf spezifischen Pfad
    endpoints.polycrate.io/path: "/api/health"
spec:
  rules:
    - host: api.example.com
      # ...

Features:

  • Pfad wird bei jedem Reconciliation-Zyklus dynamisch gelesen
  • Änderungen an der Annotation werden automatisch übernommen
  • Default: / wenn keine Annotation gesetzt

Beispiele:

Annotation Check-URL
Keine https://api.example.com:443/
endpoints.polycrate.io/path: "/health" https://api.example.com:443/health
endpoints.polycrate.io/path: "/api/v1/status" https://api.example.com:443/api/v1/status

Ausführliche Dokumentation

Operator API-Authentifizierung

Der Kubernetes Operator kommuniziert mit der Polycrate API über den Workspace Agent Token:

Konfiguration:

apiVersion: polycrate.io/v1alpha1
kind: OperatorConfig
metadata:
  name: default
  namespace: polycrate
spec:
  api_sync:
    enabled: true
    api_url: "https://api.polycrate.io"
    credentials_ref:
      secret_name: polycrate-api-creds
      token_key: token  # Agent Token aus diesem Secret

Vorteile:

  • Workspace-Isolation: Agent Token hat nur Zugriff auf den zugeordneten Workspace
  • Keine User-Credentials: Kein persönlicher API-Key erforderlich
  • Automatisches Scoping: Alle API-Operationen sind auf den Workspace beschränkt

Der Agent Token wird im Polycrate UI unter Workspace → Settings → Tokens generiert.

Ausführliche Dokumentation

Changelog Commands

Neue interaktive Commands zum Browsen von Changelogs:

# Workspace Changelog
polycrate workspace changelog

# Block Changelog
polycrate block changelog <block-name>

# Changelog-Format anzeigen
polycrate workspace changelog --spec

CLI-Referenz

Block Security Scanning

Polycrate enthält jetzt integriertes Security-Scanning für Blöcke mit SBOM-Generierung und Vulnerability-Detection:

Verfügbare Scanner:

Tool Typ Anwendung
Checkov (Standard) IaC Security Scanner Ansible, Terraform, Kubernetes, Dockerfiles
Trivy All-in-One Scanner Container, Dependencies, Secrets, Lizenzen
Syft + Grype Best of Breed Production-Grade SBOM + Vulnerability Matching

Neue Commands:

# Block analysieren (Checkov für IaC-Security, Standard)
polycrate block analyze my-block

# Mit Trivy analysieren (Dependencies, Container)
polycrate block analyze my-block --tool trivy

# Mit Syft + Grype analysieren (Production)
polycrate block analyze my-block --tool syft

# Ergebnisse anzeigen
polycrate block sbom inspect my-block
polycrate block vulnerabilities inspect my-block
polycrate block vulns inspect my-block  # Alias

Output-Dateien:

Datei Inhalt
sbom.poly Software Bill of Materials (CycloneDX-Format)
vulnerabilities.poly Security-Findings und Vulnerabilities

TUI-Features:

  • Interaktive Liste mit Filter-Suche
  • YAML-Syntax-Highlighting
  • vim-style Navigation (j/k, g/G)
  • --no-pager für CI/CD-Pipelines

Beispiel: Ansible-Block scannen

$ polycrate block analyze hardening
◰ Analyzing block 'hardening'...
◰ Running checkov analysis...
✓ Analysis complete:
◰   Components: 0   Vulnerabilities: 3 (1 HIGH, 2 MEDIUM)

$ polycrate block vulns inspect hardening
# Interaktive TUI mit allen Findings

Ausführliche Dokumentation | Integrationen

Docker Native Mode

Polycrate kann nun optional das Docker Go SDK direkt verwenden statt die Docker CLI aufzurufen:

# Via Flag
polycrate --docker-native run myblock install
polycrate -N run myblock install

# Via Umgebungsvariable
export POLYCRATE_DOCKER_NATIVE=true

# Via Konfigurationsdatei (~/.polycrate/config.yml)
# docker:
#   native: true

Vorteile:

  • Keine Docker CLI Installation erforderlich
  • Bessere Performance (keine Shell-Spawning)
  • Typisierte Fehlerbehandlung statt Text-Parsing
  • Podman-Kompatibilität über Docker API Socket

Ausführliche Dokumentation

Container Debug Command

Neues polycrate debug Command für interaktive Debug-Sessions im Container:

# Debug-Container starten
polycrate debug

# Mit zusätzlichen Mounts
polycrate debug -m /local:/container

# Mit Environment-Variablen
polycrate debug -e DEBUG=true

Startet den Polycrate-Container mit allen Mounts und Environment-Variablen wie bei einem Action Run, aber mit interaktiver Bash-Shell statt Action-Ausführung.

Ausführliche Dokumentation | CLI-Referenz

Interaktive Dependency-Auflösung

Beim Laden eines Workspaces mit fehlenden oder veralteten Block-Dependencies zeigt Polycrate einen interaktiven Prompt:

  • [MISSING] - Block fehlt
  • [UPGRADE] - Installierte Version älter als angefordert
  • [DOWNGRADE] - Installierte Version neuer (mit Warnung)

Optionen im Prompt:

  1. Install/Update all - Alle Abhängigkeiten automatisch auflösen
  2. Solve manually - Zeigt benötigte Befehle

In CI/CD-Umgebungen wird automatisch eine detaillierte Fehlermeldung ausgegeben.

Ausführliche Dokumentation

TUI-Pager für Inspect-Commands

Inspect-Commands nutzen nun einen interaktiven TUI-Pager mit Scroll- und Suchfunktionen:

polycrate workspace inspect
polycrate block inspect <block>
polycrate action inspect <block>.<action>

Navigation:

Aktion Tasten
Scrollen j/k, /, PgUp/PgDn
Suchen / + Text + Enter
Nächster/Vorheriger Treffer n/p
Anfang/Ende t/b oder Home/End
Beenden q oder Ctrl+c

Features:

  • YAML-Syntax-Highlighting
  • Such-Highlighting mit Match-Counter
  • Back-Navigation mit Backspace
  • Automatischer Fallback bei CI/Pipe

Deaktivieren mit --no-pager für direkten Output.

Neue Globale Flags

Flag Beschreibung
--docker-native, -N Native Docker SDK verwenden
--no-pager TUI-Pager deaktivieren
--non-interactive Alle interaktiven Prompts überspringen

CI/CD-Erkennung

Polycrate erkennt automatisch CI/CD-Umgebungen und deaktiviert interaktive Features:

Erkannte Systeme:

  • GitHub Actions, GitLab CI, Jenkins
  • CircleCI, Travis CI, Drone CI
  • Buildkite, TeamCity, Azure DevOps
  • Bitbucket Pipelines

Verbesserungen

Build-Spinner für Custom Images

Beim Bauen von Custom-Images (via Dockerfile.poly) wird ein animierter Spinner angezeigt. Mit --loglevel 2 wird der vollständige Build-Output gestreamt.

Verbesserte git status Ausgabe

Farbige Status-Indikatoren ohne Emojis:

  • new: (grün)
  • modified: (gelb)
  • deleted: (rot)
  • renamed:/copied: (cyan)

Technische Details

age CLI Kompatibilität

Alle verschlüsselten Dateien nutzen das Standard age-Format und sind mit der age CLI kompatibel:

# Manuelle Entschlüsselung
echo "$KEY" | age --decrypt -i - secrets.poly.age > secrets.poly

Migration

Keine Änderungen erforderlich. Alle neuen Features sind optional und rückwärtskompatibel.


Bekannte Einschränkungen

  • Workspace Encryption erfordert API-Zugang oder manuelles Key-Management