Polycrate CLI: Hilfreiche Tools für Developer und Platform Engineers
ayedo Redaktion 9 Minuten Lesezeit

Polycrate CLI: Hilfreiche Tools für Developer und Platform Engineers

polycrate tools enthält 11 integrierte CLI-Helfer für Developer und Platform Engineers: Base64, Cert, Check, CIDR, Diff, DNS, Hash, JWT, Pwgen, Timestamp und Wait – ohne externe Tools, direkt in der CLI.
polycrate kubernetes devops platform-engineering developer-tools infrastructure-as-code cli

Wer täglich mit Polycrate arbeitet, stößt unweigerlich auf wiederkehrende Aufgaben: TLS-Zertifikate prüfen, DNS-Einträge verifizieren, Netzwerke berechnen, Tokens debuggen. Bisher bedeutete das: Tool nach Tool installieren und parallel öffnen. Mit polycrate tools gehört das der Vergangenheit an.

polycrate tools ist eine integrierte Werkzeugsammlung mit 11 spezialisierten Helfern – kein separates Install, keine Kontext-Wechsel, kein externes Dependency-Management. Einfach starten, Werkzeug wählen oder direkt per Subcommand aufrufen.

polycrate tools

Der interaktive Selektor öffnet eine TUI-Auswahl aller verfügbaren Tools. Alternativ ruft man jedes Tool direkt auf:

polycrate tools <tool> [args] [flags]

base64 – Encode und Decode für Pipelines

Base64-Encoding ist in der Infrastrukturarbeit allgegenwärtig: Kubernetes Secrets, API-Tokens, TLS-Zertifikate. polycrate tools base64 beherrscht Standard- und URL-sicheres Encoding inkl. Padding-Kontrolle, und liest Input aus Argumenten, Dateien oder stdin.

# String encoden
polycrate tools base64 "Hello World"
# SGVsbG8gV29ybGQ=

# Aus einer Datei encoden (z.B. ein Zertifikat)
polycrate tools base64 --file certificate.pem

# Decoden
polycrate tools base64 -d "SGVsbG8gV29ybGQ="

# URL-sicheres Encoding (für URLs, Cookies, Dateinamen)
polycrate tools base64 -u "data with special chars"

# In einer Pipeline
kubectl get secret my-secret -o jsonpath='{.data.token}' | polycrate tools base64 -d

Flags: -d decode, -u URL-safe, -p kein Padding, --file Datei als Input.


cert – TLS-Zertifikate inspizieren

polycrate tools cert prüft TLS-Zertifikate direkt von Remote-Hosts oder aus lokalen PEM-Dateien. Es zeigt Subject, Issuer, SANs, Ablaufdatum, Key-Typ und validiert die gesamte Zertifikatskette. Perfekt für die tägliche Überprüfung von Let’s Encrypt-Zertifikaten oder selbstsignierten Kubernetes-Ingress-Certs.

# Remote-Zertifikat prüfen
polycrate tools cert google.com
polycrate tools cert api.example.com:8443

# URL als Eingabe (Host wird extrahiert)
polycrate tools cert https://api.example.com/health

# Lokale PEM-Datei analysieren
polycrate tools cert /etc/ssl/certs/server.pem

# Private Key auf Übereinstimmung prüfen
polycrate tools cert cert.pem -k private-key.pem

# Ablaufende oder selbstsignierte Zertifikate
polycrate tools cert --insecure self-signed.example.com

# Volldetails inkl. PEM-Ausgabe
polycrate tools cert -d google.com

Die Ausgabe zeigt bei einer Zertifikatskette jedes Zertifikat nummeriert (1/N = Leaf, N/N = Root CA) inkl. Resttage bis zum Ablauf mit Warnung bei weniger als 30 Tagen.

Flags: -d Details, -k Key-Datei, --insecure TLS-Verifikation überspringen.


check – Konnektivität testen wie ping, aber für TCP und HTTP

polycrate tools check ist der universelle Konnektivitätstest für TCP-Ports und HTTP/HTTPS-Endpoints. Anders als ping arbeitet es auf Applikationsebene und misst DNS-Lookup, TCP-Connect, TLS-Handshake und Time-to-First-Byte separat. Der Watch-Mode bietet eine Live-TUI für kontinuierliches Monitoring.

# TCP Port prüfen
polycrate tools check google.com:443
polycrate tools check tcp://db.example.com:5432

# HTTP/HTTPS Endpoint
polycrate tools check https://api.example.com/health
polycrate tools check -X POST https://api.example.com/health

# 10 Checks mit 500ms Intervall
polycrate tools check -n 10 -i 500 example.com:80

# Watch-Mode: Live-Monitoring als TUI (Beenden mit q)
polycrate tools check -w google.com:443
polycrate tools check -w -i 2000 https://api.example.com

Die Zusammenfassung zeigt min/avg/max Latenz und Packet-Loss-Rate – ähnlich wie ping, aber für HTTP und TCP.

Flags: -n Anzahl, -i Intervall (ms), -t Timeout (ms), -w Watch-Mode, -X HTTP-Methode, --insecure.


cidr – Netzwerkplanung direkt in der CLI

polycrate tools cidr berechnet alle relevanten Netzwerkinformationen aus einer CIDR-Notation: Netzwerk- und Broadcast-Adresse, Netmask, Wildcard, erste und letzte nutzbare Host-Adresse sowie die Gesamtzahl der IPs. Unterstützt IPv4 und IPv6. Besonders nützlich für VPC-Planung, Kubernetes-Cluster-Subnets und Firewall-Regeln.

# Netzwerkinformation
polycrate tools cidr 192.168.1.0/24
polycrate tools cidr 10.0.0.0/8

# IPv6
polycrate tools cidr 2001:db8::/32
polycrate tools cidr fd00::/8

# Prüfen ob eine IP im Netzwerk liegt (Exit Code 0/1)
polycrate tools cidr contains 192.168.1.0/24 192.168.1.50
# YES: 192.168.1.50 is within 192.168.1.0/24

# Netzwerk in Subnetze aufteilen
polycrate tools cidr split 10.0.0.0/16 24
# Teilt /16 in 256 /24 Subnetze auf
# (Ausgabe zeigt max. 20 Subnetze, danach "... and 236 more subnets")

polycrate tools cidr split 192.168.0.0/24 26
# Teilt /24 in 4 /26 Subnetze auf (alle 4 werden angezeigt)

Der contains-Befehl liefert Exit Code 0 bei Treffer und 1 bei Nicht-Treffer – ideal für Shell-Skripte und CI/CD-Pipelines zur Validierung von IP-Zuordnungen. Bei großen Netzwerken zeigt split maximal 20 Subnetze an und fasst den Rest in einer Zusammenfassung zusammen.


diff – Semantischer Vergleich für YAML und JSON

polycrate tools diff versteht die Datenstruktur von YAML und JSON, nicht nur den Text. Die Reihenfolge von Keys spielt keine Rolle – nur echte inhaltliche Unterschiede werden angezeigt. Jede Änderung wird mit dem vollständigen Pfad ausgegeben (spec.containers[0].image). Die Ausgabe ist farbcodiert: grün für hinzugefügte, rot für entfernte, gelb für geänderte Werte.

# Kubernetes Manifeste vergleichen
polycrate tools diff deployment-v1.yaml deployment-v2.yaml

# JSON-Konfigurationen
polycrate tools diff config.json config.new.json

# Aus stdin (in Pipelines)
kubectl get deployment nginx -o yaml | polycrate tools diff - local.yaml

# Helm Values vergleichen
polycrate tools diff values.yaml values-production.yaml

# Ohne Farben (für Logs oder nicht-interaktive Ausgabe)
polycrate tools diff --no-color old.yaml new.yaml

Beispielausgabe:

Found 3 difference(s):

~ spec.replicas:
  - 1
  + 3
~ spec.containers[0].image:
  - "nginx:1.24"
  + "nginx:1.25"
+ spec.containers[0].resources: {"limits":{"memory":"512Mi"}}

Flags: --color/--no-color Farbausgabe, -f Format (text/json).


dns – DNS-Debugging mit Timing

polycrate tools dns führt DNS-Abfragen mit detaillierten Diagnosen durch: Antwortzeit, verwendeter Resolver und alle gängigen Record-Typen in einem Lauf. Unterstützt A, AAAA, CNAME, MX, TXT, NS, PTR und SRV. Optional kann ein spezifischer DNS-Server angegeben werden – ideal für den Vergleich verschiedener Resolver bei DNS-Propagationsproblemen.

# Alle gängigen Record-Typen abfragen
polycrate tools dns google.com

# Spezifischen Record-Typ abfragen
polycrate tools dns -t MX gmail.com
polycrate tools dns -t TXT _dmarc.google.com
polycrate tools dns -t AAAA google.com

# Reverse DNS (IP → Hostname)
polycrate tools dns 8.8.8.8

# Spezifischen DNS-Server verwenden (z.B. für Propagationscheck)
polycrate tools dns -s 8.8.8.8 example.com
polycrate tools dns -s 1.1.1.1 example.com

# Alle Record-Typen inkl. SOA, CAA, SRV
polycrate tools dns -t ALL example.com

Die Ausgabe zeigt für jeden Record-Typ die Antwortzeit in Millisekunden. Die Zusammenfassung listet Gesamtdauer und verwendeten Resolver.

Flags: -t Record-Typ, -s DNS-Server, --protocol udp/tcp, --timeout Timeout (ms).


hash – Checksummen und Datei-Integrität

polycrate tools hash berechnet kryptografische Checksummen für Dateien oder Strings mit MD5, SHA1, SHA256 (Standard) oder SHA512. Der Verify-Modus prüft, ob eine Datei mit einer erwarteten Checksumme übereinstimmt, und gibt Exit Code 0 oder 1 zurück – direkt verwendbar in CI/CD-Pipelines zur Verifikation von Download-Artefakten.

# Datei hashen (Standard: SHA256)
polycrate tools hash myfile.tar.gz
# a1b2c3d4...  myfile.tar.gz

# Spezifischen Algorithmus verwenden
polycrate tools hash -a sha512 important.bin
polycrate tools hash -a md5 legacy-file.iso

# Alle Algorithmen auf einmal berechnen
polycrate tools hash --all downloaded-file.zip

# String direkt hashen
polycrate tools hash "my secret string"

# Aus stdin (in Pipelines)
curl -sL https://example.com/release.tar.gz | polycrate tools hash

# Checksumme verifizieren (Exit Code 0 = OK, 1 = Mismatch)
polycrate tools hash -v "a1b2c3d4e5f6..." downloaded.tar.gz

Flags: -a Algorithmus, -v Verify-Hash, --all alle Algorithmen.


jwt – JSON Web Tokens debuggen

polycrate tools jwt dekodiert JWT-Tokens ohne Signaturverifizierung und zeigt Header, Payload und Token-Status übersichtlich an. Unix-Timestamps in iat, exp und nbf werden automatisch in lesbare Datumsangaben umgewandelt. Der --raw Flag gibt reines JSON aus, das direkt an jq weitergeleitet werden kann.

Wichtiger Hinweis: Das Tool verifiziert keine Signatur. Es dient ausschließlich dem Debugging – niemals für sicherheitsrelevante Entscheidungen.

# JWT dekodieren
polycrate tools jwt "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."

# Aus Umgebungsvariable
polycrate tools jwt "$ACCESS_TOKEN"

# Aus stdin
echo "$TOKEN" | polycrate tools jwt
cat token.txt | polycrate tools jwt

# Bearer-Prefix wird automatisch entfernt
polycrate tools jwt "Bearer eyJhbGciOi..."

# Raw JSON für jq
polycrate tools jwt --raw "$TOKEN" | jq '.payload.email'
polycrate tools jwt --raw "$TOKEN" | jq '.payload.exp'

Beispielausgabe:

=== JWT Header ===
  alg:            RS256
  typ:            JWT
  kid:            abc123

=== JWT Payload ===
  sub:            user@example.com
  email:          user@example.com
  exp:            1735689600 (2026-01-01T00:00:00Z)
  iat:            1735603200 (2025-12-31T00:00:00Z)

=== Token Info ===
  Status:         VALID
  Expires in:     23 hours
  Issued:         1 hours ago
  Subject:        user@example.com

Flags: -r/--raw JSON-Ausgabe.


pwgen – Sichere Passwörter und Encryption Keys

polycrate tools pwgen generiert kryptografisch sichere Passwörter mit konfigurierbaren Zeichensätzen und optionaler Ausgabe als Hash oder Encryption-Key. Standardmäßig werden 16-stellige alphanumerische Passwörter ohne Wiederholungen erzeugt. Unterstützt bcrypt für Passwort-Hashing, htpasswd für Apache-kompatible Hashes und age für Encryption-Keypairs.

# Standard: 16-stelliges alphanumerisches Passwort
polycrate tools pwgen

# 32-stelliges Passwort
polycrate tools pwgen 32

# Mit Sonderzeichen (-s addiert Sonderzeichen zum Standard-Zeichensatz)
polycrate tools pwgen -s
polycrate tools pwgen 24 -s

# Mehrere Passwörter auf einmal
polycrate tools pwgen -n 5
polycrate tools pwgen 20 -n 10

# Als bcrypt-Hash (für Konfigurationsdateien)
polycrate tools pwgen -a bcrypt

# Als htpasswd-kompatiblen bcrypt-Hash (gibt nur den Hash-String aus, kein "user:hash"-Format)
polycrate tools pwgen -a htpasswd

# age Encryption Keypair generieren
polycrate tools pwgen -a age
# Ausgabe:
# # Age Encryption Keypair
# # Public key (share this):
# #   age1...
# # Private key (keep secret):
# AGE-SECRET-KEY-1...

# Nur Ziffern (für PINs)
polycrate tools pwgen 6 -d

# Nur Kleinbuchstaben (für lesbare Tokens)
polycrate tools pwgen 12 -L

Flags: -s Sonderzeichen, -d nur Ziffern, -U nur Großbuchstaben, -L nur Kleinbuchstaben, -r Wiederholungen erlauben, -a Algorithmus, -n Anzahl.


timestamp – Unix Timestamps konvertieren

polycrate tools timestamp konvertiert zwischen Unix-Timestamps und lesbaren Datumsformaten in beide Richtungen. Erkennt automatisch, ob ein numerischer Input Sekunden oder Millisekunden sind. Unterstützt eine Vielzahl von Eingabeformaten von RFC3339 über ISO 8601 bis zu europäischem Datumsformat.

# Aktueller Timestamp
polycrate tools timestamp
polycrate tools timestamp --utc

# Unix Timestamp → Datum
polycrate tools timestamp 1702234567
# Unix:        1702234567
# Unix Milli:  1702234567000
# RFC3339:     2023-12-10T15:36:07+01:00
# Human:       Sunday, December 10, 2023 at 3:36:07 PM CET
# Ago:         441 days

# Milliseconds Timestamp
polycrate tools timestamp 1702234567890

# Datum → Unix Timestamp
polycrate tools timestamp "2024-12-10 15:30"
polycrate tools timestamp "2024-12-10T15:30:00Z"
polycrate tools timestamp "10.12.2024 15:30:00"

# Custom Format
polycrate tools timestamp -f "2006-01-02" 1702234567
polycrate tools timestamp -f "15:04:05"

Flags: -f Format (Go-Zeitformat), -u/--utc UTC-Timezone, -m/--millis Millisekunden.


wait – Auf Services warten

polycrate tools wait wartet, bis ein oder mehrere Netzwerk-Services erreichbar sind – designed für CI/CD-Pipelines, Container-Orchestrierung und Startup-Skripte. Unterstützt TCP, HTTP/HTTPS und DNS-Auflösung. Mehrere Targets werden parallel geprüft. Exit Code 0 bei Erfolg, 1 bei Timeout.

# Auf Datenbank und Cache warten
polycrate tools wait tcp://db:5432 tcp://redis:6379

# Auf API-Health-Endpoint warten
polycrate tools wait http://api:8080/health

# Mit Custom Timeout (60 Sekunden)
polycrate tools wait -t 60 tcp://slow-service:80

# Strict Mode: nur HTTP 2xx akzeptieren
polycrate tools wait --strict https://api.example.com/health

# Auf DNS-Auflösung warten
polycrate tools wait dns://new-service.example.com

# Quiet Mode für Skripte (nur Exit Code)
polycrate tools wait -q tcp://db:5432

# Custom Intervall (500ms)
polycrate tools wait -i 500 tcp://db:5432

# In einem Kubernetes Init Container
polycrate tools wait tcp://postgres:5432 tcp://redis:6379 && ./start-app.sh

Flags: -t Timeout (Sekunden), -i Intervall (ms), -q Quiet-Mode, --strict nur 2xx für HTTP.


Alle Tools im Überblick

Tool Beschreibung Typischer Anwendungsfall
base64 Base64 Encode/Decode Kubernetes Secrets, API-Tokens
cert TLS-Zertifikat Inspektion Zertifikatsablauf, Chain-Validierung
check TCP/HTTP Konnektivität Service-Monitoring, Latenz-Messung
cidr CIDR Netzwerkrechner VPC-Planung, Subnet-Design
diff YAML/JSON semantischer Diff Manifest-Reviews, Config-Vergleiche
dns DNS-Lookup mit Diagnostik DNS-Propagation, MX/SPF-Prüfung
hash Checksummen berechnen Artefakt-Verifikation, Integrität
jwt JWT Token Inspection Auth-Debugging, Token-Expiry
pwgen Passwort- und Key-Generator Service-Secrets, bcrypt, age Keys
timestamp Unix Timestamp Konvertierung Log-Analyse, Token-Expiry
wait Service-Readiness Check CI/CD, Init-Container

Interaktiver Selektor

Ohne Subcommand öffnet polycrate tools einen interaktiven Selektor, in dem das gewünschte Tool per Tastatur navigiert und ausgewählt werden kann. Nützlich für gelegentlichen Gebrauch oder beim Erkunden der verfügbaren Werkzeuge.

polycrate tools
# → Öffnet TUI-Auswahl aller 11 Tools

Polycrate ist das Infrastructure-as-Code Tool von ayedo für deklaratives Multi-Cluster-Management. Mehr erfahren →

Ähnliche Artikel