Skip to main content
Enterprise

Private Registry

By default, NetBox Enterprise pulls its Helm charts from registry.enterprise.netboxlabs.com and its container images from proxy.enterprise.netboxlabs.com, and the bundled Replicated SDK provisions the image-pull secret for you (see Registry Access).

To pull every image from your own private registry instead - for example an internal Harbor that mirrors or proxies the NetBox Labs images - use the settings below. This applies to Helm installs; Embedded Cluster handles registries through the Administration Console.

Redirect operator-built images

Set spec.registry on the NetBoxEnterprise custom resource. This redirects every image the operator builds - NetBox, workers, Diode, Redis, Sentinel, and the Redis exporter - to your registry:

netboxEnterprise:
spec:
registry: my-registry.example.com

spec.registry replaces the registry host on each image and keeps the repository path. Mirror the images under your registry with those paths intact:

Operator imageRenders as
ghcr.io/netboxlabs/nbe-coremy-registry.example.com/netboxlabs/nbe-core
docker.io/netboxlabs/diode-ingestermy-registry.example.com/netboxlabs/diode-ingester
quay.io/opstree/redismy-registry.example.com/opstree/redis
registry.developers.crunchydata.com/crunchydata/crunchy-postgresmy-registry.example.com/crunchydata/crunchy-postgres

The registry value can include a path prefix (for example my-registry.example.com/netbox), which the operator keeps in front of each repository path.

If your registry serves everything from a single flat project rather than nested repository paths - a Harbor project, for example - add spec.registryNamespace instead. The operator then reduces each image to its name and places it directly under that one project:

netboxEnterprise:
spec:
registry: harbor.example.com
registryNamespace: netbox-enterprise
Operator imageRenders as
ghcr.io/netboxlabs/nbe-coreharbor.example.com/netbox-enterprise/nbe-core
docker.io/netboxlabs/diode-ingesterharbor.example.com/netbox-enterprise/diode-ingester
quay.io/opstree/redisharbor.example.com/netbox-enterprise/redis
registry.developers.crunchydata.com/crunchydata/crunchy-postgresharbor.example.com/netbox-enterprise/crunchy-postgres

Set registry to a bare host when you use registryNamespace - a path prefix on registry stacks in front of the namespace and produces a doubled path. The image tag is unchanged in both modes. Mirror the images your deployment uses before applying these settings, or the pods fail to pull.

Per-image redis value overrides do not reach the Redis containers - the operator sets those images itself, and only spec.registry moves them.

Redirect subchart images

The operator, Redis Operator, PostgreSQL Operator (PGO), and Replicated SDK images are deployed by the chart directly and are not covered by spec.registry. Override them in your Helm values:

ImageValues key
Operatoroperator.image.*
Redis Operatorredis-operator.redisOperator.imageName / imageTag
PGOpgo.controllerImages.* and pgo.relatedImages.*
Replicated SDKreplicated.image.*

Pull credentials

Provide credentials for your registry with spec.imagePullSecrets. This covers the NetBox and worker, Diode, and PostgreSQL pods:

netboxEnterprise:
spec:
imagePullSecrets:
- my-registry-creds

Redis and Sentinel are the exception: they do not honor spec.imagePullSecrets. The operator always attaches a pull secret named netbox-enterprise-helm-registry to the Redis pods, so create a secret with that exact name holding your registry credentials (or allow anonymous pulls from your registry):

kubectl -n netbox create secret docker-registry netbox-enterprise-helm-registry \
--docker-server=my-registry.example.com \
--docker-username=<username> \
--docker-password=<password>

The secret must sit in the same namespace as the Redis pods, so replace netbox with the namespace you installed into (default for Quickstart).

Without it, the Redis pods fail to pull with ImagePullBackOff. A future release will let Redis and Sentinel use spec.imagePullSecrets directly.

Next Steps