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
- Load
tazuna.yaml. - For each Manifest, read the corresponding State ConfigMap.
- Fetch each resource recorded in State from the cluster by GVK / namespace / name.
- Determine readiness from the fetched results and output in three columns.
Does not evaluate context_matches.
Criteria
| Status | Criteria |
|---|---|
Ready | The object was fetched and passed the Kind-specific Ready check |
NotReady | The object was fetched but did not pass the Ready check |
Missing | Recorded in State but NotFound on the live cluster |
Error | An 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).
| Kind | Ready condition |
|---|---|
Deployment | Immediately Ready if spec.replicas == 0. Otherwise status.readyReplicas == status.replicas == status.availableReplicas and replicas > 0 |
StatefulSet | Immediately Ready if spec.replicas == 0. Otherwise status.readyReplicas == status.replicas and replicas > 0 |
DaemonSet | status.numberReady == status.desiredNumberScheduled and desiredNumberScheduled > 0 |
Pod | status.phase == "Running" AND Ready condition is True |
| Others | Ready 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
Related
- For the declared-vs-State diff, see
tazuna state diff - For detecting manual changes, see
tazuna state drift - To apply, see
tazuna apply - Terminology: State