Skip to main content
Enterprise

Status & Conditions

The operator maintains a detailed status on each NetBoxEnterprise resource. Use this to monitor cluster health, troubleshoot issues, and integrate with monitoring systems.

Viewing Status

# Summary view
kubectl -n netbox get netboxenterprises -o wide

# Detailed status
kubectl -n netbox describe netboxenterprise netbox

# JSON output for scripting
kubectl -n netbox get netboxenterprise netbox -o jsonpath='{.status}'

Top-Level Status Fields

FieldTypeDescription
readyboolOverall cluster readiness — true only when all components are ready
messagestringHuman-readable summary of the current state
versionstringOperator version managing this cluster
observedGenerationint64The spec generation last processed by the operator
lastReconcileTimestringTimestamp of the last successful reconciliation (RFC 3339)

Example:

status:
ready: true
message: "All components ready"
version: "2.0.0"
observedGeneration: 3
lastReconcileTime: "2025-01-15T10:30:00Z"

Conditions

Standard Kubernetes conditions on the NetBoxEnterprise resource:

ConditionStatusReasonDescription
ReadyTrueAllComponentsReadyAll components are healthy and serving traffic
ReadyFalseComponentsNotReadyOne or more components still initializing
ReadyFalseReconcileFailedReconciliation encountered an error
ProgressingTrueApplyingResourcesOperator is actively applying resources
ProgressingTrueWaitingForComponentsResources applied, waiting for pods to become ready
ProgressingFalseReconcileCompleteReconciliation finished successfully
DegradedTrueReconcileErrorReconciliation failed — check operator logs

Each condition includes:

FieldTypeDescription
typestringCondition type
statusstringTrue, False, or Unknown
reasonstringMachine-readable reason code
messagestringHuman-readable detail
lastTransitionTimestringWhen the condition last changed
observedGenerationint64Spec generation when set

Inspecting Conditions

# Get conditions as a table
kubectl -n netbox get netboxenterprise netbox -o jsonpath='{range .status.conditions[*]}{.type}{"\t"}{.status}{"\t"}{.reason}{"\t"}{.message}{"\n"}{end}'

Component Status

Each component reports its own health under status.components:

ComponentKeyDescription
NetBox appcomponents.netboxWeb application deployment
NetBox workercomponents.workerBackground task worker
PostgreSQLcomponents.postgresqlDatabase (internal or external)
Rediscomponents.redisCache/queue
Diodecomponents.diodeData ingestion pipeline (if enabled)

Each component has:

FieldTypeDescription
readyboolWhether the component is ready
messagestringHuman-readable status (e.g., "2/2 replicas ready")
conditions[]ConditionComponent-specific conditions

Inspecting Component Health

# All component statuses
kubectl -n netbox get netboxenterprise netbox \
-o jsonpath='{range .status.components}{.ready}{"\t"}{.message}{"\n"}{end}'
# Specific component
kubectl -n netbox get netboxenterprise netbox \
-o jsonpath='{.status.components.postgresql}'

License Information

License details are surfaced in status.license:

FieldTypeDescription
tierenumCommunity, Starter, Professional, Premium
editionenumCommunity, Enterprise
licenseIdstringUnique license identifier
licenseTypestringLicense type (dev, trial, prod, paid)
customerNamestringCustomer name
customerEmailstringCustomer email
channelNamestringChannel (stable, beta, dev)
isAssuranceEntitledboolWhether NetBox Assurance features are available
expiresAtstringExpiration date (ISO 8601)
kubectl -n netbox get netboxenterprise netbox -o jsonpath='{.status.license}'

Generation Tracking

The operator tracks observedGeneration to detect configuration drift:

  • metadata.generation: Incremented by Kubernetes when spec changes
  • status.observedGeneration: Set by the operator after processing a generation

If observedGeneration < metadata.generation, the operator has not yet processed the latest spec change.

# Check for pending changes
kubectl -n netbox get netboxenterprise netbox \
-o jsonpath='gen={.metadata.generation} observed={.status.observedGeneration}'

Reconciliation Events

The operator publishes Kubernetes events for each reconciliation:

# All operator events
kubectl -n netbox get events --field-selector source=nbe-operator

# Watch events in real time
kubectl -n netbox get events -w --field-selector source=nbe-operator

Event types include:

  • Normal: Resource applied successfully, reconciliation complete
  • Warning: Readiness check failed, reconciliation error

See Also