DirectorySecurity AdvisoriesPricing
Sign in
Directory
alloy logoHELM

alloy

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 versions
Default values
Chart metadata
Images

Tag:

1
# -- Overrides the chart's name. Used to change the infix in the resource names.
2
nameOverride: null
3
# -- Overrides the chart's namespace.
4
namespaceOverride: null
5
# -- Overrides the chart's computed fullname. Used to change the full prefix of
6
# resource names.
7
fullnameOverride: null
8
## Global properties for image pulling override the values defined under `image.registry` and `configReloader.image.registry`.
9
## If you want to override only one image registry, use the specific fields but if you want to override them all, use `global.image.registry`
10
global:
11
image:
12
# -- Global image registry to use if it needs to be overridden for some specific use cases (e.g local registries, custom images, ...)
13
registry: ""
14
# -- Optional set of global image pull secrets.
15
pullSecrets: []
16
# -- Global image pull policy to apply to all containers. Overrides `image.pullPolicy` and `configReloader.image.pullPolicy`.
17
pullPolicy: ""
18
# -- Security context to apply to the Grafana Alloy pod.
19
podSecurityContext: {}
20
crds:
21
# -- Whether to install CRDs for monitoring.
22
create: true
23
## Various Alloy settings. For backwards compatibility with the grafana-agent
24
## chart, this field may also be called "agent". Naming this field "agent" is
25
## deprecated and will be removed in a future release.
26
alloy:
27
configMap:
28
# -- Create a new ConfigMap for the config file.
29
create: true
30
# -- Content to assign to the new ConfigMap. This is passed into `tpl` allowing for templating from values.
31
content: ''
32
# -- Name of existing ConfigMap to use. Used when create is false.
33
name: null
34
# -- Key in ConfigMap to get config from.
35
key: null
36
clustering:
37
# -- Deploy Alloy in a cluster to allow for load distribution.
38
enabled: false
39
# -- Name for the Alloy cluster. Used for differentiating between clusters.
40
name: ""
41
# -- Name for the port used for clustering, useful if running inside an Istio Mesh
42
portName: http
43
# -- Minimum stability level of components and behavior to enable. Must be
44
# one of "experimental", "public-preview", or "generally-available".
45
stabilityLevel: "generally-available"
46
# -- Path to where Grafana Alloy stores data (for example, the Write-Ahead Log).
47
# By default, data is lost between reboots.
48
storagePath: /tmp/alloy
49
# -- Enables Grafana Alloy container's http server port.
50
enableHttpServerPort: true
51
# -- Address to listen for traffic on. 0.0.0.0 exposes the UI to other
52
# containers.
53
listenAddr: 0.0.0.0
54
# -- Port to listen for traffic on.
55
listenPort: 12345
56
# -- Scheme is needed for readiness probes. If enabling tls in your configs, set to "HTTPS"
57
listenScheme: HTTP
58
# -- Initial delay for readiness probe.
59
initialDelaySeconds: 10
60
# -- Timeout for readiness probe.
61
timeoutSeconds: 1
62
# -- Base path where the UI is exposed.
63
uiPathPrefix: /
64
# -- Enables sending Grafana Labs anonymous usage stats to help improve Grafana
65
# Alloy.
66
enableReporting: true
67
# -- Extra environment variables to pass to the Alloy container.
68
extraEnv: []
69
# -- Maps all the keys on a ConfigMap or Secret as environment variables. https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.24/#envfromsource-v1-core
70
envFrom: []
71
# -- Override the entrypoint command for the Alloy container. When set, this
72
# replaces the image's default entrypoint (the chart-provided `args` are still
73
# passed). Useful on Windows where the binary lives at a different path, for
74
# example `["C:\\Program Files\\GrafanaLabs\\Alloy\\alloy.exe"]`. Leave empty
75
# to use the image's default entrypoint.
76
command: []
77
# -- Extra args to pass to `alloy run`: https://grafana.com/docs/alloy/latest/reference/cli/run/
78
extraArgs: []
79
# -- Extra ports to expose on the Alloy container.
80
# If `service.type` is `NodePort`, each item may set `nodePort` to choose the Service NodePort for that port.
81
extraPorts: []
82
# - name: "faro"
83
# nodePort: 31129
84
# port: 12347
85
# targetPort: 12347
86
# protocol: "TCP"
87
# appProtocol: "h2c"
88
89
# -- Host aliases to add to the Alloy container.
90
hostAliases: []
91
# - ip: "20.21.22.23"
92
# hostnames:
93
# - "company.grafana.net"
94
95
mounts:
96
# -- Mount /var/log from the host into the container for log collection.
97
varlog: false
98
# -- Mount /var/lib/docker/containers from the host into the container for log
99
# collection.
100
dockercontainers: false
101
# -- Extra volume mounts to add into the Grafana Alloy container. Does not
102
# affect the watch container.
103
extra: []
104
# -- Security context to apply to the Grafana Alloy container.
105
securityContext: {}
106
# -- Resource requests and limits to apply to the Grafana Alloy container.
107
resources: {}
108
# -- Set lifecycle hooks for the Grafana Alloy container.
109
lifecycle: {}
110
# preStop:
111
# exec:
112
# command:
113
# - /bin/sleep
114
# - "10"
115
116
# -- Set livenessProbe for the Grafana Alloy container.
117
livenessProbe: {}
118
image:
119
# -- Grafana Alloy image registry (defaults to docker.io)
120
registry: cgr.dev
121
# -- Grafana Alloy image repository.
122
repository: chainguard-private/grafana-alloy
123
# -- (string) Grafana Alloy image tag. When empty, the Chart's appVersion is
124
# used.
125
tag: latest
126
# -- Grafana Alloy image's SHA256 digest (either in format "sha256:XYZ" or "XYZ"). When set, will override `image.tag`.
127
digest: sha256:9f04376e0a5a5b88d9dc89c1e919cf59011d79bc7f2c1869cbb0bdd7958e89c3
128
# -- Grafana Alloy image pull policy.
129
pullPolicy: IfNotPresent
130
# -- Optional set of image pull secrets.
131
pullSecrets: []
132
rbac:
133
# -- Whether to create RBAC resources for Alloy.
134
create: true
135
# -- If set, only create Roles and RoleBindings in the given list of namespaces, rather than ClusterRoles and
136
# ClusterRoleBindings. If not using ClusterRoles, bear in mind that Alloy will not be able to discover cluster-scoped
137
# resources such as Nodes.
138
namespaces: []
139
# -- The rules to create for the ClusterRole or Role objects.
140
rules:
141
# -- Rules required for the `discovery.kubernetes` component.
142
- apiGroups: ["", "discovery.k8s.io", "networking.k8s.io"]
143
resources: ["endpoints", "endpointslices", "ingresses", "pods", "services"]
144
verbs: ["get", "list", "watch"]
145
# -- Rules required for the `loki.source.kubernetes` component.
146
- apiGroups: [""]
147
resources: ["pods", "pods/log", "namespaces"]
148
verbs: ["get", "list", "watch"]
149
# -- Rules required for the `loki.source.podlogs` component.
150
- apiGroups: ["monitoring.grafana.com"]
151
resources: ["podlogs"]
152
verbs: ["get", "list", "watch"]
153
# -- Rules required for the `mimir.rules.kubernetes` component.
154
- apiGroups: ["monitoring.coreos.com"]
155
resources: ["prometheusrules"]
156
verbs: ["get", "list", "watch"]
157
# -- Rules required for the `mimir.alerts.kubernetes` component.
158
- apiGroups: ["monitoring.coreos.com"]
159
resources: ["alertmanagerconfigs"]
160
verbs: ["get", "list", "watch"]
161
# -- Rules required for the `prometheus.operator.*` components.
162
- apiGroups: ["monitoring.coreos.com"]
163
resources: ["podmonitors", "servicemonitors", "probes", "scrapeconfigs"]
164
verbs: ["get", "list", "watch"]
165
# -- Rules required for the `loki.source.kubernetes_events` component.
166
- apiGroups: [""]
167
resources: ["events"]
168
verbs: ["get", "list", "watch"]
169
# -- Rules required for the `remote.kubernetes.*` components.
170
- apiGroups: [""]
171
resources: ["configmaps", "secrets"]
172
verbs: ["get", "list", "watch"]
173
# -- Rules required for the `otelcol.processor.k8sattributes` component.
174
- apiGroups: ["apps", "extensions"]
175
resources: ["replicasets"]
176
verbs: ["get", "list", "watch"]
177
# -- The rules to create for the ClusterRole objects.
178
clusterRules:
179
# -- Rules required for the Nodes role in the `discovery.kubernetes` component.
180
- apiGroups: [""]
181
resources: ["nodes"]
182
verbs: ["get", "list", "watch"]
183
# -- Rules required for the `discovery.kubelet` component.
184
- apiGroups: [""]
185
resources: ["nodes/pods"]
186
verbs: ["get", "list", "watch"]
187
# -- Rules required accessing metric endpoints on the Node (e.g. Kubelet, cAdvisor, etc...).
188
- apiGroups: [""]
189
resources: ["nodes/metrics"]
190
verbs: ["get", "list", "watch"]
191
# -- Rules required for accessing metrics endpoint.
192
- nonResourceURLs: ["/metrics"]
193
verbs: ["get"]
194
serviceAccount:
195
# -- Whether to create a service account for the Grafana Alloy deployment.
196
create: true
197
# -- Additional labels to add to the created service account.
198
additionalLabels: {}
199
# -- Annotations to add to the created service account.
200
annotations: {}
201
# -- The name of the existing service account to use when
202
# serviceAccount.create is false.
203
name: null
204
# Whether the Alloy pod should automatically mount the service account token.
205
automountServiceAccountToken: true
206
# Options for the extra controller used for config reloading.
207
configReloader:
208
# -- Enables automatically reloading when the Alloy config changes.
209
enabled: true
210
image:
211
# -- Config reloader image registry (defaults to docker.io)
212
registry: cgr.dev
213
# -- Repository to get config reloader image from.
214
repository: chainguard-private/prometheus-config-reloader
215
# -- Tag of image to use for config reloading.
216
tag: latest
217
# -- SHA256 digest of image to use for config reloading (either in format "sha256:XYZ" or "XYZ"). When set, will override `configReloader.image.tag`
218
digest: sha256:d91911d98ab77926e1292926209ed9193837cbd335e5217da0955c7c1acf0f94
219
# -- Config reloader image pull policy.
220
pullPolicy: IfNotPresent
221
# -- Override the args passed to the container.
222
customArgs: []
223
# -- Resource requests and limits to apply to the config reloader container.
224
resources:
225
requests:
226
cpu: "10m"
227
memory: "50Mi"
228
# -- Security context to apply to the Grafana configReloader container.
229
securityContext:
230
allowPrivilegeEscalation: false
231
readOnlyRootFilesystem: true
232
capabilities:
233
drop:
234
- ALL
235
runAsNonRoot: true
236
runAsUser: 65534
237
runAsGroup: 65534
238
seccompProfile:
239
type: RuntimeDefault
240
controller:
241
# -- Type of controller to use for deploying Grafana Alloy in the cluster.
242
# Must be one of 'daemonset', 'deployment', or 'statefulset'.
243
type: 'daemonset'
244
# -- Number of pods to deploy. Ignored when controller.type is 'daemonset'.
245
replicas: 1
246
# -- Extra labels to add to the controller.
247
extraLabels: {}
248
# -- Annotations to add to controller.
249
extraAnnotations: {}
250
# -- Whether to deploy pods in parallel. Only used when controller.type is
251
# 'statefulset'.
252
parallelRollout: true
253
# -- How many additional seconds to wait before considering a pod ready.
254
minReadySeconds: 10
255
# -- Configures Pods to use the host network. When set to true, the ports that will be used must be specified.
256
hostNetwork: false
257
# -- Configures Pods to use the host PID namespace.
258
hostPID: false
259
# -- Configures the DNS policy for the pod. https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
260
dnsPolicy: ClusterFirst
261
# -- Termination grace period in seconds for the Grafana Alloy pods.
262
# The default value used by Kubernetes if unspecifed is 30 seconds.
263
terminationGracePeriodSeconds: null
264
# -- The maximum number of revisions that will be maintained in the Controllers's revision history. The history consists of all revisions not represented by a currently applied reversion.
265
revisionHistoryLimit: 10
266
# -- Update strategy for updating deployed Pods.
267
updateStrategy: {}
268
# -- nodeSelector to apply to Grafana Alloy pods.
269
nodeSelector: {}
270
# -- Tolerations to apply to Grafana Alloy pods.
271
tolerations: []
272
# -- Topology Spread Constraints to apply to Grafana Alloy pods.
273
topologySpreadConstraints: []
274
# -- priorityClassName to apply to Grafana Alloy pods.
275
priorityClassName: ''
276
# -- Extra pod annotations to add.
277
podAnnotations: {}
278
# -- Extra pod labels to add.
279
podLabels: {}
280
# -- PodDisruptionBudget configuration.
281
podDisruptionBudget:
282
# -- Whether to create a PodDisruptionBudget for the controller.
283
enabled: false
284
# -- Minimum number of pods that must be available during a disruption.
285
# Note: Only one of minAvailable or maxUnavailable should be set.
286
minAvailable: null
287
# -- Maximum number of pods that can be unavailable during a disruption.
288
# Note: Only one of minAvailable or maxUnavailable should be set.
289
maxUnavailable: null
290
# -- Whether to enable automatic deletion of stale PVCs due to a scale down operation, when controller.type is 'statefulset'.
291
enableStatefulSetAutoDeletePVC: false
292
autoscaling:
293
# -- Creates a HorizontalPodAutoscaler for controller type deployment.
294
# Deprecated: Please use controller.autoscaling.horizontal instead
295
enabled: false
296
# -- The lower limit for the number of replicas to which the autoscaler can scale down.
297
minReplicas: 1
298
# -- The upper limit for the number of replicas to which the autoscaler can scale up.
299
maxReplicas: 5
300
# -- Average CPU utilization across all relevant pods, a percentage of the requested value of the resource for the pods. Setting `targetCPUUtilizationPercentage` to 0 will disable CPU scaling.
301
targetCPUUtilizationPercentage: 0
302
# -- Average Memory utilization across all relevant pods, a percentage of the requested value of the resource for the pods. Setting `targetMemoryUtilizationPercentage` to 0 will disable Memory scaling.
303
targetMemoryUtilizationPercentage: 80
304
scaleDown:
305
# -- List of policies to determine the scale-down behavior.
306
policies: []
307
# - type: Pods
308
# value: 4
309
# periodSeconds: 60
310
# -- Determines which of the provided scaling-down policies to apply if multiple are specified.
311
selectPolicy: Max
312
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling down.
313
stabilizationWindowSeconds: 300
314
scaleUp:
315
# -- List of policies to determine the scale-up behavior.
316
policies: []
317
# - type: Pods
318
# value: 4
319
# periodSeconds: 60
320
# -- Determines which of the provided scaling-up policies to apply if multiple are specified.
321
selectPolicy: Max
322
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling up.
323
stabilizationWindowSeconds: 0
324
# -- Configures the Horizontal Pod Autoscaler for the controller.
325
horizontal:
326
# -- Enables the Horizontal Pod Autoscaler for the controller.
327
enabled: false
328
# -- When true, the chart omits `spec.replicas` from the workload AND does NOT
329
# render its own HorizontalPodAutoscaler. Use this when an external controller
330
# (e.g. KEDA, a hand-written HPA, or another scaler) owns replicas for the Alloy
331
# workload. Mutually exclusive with `horizontal.enabled`. When set, all other
332
# `controller.autoscaling.horizontal.*` fields are ignored.
333
#
334
# Upgrade note: switching this from `false` to `true` on an existing release
335
# triggers a one-time single-cycle dip to 1 replica on the next `helm upgrade`
336
# (Helm removes the `replicas` field via `{"spec":{"replicas":null}}`, which
337
# Kubernetes interprets as "reset to default"). The external HPA corrects this
338
# within its next polling interval; users with `minReplicaCount > 1` are
339
# restored within ~30s under KEDA defaults. Plan upgrades accordingly.
340
externalHPA: false
341
# -- The lower limit for the number of replicas to which the autoscaler can scale down.
342
minReplicas: 1
343
# -- The upper limit for the number of replicas to which the autoscaler can scale up.
344
maxReplicas: 5
345
# -- Average CPU utilization across all relevant pods, a percentage of the requested value of the resource for the pods. Setting `targetCPUUtilizationPercentage` to 0 will disable CPU scaling.
346
targetCPUUtilizationPercentage: 0
347
# -- Average Memory utilization across all relevant pods, a percentage of the requested value of the resource for the pods. Setting `targetMemoryUtilizationPercentage` to 0 will disable Memory scaling.
348
targetMemoryUtilizationPercentage: 80
349
scaleDown:
350
# -- List of policies to determine the scale-down behavior.
351
policies: []
352
# - type: Pods
353
# value: 4
354
# periodSeconds: 60
355
# -- Determines which of the provided scaling-down policies to apply if multiple are specified.
356
selectPolicy: Max
357
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling down.
358
stabilizationWindowSeconds: 300
359
scaleUp:
360
# -- List of policies to determine the scale-up behavior.
361
policies: []
362
# - type: Pods
363
# value: 4
364
# periodSeconds: 60
365
# -- Determines which of the provided scaling-up policies to apply if multiple are specified.
366
selectPolicy: Max
367
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling up.
368
stabilizationWindowSeconds: 0
369
# -- Configures the Vertical Pod Autoscaler for the controller.
370
vertical:
371
# -- Enables the Vertical Pod Autoscaler for the controller.
372
enabled: false
373
# -- List of recommenders to use for the Vertical Pod Autoscaler.
374
# Recommenders are responsible for generating recommendation for the object.
375
# List should be empty (then the default recommender will generate the recommendation)
376
# or contain exactly one recommender.
377
recommenders: []
378
# recommenders:
379
# - name: custom-recommender-performance
380
381
# -- Configures the resource policy for the Vertical Pod Autoscaler.
382
resourcePolicy:
383
# -- Configures the container policies for the Vertical Pod Autoscaler.
384
containerPolicies:
385
- containerName: alloy
386
# -- The controlled resources for the Vertical Pod Autoscaler.
387
controlledResources:
388
- cpu
389
- memory
390
# -- The controlled values for the Vertical Pod Autoscaler. Needs to be either RequestsOnly or RequestsAndLimits.
391
controlledValues: "RequestsAndLimits"
392
# -- The maximum allowed values for the pods.
393
maxAllowed: {}
394
# cpu: 200m
395
# memory: 100Mi
396
# -- Defines the min allowed resources for the pod
397
minAllowed: {}
398
# cpu: 200m
399
# memory: 100Mi
400
# -- Configures the update policy for the Vertical Pod Autoscaler.
401
updatePolicy:
402
# -- Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
403
# minReplicas: 1
404
# -- Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
405
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
406
# updateMode: Auto
407
# -- Affinity configuration for pods.
408
affinity: {}
409
volumes:
410
# -- Extra volumes to add to the Grafana Alloy pod.
411
extra: []
412
# -- volumeClaimTemplates to add when controller.type is 'statefulset'.
413
volumeClaimTemplates: []
414
## -- Additional init containers to run.
415
## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
416
##
417
initContainers: []
418
# -- Additional containers to run alongside the Alloy container and initContainers.
419
extraContainers: []
420
networkPolicy:
421
enabled: false
422
flavor: kubernetes
423
policyTypes:
424
- Ingress
425
- Egress
426
# Default allow all traffic because Alloy is so configurable
427
# It is recommended to change this before deploying to production
428
# To disable each policyType, set value to `null`
429
ingress:
430
- {}
431
egress:
432
- {}
433
service:
434
# -- Creates a Service for the controller's pods.
435
enabled: true
436
# -- Service type
437
type: ClusterIP
438
# -- NodePort port. Only takes effect when `service.type: NodePort`
439
nodePort: 31128
440
# -- Cluster IP, can be set to None, empty "" or an IP address
441
clusterIP: ''
442
# -- Value for internal traffic policy. 'Cluster' or 'Local'
443
internalTrafficPolicy: Cluster
444
# -- Value for external traffic policy. 'Cluster' or 'Local'
445
externalTrafficPolicy: Cluster
446
annotations: {}
447
# cloud.google.com/load-balancer-type: Internal
448
serviceMonitor:
449
enabled: false
450
# -- Additional labels for the service monitor.
451
additionalLabels: {}
452
# -- Scrape interval. If not set, the Prometheus default scrape interval is used.
453
interval: ""
454
# -- MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
455
# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
456
metricRelabelings: []
457
# - action: keep
458
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
459
# sourceLabels: [__name__]
460
461
# -- Customize tls parameters for the service monitor
462
tlsConfig: {}
463
# -- RelabelConfigs to apply to samples before scraping
464
# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
465
relabelings: []
466
# - sourceLabels: [__meta_kubernetes_pod_node_name]
467
# separator: ;
468
# regex: ^(.*)$
469
# targetLabel: nodename
470
# replacement: $1
471
# action: replace
472
ingress:
473
# -- Enables ingress for Alloy (Faro port)
474
enabled: false
475
# For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
476
# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
477
# ingressClassName: nginx
478
# Values can be templated
479
annotations: {}
480
# kubernetes.io/ingress.class: nginx
481
# kubernetes.io/tls-acme: "true"
482
labels: {}
483
path: /
484
faroPort: 12347
485
# pathType is only for k8s >= 1.1=
486
pathType: Prefix
487
hosts:
488
- chart-example.local
489
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
490
extraPaths: []
491
# - path: /*
492
# backend:
493
# serviceName: ssl-redirect
494
# servicePort: use-annotation
495
## Or for k8s > 1.19
496
# - path: /*
497
# pathType: Prefix
498
# backend:
499
# service:
500
# name: ssl-redirect
501
# port:
502
# name: use-annotation
503
504
tls: []
505
# - secretName: chart-example-tls
506
# hosts:
507
# - chart-example.local
508
# -- Extra k8s manifests to deploy
509
extraObjects: []
510
# - apiVersion: v1
511
# kind: Secret
512
# metadata:
513
# name: grafana-cloud
514
# stringData:
515
# PROMETHEUS_HOST: 'https://prometheus-us-central1.grafana.net/api/prom/push'
516
# PROMETHEUS_USERNAME: '123456'
517

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.