# netbox-community/netbox-chart architecture

> Architecture diagram of the GitHub repository netbox-community/netbox-chart, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/netbox-community/netbox-chart
- Repository: https://github.com/netbox-community/netbox-chart

## Overview

This repository packages NetBox and its operator as Helm charts. The main deployment workflow is a Helm release that creates NetBox web, worker, and scheduled-job workloads, plus supporting configuration and Kubernetes resources. The operator chart separately installs its controller and IPAM-related custom resource definitions. The tree and README establish these chart capabilities; sampled source shows configuration and LDAP loading, but not controller internals or complete resource wiring, so those links are omitted.

Main entry points: [`charts/netbox/Chart.yaml`](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/Chart.yaml) (NetBox chart), [`charts/netbox-operator/Chart.yaml`](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox-operator/Chart.yaml) (Operator chart), [`charts/netbox/templates/configmap.yaml`](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/configmap.yaml) (Runtime configuration), [`charts/netbox/files/configuration.py`](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/files/configuration.py) (Base configuration)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_netbox["NetBox chart"]
  node_netbox_chart["NetBox chart<br/>[Chart.yaml]"]
  node_web["Web workload<br/>[deployment.yaml]"]
  node_worker["Worker workload<br/>[deployment.yaml]"]
  node_scheduled_jobs["Scheduled jobs<br/>[cronjob.yaml]"]
  node_service["Network service<br/>[service.yaml]"]
  node_ingress["Ingress routing<br/>[ingress.yaml]"]
  node_persistent_storage[("Persistent storage<br/>[pvc.yaml]")]
end

subgraph group_operator["Operator chart"]
  node_operator_chart["Operator chart<br/>[Chart.yaml]"]
  node_operator_deployment["Controller workload<br/>[deployment.yaml]"]
  node_operator_crds["IPAM resource types"]
end

subgraph group_config["Configuration"]
  node_config_map["Runtime configuration<br/>[configmap.yaml]"]
  node_configuration["Base configuration<br/>[configuration.py]"]
  node_ldap_configuration["LDAP configuration<br/>[ldap_config.py]"]
end

node_helm(("Helm user"))
node_netbox_application["NetBox application"]
node_external_database[("Database")]
node_redis[("Redis")]
node_ldap[("LDAP directory")]
node_kubernetes["Kubernetes cluster"]

node_helm -->|"installs"| node_netbox_chart
node_helm -->|"installs"| node_operator_chart
node_netbox_chart -->|"renders"| node_web
node_netbox_chart -->|"renders"| node_worker
node_netbox_chart -->|"renders"| node_scheduled_jobs
node_netbox_chart -->|"renders"| node_service
node_netbox_chart -->|"renders"| node_ingress
node_netbox_chart -->|"renders"| node_persistent_storage
node_netbox_chart -->|"renders"| node_config_map
node_web -->|"runs"| node_netbox_application
node_worker -->|"runs"| node_netbox_application
node_scheduled_jobs -->|"runs"| node_netbox_application
node_config_map -->|"supplies YAML"| node_configuration
node_config_map -->|"supplies YAML"| node_ldap_configuration
node_configuration -->|"configures access"| node_external_database
node_configuration -->|"configures access"| node_redis
node_ldap_configuration -.->|"configures access"| node_ldap
node_operator_chart -->|"renders"| node_operator_deployment
node_operator_chart -->|"installs"| node_operator_crds
node_operator_chart -->|"targets"| node_kubernetes
node_netbox_chart -->|"targets"| node_kubernetes

click node_netbox_chart "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/Chart.yaml"
click node_web "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/deployment.yaml"
click node_worker "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/worker/deployment.yaml"
click node_scheduled_jobs "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/cronjob.yaml"
click node_service "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/service.yaml"
click node_ingress "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/ingress.yaml"
click node_persistent_storage "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/pvc.yaml"
click node_config_map "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/configmap.yaml"
click node_configuration "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/files/configuration.py"
click node_ldap_configuration "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/files/ldap_config.py"
click node_operator_chart "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox-operator/Chart.yaml"
click node_operator_deployment "https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox-operator/templates/deployment.yaml"
click node_operator_crds "https://github.com/netbox-community/netbox-chart/tree/main/charts/netbox-operator/crds"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_netbox_chart,node_web,node_worker,node_scheduled_jobs,node_service,node_ingress,node_persistent_storage,node_helm toneBlue
class node_operator_chart,node_operator_deployment,node_operator_crds,node_external_database,node_redis,node_ldap toneAmber
class node_config_map,node_configuration,node_ldap_configuration toneMint
class node_netbox_application,node_kubernetes toneIndigo
```

## Components

### NetBox chart

- [NetBox chart](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/Chart.yaml): `charts/netbox/Chart.yaml`
- [Web workload](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/deployment.yaml): `charts/netbox/templates/deployment.yaml`
- [Worker workload](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/worker/deployment.yaml): `charts/netbox/templates/worker/deployment.yaml`
- [Scheduled jobs](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/cronjob.yaml): `charts/netbox/templates/cronjob.yaml`
- [Network service](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/service.yaml): `charts/netbox/templates/service.yaml`
- [Ingress routing](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/ingress.yaml): `charts/netbox/templates/ingress.yaml`
- [Persistent storage](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/pvc.yaml): `charts/netbox/templates/pvc.yaml`

### Operator chart

- [Operator chart](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox-operator/Chart.yaml): `charts/netbox-operator/Chart.yaml`
- [Controller workload](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox-operator/templates/deployment.yaml): `charts/netbox-operator/templates/deployment.yaml`
- [IPAM resource types](https://github.com/netbox-community/netbox-chart/tree/main/charts/netbox-operator/crds): `charts/netbox-operator/crds`

### Configuration

- [Runtime configuration](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/templates/configmap.yaml): `charts/netbox/templates/configmap.yaml`
- [Base configuration](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/files/configuration.py): `charts/netbox/files/configuration.py`
- [LDAP configuration](https://github.com/netbox-community/netbox-chart/blob/main/charts/netbox/files/ldap_config.py): `charts/netbox/files/ldap_config.py`

### Other components

- **Helm user**
- **NetBox application**
- **Database**
- **Redis**
- **LDAP directory**
- **Kubernetes cluster**

## Connections

- Helm user → NetBox chart: installs
- Helm user → Operator chart: installs
- NetBox chart → Web workload: renders
- NetBox chart → Worker workload: renders
- NetBox chart → Scheduled jobs: renders
- NetBox chart → Network service: renders
- NetBox chart → Ingress routing: renders
- NetBox chart → Persistent storage: renders
- NetBox chart → Runtime configuration: renders
- Web workload → NetBox application: runs
- Worker workload → NetBox application: runs
- Scheduled jobs → NetBox application: runs
- Runtime configuration → Base configuration: supplies YAML
- Runtime configuration → LDAP configuration: supplies YAML
- Base configuration → Database: configures access
- Base configuration → Redis: configures access
- LDAP configuration → LDAP directory: configures access
- Operator chart → Controller workload: renders
- Operator chart → IPAM resource types: installs
- Operator chart → Kubernetes cluster: targets
- NetBox chart → Kubernetes cluster: targets
