1# Default values for headlamp.
2# This is a YAML-formatted file.
3# Declare variables to be passed into your templates.
5# -- Number of desired pods
8 # -- Container image registry
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: latest@sha256:7447fdb2634a6e2f890968bb0527113237fc454e3a42cc53f949cf3c3d51b205
16# -- An optional list of references to secrets in the same namespace to use for pulling any of the images used
18# -- Overrides the name of the chart
20# -- Overrides the full name of the chart
22# -- Override the deployment namespace; defaults to .Release.Namespace
24# -- An optional list of init containers to be run before the main containers.
26# -- An optional list of extra containers to be run along side the main containers.
30 inClusterContextName: "main"
31 # -- base url path at which headlamp should run
33 # -- session token TTL in seconds (default is 24 hours)
37 # @param config.oidc.secret - OIDC secret configuration
38 # If you want to use an existing secret, set create to false and provide the name of the secret.
39 # If you want to create a new secret, set create to true and provide the name of the secret.
40 # Also provide the values for clientID, clientSecret, issuerURL, and scopes.
48 # -- Generate OIDC secret. If true, will generate a secret using .config.oidc.
50 # -- Name of the OIDC secret.
53 # @param config.oidc - OIDC env configuration
54 # If you want to set the OIDC configuration directly, set the following values.
58 # clientID: "clientID"
59 # clientSecret: "clientSecret"
60 # issuerURL: "issuerURL"
65 # -- OIDC client secret
69 # -- OIDC scopes to be used
71 # -- OIDC callback URL
73 # -- OIDC client to be used during token validation
75 # -- OIDC Issuer URL to be used during token validation
76 validatorIssuerURL: ""
77 # -- Use 'access_token' instead of 'id_token' when authenticating using OIDC
79 # -- Use PKCE (Proof Key for Code Exchange) for enhanced security in OIDC flow
81 # -- Enable using OIDC cookie for authentication outside of cluster
84 # @param config.oidc - External OIDC secret configuration
85 # If you want to use an external secret for OIDC configuration, enable this option.
86 # Provide the name of the secret to use.
98 # -- URL to fetch additional user info for the /me endpoint.
99 # For oauth2proxy /oauth2/userinfo can be used. Empty and it will not be used.
101 # -- directory to look for plugins
102 pluginsDir: "/headlamp/plugins"
105 # tlsCertPath: "/headlamp-cert/headlamp-ca.crt"
106 # tlsKeyPath: "/headlamp-cert/headlamp-tls.key"
107 # Extra arguments that can be given to the container. See charts/headlamp/README.md for more information.
109# -- An optional list of environment variables
111# - name: KUBERNETES_SERVICE_HOST
113# - name: KUBERNETES_SERVICE_PORT
116# -- Mount Service Account token in pod
117automountServiceAccountToken: true
119 # -- Specifies whether a service account should be created
121 # -- Annotations to add to the service account
123 # -- The name of the service account to use.(If not set and create is true, a name is generated using the fullname template)
126 # -- Specified whether a cluster role binding should be created
128 # -- Set name of the Cluster Role with limited permissions from you cluster
129 # for example - clusterRoleName: user-ro
130 clusterRoleName: cluster-admin
131 # -- Annotations to add to the cluster role binding
133# -- Annotations to add to the deployment
134deploymentAnnotations: {}
135# -- Annotations to add to the pod
137# -- Labels to add to the pod
139# -- Controls user namespace isolation for the Headlamp pod.
140# When true (default), the pod shares the host user namespace (user namespaces are DISABLED).
141# When false, the pod uses a separate user namespace (user namespaces are ENABLED) for stronger isolation,
142# if supported by the cluster. Set this to false if your cluster supports user namespaces and you want
143# additional isolation; leave as true if user namespaces are not available.
144# See: https://kubernetes.io/docs/concepts/workloads/pods/user-namespaces/
146# -- Headlamp pod's Security Context
147podSecurityContext: {}
150# -- Headlamp containers Security Context
151# When readOnlyRootFilesystem: true is set, the chart automatically adds a
152# writable emptyDir volume named "headlamp-tmp" mounted at /tmp so the
153# application can write temporary files.
154# You can override this behavior in two ways:
155# 1. Supply your own volumeMount with mountPath: /tmp — the chart will skip
156# adding both the automatic mount and the automatic volume.
157# 2. Supply your own volume named "headlamp-tmp" (e.g. to set sizeLimit) —
158# the chart will skip creating the volume but will still add the /tmp mount
159# pointing to your volume.
164 # readOnlyRootFilesystem: true
169# Uses these defaults if this is empty.
170# allowPrivilegeEscalation: false
173# type: RuntimeDefault
179 # -- Annotations to add to the service
181 # -- Kubernetes Service type
183 # -- Kubernetes Service port
185 # -- Kubernetes Service clusterIP
187 # -- Kubernetes Service loadBalancerIP
189 # -- Kubernetes Service loadBalancerSourceRanges
190 loadBalancerSourceRanges: []
191 # -- Kubernetes Service Nodeport
193 # -- Additional ports to expose on the Service in addition to the default
194 # http port. Each entry must have a unique `name` and a `port`. `targetPort`
195 # defaults to `port` when omitted. `nodePort` is only honored when
196 # `service.type` is `NodePort` or `LoadBalancer`. A matching containerPort
197 # must be provided by the user (e.g. via a sidecar) for traffic to actually
199 extraServicePorts: []
205# -- Headlamp containers volume mounts
207# -- Headlamp pod's volumes
209persistentVolumeClaim:
210 # -- Enable Persistent Volume Claim
212 # -- Annotations to add to the persistent volume claim (if enabled)
214 # -- accessModes for the persistent volume claim, eg: ReadWriteOnce, ReadOnlyMany, ReadWriteMany etc.
216 # -- size of the persistent volume claim, eg: 10Gi. Required if enabled is true.
218 # -- storageClassName for the persistent volume claim.
220 # -- selector for the persistent volume claim.
222 # -- volumeMode for the persistent volume claim, eg: Filesystem, Block.
225 # -- Enable ingress controller resource
227 # -- Annotations for Ingress resource
229 # kubernetes.io/tls-acme: "true"
231 # -- Additional labels to add to the Ingress resource
233 # app.kubernetes.io/part-of: traefik
236 # -- Ingress class name. replacement for the deprecated "kubernetes.io/ingress.class" annotation
238 # -- Hostname(s) for the Ingress resource
239 # Please refer to https://kubernetes.io/docs/reference/kubernetes-api/service-resources/ingress-v1/#IngressSpec for more information.
240 # Each path may optionally specify `backend.service.{name,port}` to override
241 # the default Headlamp Service / `service.port`. `name` supports `tpl` so
242 # values like `{{ .Release.Name }}-extra` can be used. `port` accepts either
243 # `number` or `name` (matching `service.extraServicePorts[].name`).
245 # - host: chart-example.local
248 # type: ImplementationSpecific
250 # type: ImplementationSpecific
255 # -- Ingress TLS configuration
257 # - secretName: chart-example-tls
259 # - chart-example.local
260# HTTPRoute configuration for Gateway API
261# Please refer to https://gateway-api.sigs.k8s.io/reference/spec/#gateway.networking.k8s.io/v1.HTTPRoute
263 # -- Enable HTTPRoute resource for Gateway API
265 # -- Annotations for HTTPRoute resource
267 # -- Additional labels for HTTPRoute resource
269 # -- Parent references (REQUIRED when enabled - HTTPRoute will not work without this)
273 # namespace: gateway-namespace
275 # -- Hostnames for the HTTPRoute
278 # - headlamp.example.com
280 # -- Custom routing rules (optional, defaults to path prefix /)
281 # If not specified, a default rule routing all traffic to the service is used
283 # Example custom rules:
290 # - name: "{{ .Release.Name }}-headlamp"
292# -- CPU/Memory resource requests/limits
294# We usually recommend not to specify default resources and to leave this as a conscious
295# choice for the user. This also increases chances charts run on environments with little
296# resources, such as Minikube. If you do want to specify resources, uncomment the following
297# lines, adjust them as necessary, and remove the curly braces after 'resources:'.
305# -- Node labels for pod assignment
307# -- Toleration labels for pod assignment
309# -- Affinity settings for pod assignment
311# -- Topology Spread Constraints for pod assignment
312topologySpreadConstraints: []
314# topologyKey: topology.kubernetes.io/zone
315# whenUnsatisfiable: ScheduleAnyway
319# topologyKey: kubernetes.io/hostname
320# whenUnsatisfiable: DoNotSchedule
324# -- Pod priority class
326# Plugin Manager Sidecar Container Configuration
328 # -- Enable plugin manager
330 # -- Plugin configuration file name
331 configFile: "plugin.yml"
332 # -- Plugin configuration content in YAML format. This is required if plugins.enabled is true.
334 # -- Base node image to use
335 baseImage: cgr.dev/chainguard-private/node-fips:latest@sha256:d80f83293b9453286ec3397fbad015d7b9ecaf229f2391d220c99865ac05456a
336 # -- Headlamp plugin package version to install
338 # -- Plugin manager containers volume mounts
340 # -- Plugin manager env variable configuration
342 # - name: HTTPS_PROXY
343 # value: "proxy.example.com:8080"
344 # -- Specify resrouces
352 # If omitted, the plugin manager will inherit the global securityContext.
353 # When readOnlyRootFilesystem: true is active (set here or inherited), the
354 # chart automatically adds a writable emptyDir volume named
355 # "headlamp-plugins-tmp" mounted at /tmp in the plugin manager container.
356 # Override behavior mirrors the main container: supply your own /tmp
357 # volumeMount to skip both, or supply your own "headlamp-plugins-tmp" volume
358 # (e.g. to set sizeLimit) to have the chart only add the mount.
362 # allowPrivilegeEscalation: false
363 # readOnlyRootFilesystem: true
368 # -- enable PodDisruptionBudget
369 # ref: https://kubernetes.io/docs/concepts/workloads/pods/disruptions/
372 # type: [null, integer, string]
374 # -- Minimum number/percentage of pods that should remain scheduled.
375 # When it's set, maxUnavailable must be disabled by `maxUnavailable: null`
378 # type: [null, integer, string]
380 # -- Maximum number/percentage of pods that may be made unavailable
383 # type: [null, string]
385 # -- How are unhealthy, but running, pods counted for eviction
386 unhealthyPodEvictionPolicy: null
387# -- Additional Kubernetes manifests to be deployed. Include the manifest as nested YAML.