Skip to main content
Enterprise

NetBox Configuration

Configure the NetBox web application and background workers under netboxEnterprise.spec.netbox.

Application Deployment

KeyTypeDefaultDescription
netbox.replicasuint81Number of NetBox web application replicas (0-255)
netbox.httpPortuint168080HTTP port for the NetBox web interface
netbox.statusPortuint168081Deprecated. Formerly the nginx unit health check port; ignored since the granian transition in nbe-core 4.5.x.
netbox.imagePullPolicystringIfNotPresentImage pull policy

Image

KeyTypeDefaultDescription
netbox.image.registrystringproxy.enterprise.netboxlabs.com/proxy/netbox-enterprise/ghcr.ioProxied container registry
netbox.image.repositorystringnetboxlabs/nbe-coreImage repository
netbox.image.tagstringChart-dependentImage tag
netbox.image.digeststring-Optional digest for image pinning

Resources

Resources are specified in millicores (CPU) and mebibytes (memory):

KeyTypeDefaultDescription
netbox.resources.cpuint200CPU request in millicores
netbox.resources.memoryint750Memory request in MiB
netbox.limits.cpuint1000CPU limit in millicores
netbox.limits.memoryint1500Memory limit in MiB

Storage

KeyTypeDefaultDescription
netbox.mediaStorageSizestring10GiPVC size for uploaded media files
netbox.scriptsStorageSizestring1GiPVC size for custom scripts
netbox.storageClassNamestring-Storage class (uses cluster default if not set)

URLs

KeyTypeDefaultDescription
netbox.urlslist-External URLs for the NetBox service. Used to configure ingress.

Example:

netbox:
urls:
- "https://netbox.example.com"

Environment Variables

KeyTypeDefaultDescription
netbox.envlistHTTP proxy defaultsKubernetes EnvVar list for NetBox containers
netbox.yamlEnvstring-YAML string of environment variables

Worker Configuration

Background workers process asynchronous tasks such as webhooks, reports, and scripts.

KeyTypeDefaultDescription
netbox.worker.replicasuint81Number of worker replicas
netbox.worker.resources.cpuint100CPU request in millicores
netbox.worker.resources.memoryint128Memory request in MiB
netbox.worker.limits.cpuint1000CPU limit in millicores
netbox.worker.limits.memoryint1500Memory limit in MiB
netbox.worker.envlistHTTP proxy defaultsEnvironment variables for worker pods
netbox.worker.yamlEnvstring-YAML string of environment variables

Application Config

Settings under netbox.config control NetBox application behavior.

KeyTypeDefaultDescription
netbox.config.allowedHostslist['*']Django allowed hosts
netbox.config.metricsEnabledboolfalseExpose Prometheus metrics at /metrics
netbox.config.customPythonConfigstring-Inline custom Python configuration
netbox.config.customPythonConfigRefobject-ConfigMap reference for custom Python config

Superuser

If provided, all four fields must be set. Each references a Kubernetes Secret:

netbox:
config:
superuser:
username:
name: netbox-superuser
key: username
email:
name: netbox-superuser
key: email
password:
name: netbox-superuser
key: password
apiToken:
name: netbox-superuser
key: api_token

If no superuser is configured, the operator auto-generates credentials with the username admin and a random password.

Retrieving Auto-Generated Credentials

The auto-generated superuser secret follows the naming pattern <netboxenterprise-name>-netbox-superuser. For the default NetBoxEnterprise name netbox:

kubectl -n netbox get secret netbox-netbox-superuser \
-o jsonpath='{.data.password}' | base64 -d ; echo

To retrieve the auto-generated API token:

kubectl -n netbox get secret netbox-netbox-superuser \
-o jsonpath='{.data.api_token}' | base64 -d ; echo

Secret Key

The Django secret key is auto-generated if not provided. To use a specific key:

netbox:
config:
secretKey:
name: netbox-django-secret
key: secret_key

S3 Media Storage

Store uploaded files in S3-compatible object storage instead of local PVCs:

netbox:
config:
storage:
s3:
enabled: true
bucketName: netbox-media
regionName: us-east-1
endpointUrl: https://s3.example.com # for MinIO, Garage, etc.
accessKeyId:
name: netbox-s3-creds
key: access_key
secretAccessKey:
name: netbox-s3-creds
key: secret_key

S3 TLS Configuration

For S3-compatible endpoints with custom CA certificates or mTLS, use the tlsConfig field which references certificates from the cluster's tlsKeychain:

netbox:
config:
storage:
s3:
enabled: true
bucketName: netbox-media
endpointUrl: https://minio.internal:9000
tlsConfig:
keychainCaCertificates:
- minio-ca
keychainClientCertificate: minio-client # for mTLS
KeyTypeDefaultDescription
storage.s3.tlsConfig.insecureSkipVerifyboolfalseSkip SSL certificate verification
storage.s3.tlsConfig.keychainCaCertificateslist-CA names from tlsKeychain for custom CA verification
storage.s3.tlsConfig.keychainClientCertificatestring-Client cert name from tlsKeychain for mTLS

Scaling Guidance

NetBox replica counts may be constrained by your license tier:

  • Community / Starter: Up to the tier's replica limit
  • Professional / Premium: Higher limits or uncapped

The operator respects these limits and surfaces warnings in the NetBoxEnterprise status if the configured replica count exceeds the licensed maximum.

Next Steps