Zum Inhalt springen

Das pb-CLI

kubectl ist die API für App, ManagedPostgres und ManagedValkey — alles, was pb tut, kann auch ein einfaches kubectl apply, kubectl get oder kubectl delete. pb ist ein kleines Go-Binary, das für drei Dinge existiert, für die kubectl schlecht geeignet ist: ein Deploy, das nur das Image erhöht, eine Statustabelle über alle drei Objektarten plus deine eigenen unverwalteten Objekte, und eine Preview, die mehrere Objekte auf einmal ist.

Globale Flags bei jedem Befehl: --kubeconfig (Standard: die üblichen Kubeconfig-Ladregeln), --context, -n/--namespace (Standard: der Namespace des Kubeconfig-Kontexts, sonst default).

pb app deploy NAME --image IMAGE [--port PORT] [--plan PLAN] [--wait] [--timeout DURATION]

Erstellt die App, wenn sie nicht existiert, oder erhöht ihr spec.image, wenn doch — sonst wird bei einer Erhöhung nichts am Spec angefasst. --port und --plan wirken nur beim Erstellen einer neuen App. --wait (Standard-Timeout 5 Minuten) fragt ab, bis die App Ready ist, und gibt ihre URL aus, oder meldet die letzte Condition-Nachricht, wenn sie fehlschlägt.

pb status [-A|--all-namespaces]

Eine Tabelle: jede App, ManagedPostgres und ManagedValkey im Namespace (oder in jedem Namespace mit -A), mit Phase, Ready/Reconciled/Degraded, einem Endpoint oder einer URL, und der aktuellen Condition-Nachricht — plus deine eigenen handgeschriebenen Knative Services und CNPG Clusters, aufgelistet und klar als unmanaged markiert.

pb preview up APP --ref REF [--image IMAGE] [--from-prod] [--ttl DURATION] [--wait] [--timeout DURATION]
pb preview down APP --ref REF

Siehe Preview-Umgebungen für das, was erstellt wird und wie sich --from-prod und --ttl verhalten.

Diese sind Teil des Designs und noch nicht umgesetzt:

BefehlWas er tun wird
pb login / pb use <cluster>eine kurzlebige Kubeconfig holen und den Kontext wechseln, ohne separaten Download-Schritt
pb app promote <name> [--to PERCENT]spec.traffic für ein Blue/Green-Rollout verschieben, statt es per kubectl zu ändern
pb pg restore <name> --at <time>eine wiederhergestellte ManagedPostgres erstellen und ihren Namen ausgeben, statt restoreFrom von Hand zu schreiben
pb logsdie Pods hinter einer App verfolgen, per Label gematcht

Kein Befehl tut etwas, das ein Kunde nicht selbst als YAML schreiben könnte — pb ist eine Abkürzung, nie eine eigene Feature-Oberfläche.