DirectorySecurity AdvisoriesPricing
Sign in
Directory
headlamp logoHELM

headlamp

Helm chart
Last changed
Request a free trial

Contact our team to test out this Helm chart and related images for free. Please also indicate any other images you would like to evaluate.

Overview
Chart tags
Default values
Chart metadata
Images

Tag:
Compare:

1
# Default values for headlamp.
2
# This is a YAML-formatted file.
3
# Declare variables to be passed into your templates.
4
5
# -- Number of desired pods
6
replicaCount: 1
7
image:
8
# -- Container image registry
9
registry: cgr.dev
10
# -- Container image name
11
repository: chainguard-private/headlamp-fips
12
# -- Image pull policy. One of Always, Never, IfNotPresent
13
pullPolicy: IfNotPresent
14
# -- Container image tag, If "" uses appVersion in Chart.yaml
15
tag: 0.46.0-r1@sha256:c43d89a8de34674fcf0877b8772259e20ef878dbccf1a57df1deee14322a829f
16
# -- An optional list of references to secrets in the same namespace to use for pulling any of the images used
17
imagePullSecrets: []
18
# -- Overrides the name of the chart
19
nameOverride: ""
20
# -- Overrides the full name of the chart
21
fullnameOverride: ""
22
# -- Override the deployment namespace; defaults to .Release.Namespace
23
namespaceOverride: ""
24
# -- An optional list of init containers to be run before the main containers.
25
initContainers: []
26
# -- An optional list of extra containers to be run along side the main containers.
27
extraContainers: []
28
config:
29
inCluster: true
30
inClusterContextName: "main"
31
# -- base url path at which headlamp should run
32
baseURL: ""
33
# -- session token TTL in seconds (default is 24 hours)
34
sessionTTL: 86400
35
# -- UNSAFE: authenticate every Headlamp user as the pod's service account when running in-cluster.
36
# This disables per-user authentication and is only safe behind an auth proxy (e.g. OIDC proxy).
37
unsafeUseServiceAccountToken: false
38
# -- path to the service account token file.
39
# Only used when unsafeUseServiceAccountToken is true.
40
# Defaults to /var/run/secrets/kubernetes.io/serviceaccount/token when empty.
41
serviceAccountTokenPath: ""
42
oidc:
43
# Option 1:
44
# @param config.oidc.secret - OIDC secret configuration
45
# If you want to use an existing secret, set create to false and provide the name of the secret.
46
# If you want to create a new secret, set create to true and provide the name of the secret.
47
# Also provide the values for clientID, clientSecret, issuerURL, and scopes.
48
# Example:
49
# config:
50
# oidc:
51
# secret:
52
# create: true
53
# name: oidc
54
secret:
55
# -- Generate OIDC secret. If true, will generate a secret using .config.oidc.
56
create: true
57
# -- Name of the OIDC secret.
58
name: oidc
59
# Option 2:
60
# @param config.oidc - OIDC env configuration
61
# If you want to set the OIDC configuration directly, set the following values.
62
# Example:
63
# config:
64
# oidc:
65
# clientID: "clientID"
66
# clientSecret: "clientSecret"
67
# issuerURL: "issuerURL"
68
# scopes: "scopes"
69
70
# -- OIDC client ID
71
clientID: ""
72
# -- OIDC client secret
73
clientSecret: ""
74
# -- OIDC issuer URL
75
issuerURL: ""
76
# -- OIDC scopes to be used
77
scopes: ""
78
# -- OIDC callback URL
79
callbackURL: ""
80
# -- OIDC client to be used during token validation
81
validatorClientID: ""
82
# -- OIDC Issuer URL to be used during token validation
83
validatorIssuerURL: ""
84
# -- Use 'access_token' instead of 'id_token' when authenticating using OIDC
85
useAccessToken: false
86
# -- Use PKCE (Proof Key for Code Exchange) for enhanced security in OIDC flow
87
usePKCE: false
88
# -- Enable using OIDC cookie for authentication outside of cluster
89
useCookie: false
90
# -- Enable automatic redirect to the OIDC provider
91
autoLogin: false
92
# Option 3:
93
# @param config.oidc - External OIDC secret configuration
94
# If you want to use an external secret for OIDC configuration, enable this option.
95
# Provide the name of the secret to use.
96
# Example:
97
# config:
98
# oidc:
99
# secret:
100
# create: false
101
# externalSecret:
102
# enabled: true
103
# name: oidc
104
externalSecret:
105
enabled: false
106
name: ""
107
# -- Set to true if your external secret contains an OIDC_SCOPES key.
108
# When false (default), the -oidc-scopes argument is omitted so that
109
# a missing key does not produce an empty or unresolved argument.
110
hasScopes: false
111
# -- URL to fetch additional user info for the /me endpoint.
112
# For oauth2proxy /oauth2/userinfo can be used. Empty and it will not be used.
113
meUserInfoURL: ""
114
# -- directory to look for plugins
115
pluginsDir: "/headlamp/plugins"
116
# Bundled (static) plugins that ship inside the Headlamp image, such as the
117
# Prometheus plugin (the "Show Prometheus metrics" UI).
118
staticPlugins:
119
# -- Serve the bundled static plugins. Set to false to disable them (e.g. to
120
# hide the "Show Prometheus metrics" button) without relying on internal
121
# image paths; this sets HEADLAMP_STATIC_PLUGINS_DIR to an empty string so the backend skips them.
122
enabled: true
123
enableHelm: false
124
watchPlugins: false
125
# -- Default image to use when creating pod debug containers. If empty, Headlamp uses its built-in default.
126
podDebugImage: ""
127
# -- Default image to use when creating node shell pods. If empty, Headlamp uses its built-in default.
128
nodeShellImage: ""
129
# -- Default namespace to use when creating node shell pods. If empty, Headlamp uses its built-in default.
130
nodeShellNamespace: ""
131
# tlsCertPath: "/headlamp-cert/headlamp-ca.crt"
132
# tlsKeyPath: "/headlamp-cert/headlamp-tls.key"
133
clusterInventory:
134
# -- Enable experimental/alpha Cluster Inventory discovery.
135
enabled: false
136
# -- Experimental/alpha Cluster Inventory access providers config. Required when enabled.
137
accessProvidersConfig: {}
138
# accessProvidersConfig:
139
# providers:
140
# - name: secretreader
141
# execConfig:
142
# apiVersion: client.authentication.k8s.io/v1
143
# command: /access-plugins/secretreader/bin/secretreader-plugin
144
# interactiveMode: Never
145
# provideClusterInfo: true
146
# - name: kubeconfig-secretreader
147
# execConfig:
148
# apiVersion: client.authentication.k8s.io/v1
149
# command: /access-plugins/kubeconfig-secretreader/bin/kubeconfig-secretreader-plugin
150
# interactiveMode: Never
151
# provideClusterInfo: true
152
# plugins[] uses the Kubernetes "image" volume type to mount experimental/alpha access provider binaries.
153
plugins: []
154
# plugins:
155
# - name: secretreader
156
# image: registry.k8s.io/cluster-inventory-api/secretreader:v0.1.3@sha256:ec3090dc166aa2b42fb35d714d161c417d8b27bbc463404c8f615f5f4c610a1d
157
# mountPath: /access-plugins/secretreader
158
# - name: kubeconfig-secretreader
159
# image: registry.k8s.io/cluster-inventory-api/kubeconfig-secretreader:v0.1.3@sha256:b92966cc6e4ac78002a63862921022a71d54956826f6e4febcb7247495eb98c0
160
# mountPath: /access-plugins/kubeconfig-secretreader
161
# -- Kubernetes label selector used to filter experimental/alpha ClusterProfile resources.
162
labelSelector: "!headlamp.dev/ignore"
163
# -- Namespaces watched for experimental/alpha ClusterProfile resources. Empty uses the Headlamp pod namespace for in-cluster roots and the kubeconfig context namespace for kubeconfig roots; ["*"] watches all and requires equivalent cluster-wide RBAC permissions.
164
namespaces: []
165
# -- Override the experimental/alpha Cluster Inventory root reconcile interval. Empty uses the Headlamp default.
166
rootReconcileInterval: ""
167
# -- Override the experimental/alpha Cluster Inventory no-CRD cache TTL. Empty uses the Headlamp default.
168
noCRDCacheTTL: ""
169
# Extra arguments that can be given to the container. See charts/headlamp/README.md for more information.
170
extraArgs: []
171
# -- An optional list of environment variables
172
# env:
173
# - name: KUBERNETES_SERVICE_HOST
174
# value: "localhost"
175
# - name: KUBERNETES_SERVICE_PORT
176
# value: "6443"
177
178
# -- Mount Service Account token in pod
179
automountServiceAccountToken: true
180
serviceAccount:
181
# -- Specifies whether a service account should be created
182
create: true
183
# -- Annotations to add to the service account
184
annotations: {}
185
# -- The name of the service account to use.(If not set and create is true, a name is generated using the fullname template)
186
name: ""
187
clusterRoleBinding:
188
# -- Specified whether a cluster role binding should be created
189
create: true
190
# -- Set name of the Cluster Role with limited permissions from you cluster
191
# for example - clusterRoleName: user-ro
192
clusterRoleName: cluster-admin
193
# -- Annotations to add to the cluster role binding
194
annotations: {}
195
# -- Annotations to add to the deployment
196
deploymentAnnotations: {}
197
# -- Annotations to add to the pod
198
podAnnotations: {}
199
# -- Labels to add to the pod
200
podLabels: {}
201
# -- Controls user namespace isolation for the Headlamp pod.
202
# When true (default), the pod shares the host user namespace (user namespaces are DISABLED).
203
# When false, the pod uses a separate user namespace (user namespaces are ENABLED) for stronger isolation,
204
# if supported by the cluster. Set this to false if your cluster supports user namespaces and you want
205
# additional isolation; leave as true if user namespaces are not available.
206
# See: https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/
207
hostUsers: true
208
# -- Headlamp pod's Security Context
209
podSecurityContext: {}
210
# fsGroup: 2000
211
212
# -- Headlamp containers Security Context
213
# When readOnlyRootFilesystem: true is set, the chart automatically adds a
214
# writable emptyDir volume named "headlamp-tmp" mounted at /tmp so the
215
# application can write temporary files.
216
# You can override this behavior in two ways:
217
# 1. Supply your own volumeMount with mountPath: /tmp — the chart will skip
218
# adding both the automatic mount and the automatic volume.
219
# 2. Supply your own volume named "headlamp-tmp" (e.g. to set sizeLimit) —
220
# the chart will skip creating the volume but will still add the /tmp mount
221
# pointing to your volume.
222
securityContext:
223
# capabilities:
224
# drop:
225
# - ALL
226
# readOnlyRootFilesystem: true
227
runAsNonRoot: true
228
privileged: false
229
runAsUser: 100
230
runAsGroup: 101
231
# Uses these defaults if this is empty.
232
# allowPrivilegeEscalation: false
233
# runAsNonRoot: true
234
# seccompProfile:
235
# type: RuntimeDefault
236
# capabilities:
237
# drop:
238
# - ALL
239
240
service:
241
# -- Annotations to add to the service
242
annotations: {}
243
# -- Kubernetes Service type
244
type: ClusterIP
245
# -- Kubernetes Service port
246
port: 80
247
# -- Kubernetes Service port appProtocol (for the main http port)
248
appProtocol: null
249
# -- Kubernetes Service clusterIP
250
clusterIP: ""
251
# -- Kubernetes Service loadBalancerIP
252
loadBalancerIP: ""
253
# -- Kubernetes Service loadBalancerSourceRanges
254
loadBalancerSourceRanges: []
255
# -- Kubernetes Service Nodeport
256
nodePort: null
257
# -- Additional ports to expose on the Service in addition to the default
258
# http port. Each entry must have a unique `name` and a `port`. `targetPort`
259
# defaults to `port` when omitted. `nodePort` is only honored when
260
# `service.type` is `NodePort` or `LoadBalancer`. A matching containerPort
261
# must be provided by the user (e.g. via a sidecar) for traffic to actually
262
# be routed.
263
extraServicePorts: []
264
# - name: extra
265
# port: 9090
266
# targetPort: extra
267
# protocol: TCP
268
# nodePort: null
269
# -- Headlamp containers volume mounts
270
volumeMounts: []
271
# -- Headlamp pod's volumes
272
volumes: []
273
persistentVolumeClaim:
274
# -- Enable Persistent Volume Claim
275
enabled: false
276
# -- Annotations to add to the persistent volume claim (if enabled)
277
annotations: {}
278
# -- accessModes for the persistent volume claim, eg: ReadWriteOnce, ReadOnlyMany, ReadWriteMany etc.
279
accessModes: []
280
# -- size of the persistent volume claim, eg: 10Gi. Required if enabled is true.
281
size: ""
282
# -- storageClassName for the persistent volume claim.
283
storageClassName: ""
284
# -- selector for the persistent volume claim.
285
selector: {}
286
# -- volumeMode for the persistent volume claim, eg: Filesystem, Block.
287
volumeMode: ""
288
ingress:
289
# -- Enable ingress controller resource
290
enabled: false
291
# -- Annotations for Ingress resource
292
annotations: {}
293
# kubernetes.io/tls-acme: "true"
294
295
# -- Additional labels to add to the Ingress resource
296
labels: {}
297
# app.kubernetes.io/part-of: traefik
298
# environment: prod
299
300
# -- Ingress class name. replacement for the deprecated "kubernetes.io/ingress.class" annotation
301
ingressClassName: ""
302
# -- Hostname(s) for the Ingress resource
303
# Please refer to https://kubernetes.io/docs/reference/kubernetes-api/service-resources/ingress-v1/#IngressSpec for more information.
304
# Each path may optionally specify `backend.service.{name,port}` to override
305
# the default Headlamp Service / `service.port`. `name` supports `tpl` so
306
# values like `{{ .Release.Name }}-extra` can be used. `port` accepts either
307
# `number` or `name` (matching `service.extraServicePorts[].name`).
308
hosts: []
309
# - host: chart-example.local
310
# paths:
311
# - path: /
312
# type: ImplementationSpecific
313
# - path: /extra
314
# type: ImplementationSpecific
315
# backend:
316
# service:
317
# port:
318
# name: extra
319
# -- Ingress TLS configuration
320
tls: []
321
# - secretName: chart-example-tls
322
# hosts:
323
# - chart-example.local
324
# HTTPRoute configuration for Gateway API
325
# Please refer to https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.HTTPRoute
326
httpRoute:
327
# -- Enable HTTPRoute resource for Gateway API
328
enabled: false
329
# -- Annotations for HTTPRoute resource
330
annotations: {}
331
# -- Additional labels for HTTPRoute resource
332
labels: {}
333
# -- Parent references (REQUIRED when enabled - HTTPRoute will not work without this)
334
# Example:
335
# parentRefs:
336
# - name: my-gateway
337
# namespace: gateway-namespace
338
parentRefs: []
339
# -- Hostnames for the HTTPRoute
340
# Example:
341
# hostnames:
342
# - headlamp.example.com
343
hostnames: []
344
# -- Custom routing rules (optional, defaults to path prefix /)
345
# If not specified, a default rule routing all traffic to the service is used
346
rules: []
347
# Example custom rules:
348
# rules:
349
# - matches:
350
# - path:
351
# type: PathPrefix
352
# value: /headlamp
353
# backendRefs:
354
# - name: "{{ .Release.Name }}-headlamp"
355
# port: 80
356
# -- CPU/Memory resource requests/limits
357
resources: {}
358
# We usually recommend not to specify default resources and to leave this as a conscious
359
# choice for the user. This also increases chances charts run on environments with little
360
# resources, such as Minikube. If you do want to specify resources, uncomment the following
361
# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
362
# limits:
363
# cpu: 100m
364
# memory: 128Mi
365
# requests:
366
# cpu: 100m
367
# memory: 128Mi
368
369
# -- Node labels for pod assignment
370
nodeSelector: {}
371
# -- Toleration labels for pod assignment
372
tolerations: []
373
# -- Affinity settings for pod assignment
374
affinity: {}
375
# -- Host aliases to add to the pod's /etc/hosts file
376
hostAliases: []
377
# -- Topology Spread Constraints for pod assignment
378
topologySpreadConstraints: []
379
# - maxSkew: 1
380
# topologyKey: topology.kubernetes.io/zone
381
# whenUnsatisfiable: ScheduleAnyway
382
# matchLabelKeys:
383
# - pod-template-hash
384
# - maxSkew: 1
385
# topologyKey: kubernetes.io/hostname
386
# whenUnsatisfiable: DoNotSchedule
387
# matchLabelKeys:
388
# - pod-template-hash
389
390
# -- Pod priority class
391
priorityClassName: ""
392
# Probe configuration for liveness and readiness checks
393
probes:
394
# -- Scheme to use for liveness and readiness probes (HTTP or HTTPS).
395
# Set to HTTPS when TLS is enabled at the backend server.
396
scheme: HTTP
397
livenessProbe:
398
# -- Initial delay in seconds before starting liveness probe
399
initialDelaySeconds: 0
400
# -- Period in seconds between liveness probe checks
401
periodSeconds: 10
402
# -- Timeout in seconds for liveness probe
403
timeoutSeconds: 1
404
# -- Minimum consecutive successes for the probe to be considered successful (must be 1 for liveness probes per Kubernetes API)
405
successThreshold: 1
406
# -- Minimum consecutive failures for the probe to be considered failed
407
failureThreshold: 3
408
readinessProbe:
409
# -- Initial delay in seconds before starting readiness probe
410
initialDelaySeconds: 0
411
# -- Period in seconds between readiness probe checks
412
periodSeconds: 10
413
# -- Timeout in seconds for readiness probe
414
timeoutSeconds: 1
415
# -- Minimum consecutive successes for the probe to be considered successful
416
successThreshold: 1
417
# -- Minimum consecutive failures for the probe to be considered failed
418
failureThreshold: 3
419
# Plugin Manager Sidecar Container Configuration
420
pluginsManager:
421
# -- Enable plugin manager
422
enabled: false
423
# -- Plugin configuration file name
424
configFile: "plugin.yml"
425
# -- Plugin configuration content in YAML format. This is required if plugins.enabled is true.
426
configContent: ""
427
# -- Base node image to use
428
baseImage: cgr.dev/chainguard-private/node-fips:v26.12.1-r2@sha256:df295ee3f519602b6e50c36f67573c838cebb15c592cfce024a2fc3da58b0c05
429
# -- Headlamp plugin package version to install
430
version: latest
431
# -- Plugin manager containers volume mounts
432
volumeMounts: []
433
# -- Plugin manager env variable configuration
434
# env:
435
# - name: HTTPS_PROXY
436
# value: "proxy.example.com:8080"
437
# -- Specify resrouces
438
# resources:
439
# requests:
440
# cpu: "500m"
441
# memory: "2048Mi"
442
# limits:
443
# cpu: "1000m"
444
# memory: "4096Mi"
445
# If omitted, the plugin manager will inherit the global securityContext.
446
# When readOnlyRootFilesystem: true is active (set here or inherited), the
447
# chart automatically adds a writable emptyDir volume named
448
# "headlamp-plugins-tmp" mounted at /tmp in the plugin manager container.
449
# Override behavior mirrors the main container: supply your own /tmp
450
# volumeMount to skip both, or supply your own "headlamp-plugins-tmp" volume
451
# (e.g. to set sizeLimit) to have the chart only add the mount.
452
securityContext: {}
453
# runAsUser: 1001
454
# runAsNonRoot: true
455
# allowPrivilegeEscalation: false
456
# readOnlyRootFilesystem: true
457
# capabilities:
458
# drop:
459
# - ALL
460
podDisruptionBudget:
461
# -- enable PodDisruptionBudget
462
# ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
463
enabled: false
464
# @schema
465
# type: [null, integer, string]
466
# @schema
467
# -- Minimum number/percentage of pods that should remain scheduled.
468
# When it's set, maxUnavailable must be disabled by `maxUnavailable: null`
469
minAvailable: 0
470
# @schema
471
# type: [null, integer, string]
472
# @schema
473
# -- Maximum number/percentage of pods that may be made unavailable
474
maxUnavailable: null
475
# @schema
476
# type: [null, string]
477
# @schema
478
# -- How are unhealthy, but running, pods counted for eviction
479
unhealthyPodEvictionPolicy: null
480
# -- Additional Kubernetes manifests to be deployed. Include the manifest as nested YAML.
481
extraManifests: []
482
# - |
483
# apiVersion: v1
484
# kind: ConfigMap
485
# metadata:
486
# name: my-config
487
# data:
488
# key: value
489
# - |
490
# apiVersion: v1
491
# kind: ConfigMap
492
# metadata:
493
# name: my-config-too
494
# data:
495
# key: value
496

The trusted source for open source

Talk to an expert
PrivacyTerms

Product

Chainguard ContainersChainguard LibrariesChainguard VMsChainguard OS PackagesChainguard ActionsChainguard Agent SkillsIntegrationsPricing
© 2026 Chainguard, Inc. All Rights Reserved.
Chainguard® and the Chainguard logo are registered trademarks of Chainguard, Inc. in the United States and/or other countries.
The other respective trademarks mentioned on this page are owned by the respective companies and use of them does not imply any affiliation or endorsement.