Zum Inhalt springen

kubectl Parity

Dieser Inhalt ist noch nicht in deiner Sprache verfügbar.

xcsh applies F5 Distributed Cloud resource manifests; it is not a Kubernetes client. The Action adopts kubectl’s useful non-interactive, file-oriented workflow while keeping XC authentication and API semantics explicit. Every operation executes programmatically without an LLM turn.

kubectl behaviorxcsh Action behaviorImportant difference
kubectl apply -f creates or patches declared objectsoperation: apply creates, updates, or preserves each XC manifestClient-side desired/live comparison; no field manager, server-side apply, prune, or Kustomize
kubectl create -f creates declared objectsoperation: create fails if a resource already existsXC resource kinds and API paths replace Kubernetes discovery
kubectl replace -f replaces existing objectsoperation: update fails if a resource is missingNamed update to match the XC API; no force delete-and-recreate mode
kubectl get -f or get TYPE NAME reads objectsoperation: get accepts manifests or resource-kind with optional resource-nameNo selectors, watches, custom columns, or Kubernetes API groups
kubectl delete -f or delete TYPE NAME deletes objectsoperation: delete accepts either identity form and never promptsNo grace period, cascade policy, force deletion, selector, or wait flag
kubectl diff -f compares desired and live stateoperation: diff reports new, different, or identical resources and sets changedA difference is a successful report, not exit code 1; use Action outputs for gates
kubectl ... --dry-run=client validates locallydry-run: client calculates create, update, apply, or delete without mutationServer-side dry-run is not available
kubectl get -o yaml can be adapted as an exportoperation: export emits reusable XC manifestsExport removes live-only fields and has no direct kubectl command equivalent
  • files may contain repeated JSON or YAML paths, directories, and include globs.
  • JSON arrays and multi-document YAML files may contain multiple resource manifests.
  • recursive: true maps to the intent of kubectl’s recursive -R traversal.
  • namespace overrides manifest namespaces like kubectl -n, but it selects an XC namespace.
  • manifest supplies inline JSON or YAML without shell interpolation or standard-input piping.
  • The Action does not fetch -f URLs or accept -; commit the manifest or use manifest.
  • Batch manifests are prevalidated before network operations, preventing a partial batch when one document is invalid.

kubectl normally selects credentials and a cluster through kubeconfig contexts. xcsh uses a direct CI environment contract:

XCSH_API_URL
XCSH_API_TOKEN
XCSH_NAMESPACE

No kubeconfig or Kubernetes context is read, and no AI provider credential is required.

  • Kustomize and generators
  • Label or field selectors and selector-based deletion
  • Pruning and apply-set tracking
  • Server-side apply, field managers, and conflict forcing
  • Server-side dry-run
  • Kubernetes discovery, kubeconfig contexts, impersonation, and watches
  • Delete grace periods, cascading policies, and force deletion