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:2441198134f5f5fa15f994509128b024555cdbc3edb1c0ff88d8a39810c81516
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:31fa527e880df1c7f8b4f395397527c45889ff1435a73d77f67e8811d7da0599
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
controller:
231
# -- Type of controller to use for deploying Grafana Alloy in the cluster.
232
# Must be one of 'daemonset', 'deployment', or 'statefulset'.
233
type: 'daemonset'
234
# -- Number of pods to deploy. Ignored when controller.type is 'daemonset'.
235
replicas: 1
236
# -- Extra labels to add to the controller.
237
extraLabels: {}
238
# -- Annotations to add to controller.
239
extraAnnotations: {}
240
# -- Whether to deploy pods in parallel. Only used when controller.type is
241
# 'statefulset'.
242
parallelRollout: true
243
# -- How many additional seconds to wait before considering a pod ready.
244
minReadySeconds: 10
245
# -- Configures Pods to use the host network. When set to true, the ports that will be used must be specified.
246
hostNetwork: false
247
# -- Configures Pods to use the host PID namespace.
248
hostPID: false
249
# -- Configures the DNS policy for the pod. https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
250
dnsPolicy: ClusterFirst
251
# -- Termination grace period in seconds for the Grafana Alloy pods.
252
# The default value used by Kubernetes if unspecifed is 30 seconds.
253
terminationGracePeriodSeconds: null
254
# -- 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.
255
revisionHistoryLimit: 10
256
# -- Update strategy for updating deployed Pods.
257
updateStrategy: {}
258
# -- nodeSelector to apply to Grafana Alloy pods.
259
nodeSelector: {}
260
# -- Tolerations to apply to Grafana Alloy pods.
261
tolerations: []
262
# -- Topology Spread Constraints to apply to Grafana Alloy pods.
263
topologySpreadConstraints: []
264
# -- priorityClassName to apply to Grafana Alloy pods.
265
priorityClassName: ''
266
# -- Extra pod annotations to add.
267
podAnnotations: {}
268
# -- Extra pod labels to add.
269
podLabels: {}
270
# -- PodDisruptionBudget configuration.
271
podDisruptionBudget:
272
# -- Whether to create a PodDisruptionBudget for the controller.
273
enabled: false
274
# -- Minimum number of pods that must be available during a disruption.
275
# Note: Only one of minAvailable or maxUnavailable should be set.
276
minAvailable: null
277
# -- Maximum number of pods that can be unavailable during a disruption.
278
# Note: Only one of minAvailable or maxUnavailable should be set.
279
maxUnavailable: null
280
# -- Whether to enable automatic deletion of stale PVCs due to a scale down operation, when controller.type is 'statefulset'.
281
enableStatefulSetAutoDeletePVC: false
282
autoscaling:
283
# -- Creates a HorizontalPodAutoscaler for controller type deployment.
284
# Deprecated: Please use controller.autoscaling.horizontal instead
285
enabled: false
286
# -- The lower limit for the number of replicas to which the autoscaler can scale down.
287
minReplicas: 1
288
# -- The upper limit for the number of replicas to which the autoscaler can scale up.
289
maxReplicas: 5
290
# -- 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.
291
targetCPUUtilizationPercentage: 0
292
# -- 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.
293
targetMemoryUtilizationPercentage: 80
294
scaleDown:
295
# -- List of policies to determine the scale-down behavior.
296
policies: []
297
# - type: Pods
298
# value: 4
299
# periodSeconds: 60
300
# -- Determines which of the provided scaling-down policies to apply if multiple are specified.
301
selectPolicy: Max
302
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling down.
303
stabilizationWindowSeconds: 300
304
scaleUp:
305
# -- List of policies to determine the scale-up behavior.
306
policies: []
307
# - type: Pods
308
# value: 4
309
# periodSeconds: 60
310
# -- Determines which of the provided scaling-up 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 up.
313
stabilizationWindowSeconds: 0
314
# -- Configures the Horizontal Pod Autoscaler for the controller.
315
horizontal:
316
# -- Enables the Horizontal Pod Autoscaler for the controller.
317
enabled: false
318
# -- When true, the chart omits `spec.replicas` from the workload AND does NOT
319
# render its own HorizontalPodAutoscaler. Use this when an external controller
320
# (e.g. KEDA, a hand-written HPA, or another scaler) owns replicas for the Alloy
321
# workload. Mutually exclusive with `horizontal.enabled`. When set, all other
322
# `controller.autoscaling.horizontal.*` fields are ignored.
323
#
324
# Upgrade note: switching this from `false` to `true` on an existing release
325
# triggers a one-time single-cycle dip to 1 replica on the next `helm upgrade`
326
# (Helm removes the `replicas` field via `{"spec":{"replicas":null}}`, which
327
# Kubernetes interprets as "reset to default"). The external HPA corrects this
328
# within its next polling interval; users with `minReplicaCount > 1` are
329
# restored within ~30s under KEDA defaults. Plan upgrades accordingly.
330
externalHPA: false
331
# -- The lower limit for the number of replicas to which the autoscaler can scale down.
332
minReplicas: 1
333
# -- The upper limit for the number of replicas to which the autoscaler can scale up.
334
maxReplicas: 5
335
# -- 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.
336
targetCPUUtilizationPercentage: 0
337
# -- 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.
338
targetMemoryUtilizationPercentage: 80
339
scaleDown:
340
# -- List of policies to determine the scale-down behavior.
341
policies: []
342
# - type: Pods
343
# value: 4
344
# periodSeconds: 60
345
# -- Determines which of the provided scaling-down policies to apply if multiple are specified.
346
selectPolicy: Max
347
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling down.
348
stabilizationWindowSeconds: 300
349
scaleUp:
350
# -- List of policies to determine the scale-up behavior.
351
policies: []
352
# - type: Pods
353
# value: 4
354
# periodSeconds: 60
355
# -- Determines which of the provided scaling-up 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 up.
358
stabilizationWindowSeconds: 0
359
# -- Configures the Vertical Pod Autoscaler for the controller.
360
vertical:
361
# -- Enables the Vertical Pod Autoscaler for the controller.
362
enabled: false
363
# -- List of recommenders to use for the Vertical Pod Autoscaler.
364
# Recommenders are responsible for generating recommendation for the object.
365
# List should be empty (then the default recommender will generate the recommendation)
366
# or contain exactly one recommender.
367
recommenders: []
368
# recommenders:
369
# - name: custom-recommender-performance
370
371
# -- Configures the resource policy for the Vertical Pod Autoscaler.
372
resourcePolicy:
373
# -- Configures the container policies for the Vertical Pod Autoscaler.
374
containerPolicies:
375
- containerName: alloy
376
# -- The controlled resources for the Vertical Pod Autoscaler.
377
controlledResources:
378
- cpu
379
- memory
380
# -- The controlled values for the Vertical Pod Autoscaler. Needs to be either RequestsOnly or RequestsAndLimits.
381
controlledValues: "RequestsAndLimits"
382
# -- The maximum allowed values for the pods.
383
maxAllowed: {}
384
# cpu: 200m
385
# memory: 100Mi
386
# -- Defines the min allowed resources for the pod
387
minAllowed: {}
388
# cpu: 200m
389
# memory: 100Mi
390
# -- Configures the update policy for the Vertical Pod Autoscaler.
391
updatePolicy:
392
# -- Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
393
# minReplicas: 1
394
# -- Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
395
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
396
# updateMode: Auto
397
# -- Affinity configuration for pods.
398
affinity: {}
399
volumes:
400
# -- Extra volumes to add to the Grafana Alloy pod.
401
extra: []
402
# -- volumeClaimTemplates to add when controller.type is 'statefulset'.
403
volumeClaimTemplates: []
404
## -- Additional init containers to run.
405
## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
406
##
407
initContainers: []
408
# -- Additional containers to run alongside the Alloy container and initContainers.
409
extraContainers: []
410
networkPolicy:
411
enabled: false
412
flavor: kubernetes
413
policyTypes:
414
- Ingress
415
- Egress
416
# Default allow all traffic because Alloy is so configurable
417
# It is recommended to change this before deploying to production
418
# To disable each policyType, set value to `null`
419
ingress:
420
- {}
421
egress:
422
- {}
423
service:
424
# -- Creates a Service for the controller's pods.
425
enabled: true
426
# -- Service type
427
type: ClusterIP
428
# -- NodePort port. Only takes effect when `service.type: NodePort`
429
nodePort: 31128
430
# -- Cluster IP, can be set to None, empty "" or an IP address
431
clusterIP: ''
432
# -- Value for internal traffic policy. 'Cluster' or 'Local'
433
internalTrafficPolicy: Cluster
434
# -- Value for external traffic policy. 'Cluster' or 'Local'
435
externalTrafficPolicy: Cluster
436
annotations: {}
437
# cloud.google.com/load-balancer-type: Internal
438
serviceMonitor:
439
enabled: false
440
# -- Additional labels for the service monitor.
441
additionalLabels: {}
442
# -- Scrape interval. If not set, the Prometheus default scrape interval is used.
443
interval: ""
444
# -- MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
445
# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
446
metricRelabelings: []
447
# - action: keep
448
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
449
# sourceLabels: [__name__]
450
451
# -- Customize tls parameters for the service monitor
452
tlsConfig: {}
453
# -- RelabelConfigs to apply to samples before scraping
454
# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
455
relabelings: []
456
# - sourceLabels: [__meta_kubernetes_pod_node_name]
457
# separator: ;
458
# regex: ^(.*)$
459
# targetLabel: nodename
460
# replacement: $1
461
# action: replace
462
ingress:
463
# -- Enables ingress for Alloy (Faro port)
464
enabled: false
465
# For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
466
# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
467
# ingressClassName: nginx
468
# Values can be templated
469
annotations: {}
470
# kubernetes.io/ingress.class: nginx
471
# kubernetes.io/tls-acme: "true"
472
labels: {}
473
path: /
474
faroPort: 12347
475
# pathType is only for k8s >= 1.1=
476
pathType: Prefix
477
hosts:
478
- chart-example.local
479
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
480
extraPaths: []
481
# - path: /*
482
# backend:
483
# serviceName: ssl-redirect
484
# servicePort: use-annotation
485
## Or for k8s > 1.19
486
# - path: /*
487
# pathType: Prefix
488
# backend:
489
# service:
490
# name: ssl-redirect
491
# port:
492
# name: use-annotation
493
494
tls: []
495
# - secretName: chart-example-tls
496
# hosts:
497
# - chart-example.local
498
# -- Extra k8s manifests to deploy
499
extraObjects: []
500
# - apiVersion: v1
501
# kind: Secret
502
# metadata:
503
# name: grafana-cloud
504
# stringData:
505
# PROMETHEUS_HOST: 'https://prometheus-us-central1.grafana.net/api/prom/push'
506
# PROMETHEUS_USERNAME: '123456'
507

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.