Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

tazuna status

Fetches the managed resources recorded in the State ConfigMap one by one and lists the readiness of each. It performs only read access to the cluster and changes nothing.

tazuna status [-f tazuna.yaml]

Behavior

  1. Load tazuna.yaml.
  2. For each Manifest, read the corresponding State ConfigMap.
  3. Fetch each resource recorded in State from the cluster by GVK / namespace / name.
  4. Determine readiness from the fetched results and output in three columns.

Does not evaluate context_matches.

Criteria

StatusCriteria
ReadyThe object was fetched and passed the Kind-specific Ready check
NotReadyThe object was fetched but did not pass the Ready check
MissingRecorded in State but NotFound on the live cluster
ErrorAn error other than NotFound occurred while fetching (insufficient permissions, API server error, etc.)

Ready check per Kind

The Ready check branches by Kind. Kinds other than Deployment / StatefulSet / DaemonSet / Pod are treated as Ready as soon as they can be fetched (so that resources with no concept of readiness, such as ConfigMap / Secret / Service / Ingress / CRD, are handled uniformly).

KindReady condition
DeploymentImmediately Ready if spec.replicas == 0. Otherwise status.readyReplicas == status.replicas == status.availableReplicas and replicas > 0
StatefulSetImmediately Ready if spec.replicas == 0. Otherwise status.readyReplicas == status.replicas and replicas > 0
DaemonSetstatus.numberReady == status.desiredNumberScheduled and desiredNumberScheduled > 0
Podstatus.phase == "Running" AND Ready condition is True
OthersReady as soon as it can be fetched

This design avoids painting Service / ConfigMap and the like - which inherently have no concept of readiness - as NotReady. If you want to check readiness specific to Ingress / CRD / Custom Resource and so on, the proper approach is to write a WaitUntil in CEL with the separate Test plugin.

Output Format

It is printed in three columns (STATUS / KIND / NAMESPACE/NAME). For cluster-scoped resources, the NAMESPACE/NAME column has no namespace and shows only NAME.

Manifest: ingress-nginx
  STATUS    KIND                 NAMESPACE/NAME
  Ready     Deployment           ingress-nginx/controller
  Ready     Service              ingress-nginx/controller
  Ready     ConfigMap            ingress-nginx/controller
  NotReady  Deployment           ingress-nginx/admission-webhook
  Missing   Secret               ingress-nginx/missing-tls

Manifest: aws-credentials
  (no state)

A Manifest whose State has not been created yet (never applied / synced) is shown as (no state).

Flag

No specific flags besides the global flags.

Examples

tazuna status
tazuna status -f tazuna.yaml
tazuna status -f tazuna.yaml --otlp-endpoint=localhost:4317