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
| Field | Type | Description |
|---|---|---|
ready | bool | Overall cluster readiness — true only when all components are ready |
message | string | Human-readable summary of the current state |
version | string | Operator version managing this cluster |
observedGeneration | int64 | The spec generation last processed by the operator |
lastReconcileTime | string | Timestamp 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:
| Condition | Status | Reason | Description |
|---|---|---|---|
Ready | True | AllComponentsReady | All components are healthy and serving traffic |
Ready | False | ComponentsNotReady | One or more components still initializing |
Ready | False | ReconcileFailed | Reconciliation encountered an error |
Progressing | True | ApplyingResources | Operator is actively applying resources |
Progressing | True | WaitingForComponents | Resources applied, waiting for pods to become ready |
Progressing | False | ReconcileComplete | Reconciliation finished successfully |
Degraded | True | ReconcileError | Reconciliation failed — check operator logs |
Each condition includes:
| Field | Type | Description |
|---|---|---|
type | string | Condition type |
status | string | True, False, or Unknown |
reason | string | Machine-readable reason code |
message | string | Human-readable detail |
lastTransitionTime | string | When the condition last changed |
observedGeneration | int64 | Spec 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:
| Component | Key | Description |
|---|---|---|
| NetBox app | components.netbox | Web application deployment |
| NetBox worker | components.worker | Background task worker |
| PostgreSQL | components.postgresql | Database (internal or external) |
| Redis | components.redis | Cache/queue |
| Diode | components.diode | Data ingestion pipeline (if enabled) |
Each component has:
| Field | Type | Description |
|---|---|---|
ready | bool | Whether the component is ready |
message | string | Human-readable status (e.g., "2/2 replicas ready") |
conditions | []Condition | Component-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:
| Field | Type | Description |
|---|---|---|
tier | enum | Community, Starter, Professional, Premium |
edition | enum | Community, Enterprise |
licenseId | string | Unique license identifier |
licenseType | string | License type (dev, trial, prod, paid) |
customerName | string | Customer name |
customerEmail | string | Customer email |
channelName | string | Channel (stable, beta, dev) |
isAssuranceEntitled | bool | Whether NetBox Assurance features are available |
expiresAt | string | Expiration 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 whenspecchangesstatus.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
- Troubleshooting — Using status to diagnose issues
- NetBoxEnterprise CRD — Full spec reference