Skip to main content
Enterprise

Redis Configuration

NetBox uses Redis for caching and as a task queue for background workers. The operator supports two modes:

  • Internal (default): Managed by the Redis Operator, installed as a chart dependency
  • External: Connect to an existing Redis instance

Internal Redis (Default)

When redis.external: false (the default), the operator deploys a Redis cluster managed by the Redis Operator.

KeyTypeDefaultDescription
redis.externalboolfalseUse internal Redis
redis.namestringredisRedis instance name
redis.clusterSizeuint81Number of Redis replicas (0–255)
redis.persistencebooltrueEnable data persistence
redis.requireAuthboolfalseRequire authentication
redis.resources.cpuintCPU request in millicores (optional)
redis.resources.memoryintMemory request in MiB (optional)
redis.limits.cpuintCPU limit in millicores (optional)
redis.limits.memoryintMemory limit in MiB (optional)
redis.storageClassNamestringStorage class for Redis PVCs
redis.storageSizestring1GiStorage size for Redis PVCs (when persistence is enabled)
note

When resources or limits are not set, no resource requests or limits are applied to Redis pods, allowing Kubernetes defaults. Set limits to prevent Redis from consuming excessive node resources.

Example with redundancy and resource limits:

netboxEnterprise:
spec:
redis:
external: false
clusterSize: 3
persistence: true
storageSize: "2Gi"
resources:
cpu: 250
memory: 256
limits:
cpu: 500
memory: 512

External Redis

Set redis.external: true to use an externally managed Redis instance.

When external, provide connection details through netbox.config.redis:

netboxEnterprise:
spec:
redis:
external: true

netbox:
config:
redis:
host: "redis.example.com"
port: 6379
username: "netbox" # Optional, Redis 6.0+ ACL
password:
name: redis-credentials
key: password

You can disable the Redis Operator entirely:

redis-operator:
enabled: false

TLS Configuration

Configure TLS for connections to external Redis:

KeyTypeDefaultDescription
redis.tlsConfig.insecureSkipVerifyboolfalseSkip TLS verification (dev only)
redis.tlsConfig.keychainCaCertificateslistCA certificate names from tlsKeychain
redis.tlsConfig.keychainClientCertificatestringClient certificate name from tlsKeychain

Example with TLS

netboxEnterprise:
spec:
redis:
external: true
tlsConfig:
keychainCaCertificates:
- my-redis-ca

tlsKeychain:
caCertificateSecrets:
- name: my-redis-ca
secret: redis-ca-cert
key: ca.crt

Redis Database Allocation

NetBox and Diode use separate Redis databases within the same instance:

DatabasePurpose
0Diode reconciler
1Diode ingester streams
DefaultNetBox caching and task queue

These database numbers are configurable in the Diode configuration section.

Next Steps

  • Diode — Data ingestion pipeline that uses Redis streams
  • PostgreSQL — Database configuration
Related Topics