# jenkinsci/helm-charts architecture

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

- Interactive diagram: https://gitdiagram.com/jenkinsci/helm-charts
- Repository: https://github.com/jenkinsci/helm-charts

## Overview

This repository packages the Jenkins Helm chart: an operator supplies chart values, Helm renders Kubernetes resources, and the cluster runs a configured Jenkins controller with supporting services. The tree documents storage, configuration, secrets, access, networking, and monitoring capabilities. No source excerpts were provided, so the graph shows chart-rendering and deployment responsibilities but omits uncertain resource-to-resource wiring.

Main entry points: [`charts/jenkins/templates/config.yaml`](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/config.yaml) (Jenkins config), [`charts/jenkins/templates/jcasc-config.yaml`](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jcasc-config.yaml) (JCasC config), [`charts/jenkins/templates/config-init-scripts.yaml`](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/config-init-scripts.yaml) (Init scripts), [`charts/jenkins/templates/secret.yaml`](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/secret.yaml) (Secrets)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_inputs["Chart inputs"]
  node_values["Chart values<br/>[values.yaml]"]
end

subgraph group_runtime["Jenkins runtime"]
  node_config["Jenkins config<br/>[config.yaml]"]
  node_jcasc["JCasC config<br/>[jcasc-config.yaml]"]
  node_init["Init scripts"]
  node_secrets["Secrets<br/>[secret.yaml]"]
  node_pvc[("Home storage<br/>[home-pvc.yaml]")]
  node_statefulset["Controller workload"]
  node_jenkins["Jenkins controller"]
end

subgraph group_access["Access and security"]
  node_service["Controller service"]
  node_ingress["Ingress routes"]
  node_agentsvc["Agent service"]
  node_rbac["RBAC resources<br/>[rbac.yaml]"]
end

subgraph group_operations["Operations"]
  node_monitoring["Monitoring resources"]
  node_networkpolicy["Network policy"]
end

node_operator(("Chart operator"))
node_helm["Helm"]
node_cluster["Kubernetes cluster"]

node_operator -->|"runs chart"| node_helm
node_operator -->|"provides values"| node_values
node_helm -->|"reads"| node_values
node_helm -->|"renders"| node_config
node_helm -->|"renders"| node_jcasc
node_helm -->|"renders"| node_init
node_helm -->|"renders"| node_secrets
node_helm -->|"renders"| node_pvc
node_helm -->|"renders"| node_statefulset
node_helm -->|"renders"| node_service
node_helm -->|"renders"| node_ingress
node_helm -->|"renders"| node_agentsvc
node_helm -->|"renders"| node_rbac
node_helm -->|"renders"| node_monitoring
node_helm -->|"renders"| node_networkpolicy
node_statefulset -->|"deploys workload"| node_cluster
node_pvc -->|"provisions storage"| node_cluster
node_config -->|"creates config"| node_cluster
node_jcasc -->|"creates config"| node_cluster
node_init -->|"creates scripts"| node_cluster
node_secrets -->|"creates secrets"| node_cluster
node_service -->|"creates service"| node_cluster
node_ingress -->|"creates routes"| node_cluster
node_agentsvc -->|"creates service"| node_cluster
node_rbac -->|"creates permissions"| node_cluster
node_monitoring -->|"creates monitors"| node_cluster
node_networkpolicy -->|"creates policy"| node_cluster
node_cluster -->|"runs controller"| node_jenkins

click node_values "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/values.yaml"
click node_config "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/config.yaml"
click node_jcasc "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jcasc-config.yaml"
click node_init "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/config-init-scripts.yaml"
click node_secrets "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/secret.yaml"
click node_pvc "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/home-pvc.yaml"
click node_statefulset "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-statefulset.yaml"
click node_service "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-svc.yaml"
click node_ingress "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-ingress.yaml"
click node_agentsvc "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-agent-svc.yaml"
click node_rbac "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/rbac.yaml"
click node_monitoring "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-servicemonitor.yaml"
click node_networkpolicy "https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-networkpolicy.yaml"

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_values toneBlue
class node_config,node_jcasc,node_init,node_secrets,node_pvc,node_statefulset,node_jenkins toneAmber
class node_service,node_ingress,node_agentsvc,node_rbac toneMint
class node_monitoring,node_networkpolicy toneRose
class node_operator,node_helm,node_cluster toneIndigo
```

## Components

### Chart inputs

- [Chart values](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/values.yaml): `charts/jenkins/values.yaml`

### Jenkins runtime

- [Jenkins config](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/config.yaml): `charts/jenkins/templates/config.yaml`
- [JCasC config](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jcasc-config.yaml): `charts/jenkins/templates/jcasc-config.yaml`
- [Init scripts](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/config-init-scripts.yaml): `charts/jenkins/templates/config-init-scripts.yaml`
- [Secrets](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/secret.yaml): `charts/jenkins/templates/secret.yaml`
- [Home storage](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/home-pvc.yaml): `charts/jenkins/templates/home-pvc.yaml`
- [Controller workload](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-statefulset.yaml): `charts/jenkins/templates/jenkins-controller-statefulset.yaml`
- **Jenkins controller**

### Access and security

- [Controller service](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-svc.yaml): `charts/jenkins/templates/jenkins-controller-svc.yaml`
- [Ingress routes](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-ingress.yaml): `charts/jenkins/templates/jenkins-controller-ingress.yaml`
- [Agent service](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-agent-svc.yaml): `charts/jenkins/templates/jenkins-agent-svc.yaml`
- [RBAC resources](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/rbac.yaml): `charts/jenkins/templates/rbac.yaml`

### Operations

- [Monitoring resources](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-servicemonitor.yaml): `charts/jenkins/templates/jenkins-controller-servicemonitor.yaml`
- [Network policy](https://github.com/jenkinsci/helm-charts/blob/main/charts/jenkins/templates/jenkins-controller-networkpolicy.yaml): `charts/jenkins/templates/jenkins-controller-networkpolicy.yaml`

### Other components

- **Chart operator**
- **Helm**
- **Kubernetes cluster**

## Connections

- Chart operator → Helm: runs chart
- Chart operator → Chart values: provides values
- Helm → Chart values: reads
- Helm → Jenkins config: renders
- Helm → JCasC config: renders
- Helm → Init scripts: renders
- Helm → Secrets: renders
- Helm → Home storage: renders
- Helm → Controller workload: renders
- Helm → Controller service: renders
- Helm → Ingress routes: renders
- Helm → Agent service: renders
- Helm → RBAC resources: renders
- Helm → Monitoring resources: renders
- Helm → Network policy: renders
- Controller workload → Kubernetes cluster: deploys workload
- Home storage → Kubernetes cluster: provisions storage
- Jenkins config → Kubernetes cluster: creates config
- JCasC config → Kubernetes cluster: creates config
- Init scripts → Kubernetes cluster: creates scripts
- Secrets → Kubernetes cluster: creates secrets
- Controller service → Kubernetes cluster: creates service
- Ingress routes → Kubernetes cluster: creates routes
- Agent service → Kubernetes cluster: creates service
- RBAC resources → Kubernetes cluster: creates permissions
- Monitoring resources → Kubernetes cluster: creates monitors
- Network policy → Kubernetes cluster: creates policy
- Kubernetes cluster → Jenkins controller: runs controller
