Skip to main content
Enterprise

Architecture

The nbe-operator is a Kubernetes operator that manages the full lifecycle of a NetBox Enterprise deployment through a NetBoxEnterprise custom resource.

Operator Reconciliation Flow

When a NetBoxEnterprise resource is created or modified, the operator reconciles the desired state into Kubernetes resources:

The operator uses a debounced watch strategy — rapid changes are batched with a 5-second debounce window to avoid excessive reconciliation.

When spec.suspend is true, the operator skips all reconciliation and sets a Suspended status condition. Existing workloads continue running. This is useful for pausing the operator during troubleshooting — see Suspend Reconciliation.

The cluster DNS suffix used for all operator-generated FQDNs defaults to cluster.local and can be overridden via spec.clusterDnsSuffix in the NetBoxEnterprise resource.

Resource Application Order

Resources are applied in a strict canonical order to respect dependencies:

OrderResource TypeExample
1PostgresClusterPGO-managed database (skipped if external)
2RedisClusterOperator-managed Redis (skipped if external)
3SecretApplication secrets, credentials
4ConfigMapApplication configuration
5ServiceAccountRBAC identities
6RoleRBAC permissions
7RoleBindingRBAC bindings
8PersistentVolumeClaimMedia and script storage
9DeploymentNetBox, workers, Diode components
10JobBootstrap, migrations, setup
11ServiceInternal and external services
12IngressExternal access
13VeleroBackupBackup configuration (enterprise)

Readiness middleware ensures PostgreSQL and Redis are available before deployments are created.

Component Topology

PostgreSQL and Redis are managed by their own dedicated operators — Crunchy PGO and the Redis operator respectively. The nbe-operator creates the appropriate custom resources (e.g. PostgresCluster) and these operators run their own independent reconciliation loops to provision and manage the underlying clusters. This means database and cache lifecycle operations (failover, scaling, backups) are handled outside the nbe-operator's reconciliation cycle.