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
# -- Extra args to pass to `alloy run`: https://grafana.com/docs/alloy/latest/reference/cli/run/
72
extraArgs: []
73
# -- Extra ports to expose on the Alloy container.
74
# If `service.type` is `NodePort`, each item may set `nodePort` to choose the Service NodePort for that port.
75
extraPorts: []
76
# - name: "faro"
77
# nodePort: 31129
78
# port: 12347
79
# targetPort: 12347
80
# protocol: "TCP"
81
# appProtocol: "h2c"
82
83
# -- Host aliases to add to the Alloy container.
84
hostAliases: []
85
# - ip: "20.21.22.23"
86
# hostnames:
87
# - "company.grafana.net"
88
89
mounts:
90
# -- Mount /var/log from the host into the container for log collection.
91
varlog: false
92
# -- Mount /var/lib/docker/containers from the host into the container for log
93
# collection.
94
dockercontainers: false
95
# -- Extra volume mounts to add into the Grafana Alloy container. Does not
96
# affect the watch container.
97
extra: []
98
# -- Security context to apply to the Grafana Alloy container.
99
securityContext: {}
100
# -- Resource requests and limits to apply to the Grafana Alloy container.
101
resources: {}
102
# -- Set lifecycle hooks for the Grafana Alloy container.
103
lifecycle: {}
104
# preStop:
105
# exec:
106
# command:
107
# - /bin/sleep
108
# - "10"
109
110
# -- Set livenessProbe for the Grafana Alloy container.
111
livenessProbe: {}
112
image:
113
# -- Grafana Alloy image registry (defaults to docker.io)
114
registry: cgr.dev
115
# -- Grafana Alloy image repository.
116
repository: chainguard-private/grafana-alloy
117
# -- (string) Grafana Alloy image tag. When empty, the Chart's appVersion is
118
# used.
119
tag: latest
120
# -- Grafana Alloy image's SHA256 digest (either in format "sha256:XYZ" or "XYZ"). When set, will override `image.tag`.
121
digest: sha256:7adcd4256712a990af3dad0eb2b78b05b20605c8eb261853493531e1eec25857
122
# -- Grafana Alloy image pull policy.
123
pullPolicy: IfNotPresent
124
# -- Optional set of image pull secrets.
125
pullSecrets: []
126
rbac:
127
# -- Whether to create RBAC resources for Alloy.
128
create: true
129
# -- If set, only create Roles and RoleBindings in the given list of namespaces, rather than ClusterRoles and
130
# ClusterRoleBindings. If not using ClusterRoles, bear in mind that Alloy will not be able to discover cluster-scoped
131
# resources such as Nodes.
132
namespaces: []
133
# -- The rules to create for the ClusterRole or Role objects.
134
rules:
135
# -- Rules required for the `discovery.kubernetes` component.
136
- apiGroups: ["", "discovery.k8s.io", "networking.k8s.io"]
137
resources: ["endpoints", "endpointslices", "ingresses", "pods", "services"]
138
verbs: ["get", "list", "watch"]
139
# -- Rules required for the `loki.source.kubernetes` component.
140
- apiGroups: [""]
141
resources: ["pods", "pods/log", "namespaces"]
142
verbs: ["get", "list", "watch"]
143
# -- Rules required for the `loki.source.podlogs` component.
144
- apiGroups: ["monitoring.grafana.com"]
145
resources: ["podlogs"]
146
verbs: ["get", "list", "watch"]
147
# -- Rules required for the `mimir.rules.kubernetes` component.
148
- apiGroups: ["monitoring.coreos.com"]
149
resources: ["prometheusrules"]
150
verbs: ["get", "list", "watch"]
151
# -- Rules required for the `mimir.alerts.kubernetes` component.
152
- apiGroups: ["monitoring.coreos.com"]
153
resources: ["alertmanagerconfigs"]
154
verbs: ["get", "list", "watch"]
155
# -- Rules required for the `prometheus.operator.*` components.
156
- apiGroups: ["monitoring.coreos.com"]
157
resources: ["podmonitors", "servicemonitors", "probes", "scrapeconfigs"]
158
verbs: ["get", "list", "watch"]
159
# -- Rules required for the `loki.source.kubernetes_events` component.
160
- apiGroups: [""]
161
resources: ["events"]
162
verbs: ["get", "list", "watch"]
163
# -- Rules required for the `remote.kubernetes.*` components.
164
- apiGroups: [""]
165
resources: ["configmaps", "secrets"]
166
verbs: ["get", "list", "watch"]
167
# -- Rules required for the `otelcol.processor.k8sattributes` component.
168
- apiGroups: ["apps", "extensions"]
169
resources: ["replicasets"]
170
verbs: ["get", "list", "watch"]
171
# -- The rules to create for the ClusterRole objects.
172
clusterRules:
173
# -- Rules required for the Nodes role in the `discovery.kubernetes` component.
174
- apiGroups: [""]
175
resources: ["nodes"]
176
verbs: ["get", "list", "watch"]
177
# -- Rules required for the `discovery.kubelet` component.
178
- apiGroups: [""]
179
resources: ["nodes/pods"]
180
verbs: ["get", "list", "watch"]
181
# -- Rules required accessing metric endpoints on the Node (e.g. Kubelet, cAdvisor, etc...).
182
- apiGroups: [""]
183
resources: ["nodes/metrics"]
184
verbs: ["get", "list", "watch"]
185
# -- Rules required for accessing metrics endpoint.
186
- nonResourceURLs: ["/metrics"]
187
verbs: ["get"]
188
serviceAccount:
189
# -- Whether to create a service account for the Grafana Alloy deployment.
190
create: true
191
# -- Additional labels to add to the created service account.
192
additionalLabels: {}
193
# -- Annotations to add to the created service account.
194
annotations: {}
195
# -- The name of the existing service account to use when
196
# serviceAccount.create is false.
197
name: null
198
# Whether the Alloy pod should automatically mount the service account token.
199
automountServiceAccountToken: true
200
# Options for the extra controller used for config reloading.
201
configReloader:
202
# -- Enables automatically reloading when the Alloy config changes.
203
enabled: true
204
image:
205
# -- Config reloader image registry (defaults to docker.io)
206
registry: cgr.dev
207
# -- Repository to get config reloader image from.
208
repository: chainguard-private/prometheus-config-reloader
209
# -- Tag of image to use for config reloading.
210
tag: latest
211
# -- SHA256 digest of image to use for config reloading (either in format "sha256:XYZ" or "XYZ"). When set, will override `configReloader.image.tag`
212
digest: sha256:31e1e672a0f85742826d390870b4f8e522f174306a29a5053a1980a0244afc2a
213
# -- Config reloader image pull policy.
214
pullPolicy: IfNotPresent
215
# -- Override the args passed to the container.
216
customArgs: []
217
# -- Resource requests and limits to apply to the config reloader container.
218
resources:
219
requests:
220
cpu: "10m"
221
memory: "50Mi"
222
# -- Security context to apply to the Grafana configReloader container.
223
securityContext: {}
224
controller:
225
# -- Type of controller to use for deploying Grafana Alloy in the cluster.
226
# Must be one of 'daemonset', 'deployment', or 'statefulset'.
227
type: 'daemonset'
228
# -- Number of pods to deploy. Ignored when controller.type is 'daemonset'.
229
replicas: 1
230
# -- Extra labels to add to the controller.
231
extraLabels: {}
232
# -- Annotations to add to controller.
233
extraAnnotations: {}
234
# -- Whether to deploy pods in parallel. Only used when controller.type is
235
# 'statefulset'.
236
parallelRollout: true
237
# -- How many additional seconds to wait before considering a pod ready.
238
minReadySeconds: 10
239
# -- Configures Pods to use the host network. When set to true, the ports that will be used must be specified.
240
hostNetwork: false
241
# -- Configures Pods to use the host PID namespace.
242
hostPID: false
243
# -- Configures the DNS policy for the pod. https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
244
dnsPolicy: ClusterFirst
245
# -- Termination grace period in seconds for the Grafana Alloy pods.
246
# The default value used by Kubernetes if unspecifed is 30 seconds.
247
terminationGracePeriodSeconds: null
248
# -- 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.
249
revisionHistoryLimit: 10
250
# -- Update strategy for updating deployed Pods.
251
updateStrategy: {}
252
# -- nodeSelector to apply to Grafana Alloy pods.
253
nodeSelector: {}
254
# -- Tolerations to apply to Grafana Alloy pods.
255
tolerations: []
256
# -- Topology Spread Constraints to apply to Grafana Alloy pods.
257
topologySpreadConstraints: []
258
# -- priorityClassName to apply to Grafana Alloy pods.
259
priorityClassName: ''
260
# -- Extra pod annotations to add.
261
podAnnotations: {}
262
# -- Extra pod labels to add.
263
podLabels: {}
264
# -- PodDisruptionBudget configuration.
265
podDisruptionBudget:
266
# -- Whether to create a PodDisruptionBudget for the controller.
267
enabled: false
268
# -- Minimum number of pods that must be available during a disruption.
269
# Note: Only one of minAvailable or maxUnavailable should be set.
270
minAvailable: null
271
# -- Maximum number of pods that can be unavailable during a disruption.
272
# Note: Only one of minAvailable or maxUnavailable should be set.
273
maxUnavailable: null
274
# -- Whether to enable automatic deletion of stale PVCs due to a scale down operation, when controller.type is 'statefulset'.
275
enableStatefulSetAutoDeletePVC: false
276
autoscaling:
277
# -- Creates a HorizontalPodAutoscaler for controller type deployment.
278
# Deprecated: Please use controller.autoscaling.horizontal instead
279
enabled: false
280
# -- The lower limit for the number of replicas to which the autoscaler can scale down.
281
minReplicas: 1
282
# -- The upper limit for the number of replicas to which the autoscaler can scale up.
283
maxReplicas: 5
284
# -- 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.
285
targetCPUUtilizationPercentage: 0
286
# -- 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.
287
targetMemoryUtilizationPercentage: 80
288
scaleDown:
289
# -- List of policies to determine the scale-down behavior.
290
policies: []
291
# - type: Pods
292
# value: 4
293
# periodSeconds: 60
294
# -- Determines which of the provided scaling-down policies to apply if multiple are specified.
295
selectPolicy: Max
296
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling down.
297
stabilizationWindowSeconds: 300
298
scaleUp:
299
# -- List of policies to determine the scale-up behavior.
300
policies: []
301
# - type: Pods
302
# value: 4
303
# periodSeconds: 60
304
# -- Determines which of the provided scaling-up policies to apply if multiple are specified.
305
selectPolicy: Max
306
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling up.
307
stabilizationWindowSeconds: 0
308
# -- Configures the Horizontal Pod Autoscaler for the controller.
309
horizontal:
310
# -- Enables the Horizontal Pod Autoscaler for the controller.
311
enabled: false
312
# -- The lower limit for the number of replicas to which the autoscaler can scale down.
313
minReplicas: 1
314
# -- The upper limit for the number of replicas to which the autoscaler can scale up.
315
maxReplicas: 5
316
# -- 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.
317
targetCPUUtilizationPercentage: 0
318
# -- 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.
319
targetMemoryUtilizationPercentage: 80
320
scaleDown:
321
# -- List of policies to determine the scale-down behavior.
322
policies: []
323
# - type: Pods
324
# value: 4
325
# periodSeconds: 60
326
# -- Determines which of the provided scaling-down policies to apply if multiple are specified.
327
selectPolicy: Max
328
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling down.
329
stabilizationWindowSeconds: 300
330
scaleUp:
331
# -- List of policies to determine the scale-up behavior.
332
policies: []
333
# - type: Pods
334
# value: 4
335
# periodSeconds: 60
336
# -- Determines which of the provided scaling-up policies to apply if multiple are specified.
337
selectPolicy: Max
338
# -- The duration that the autoscaling mechanism should look back on to make decisions about scaling up.
339
stabilizationWindowSeconds: 0
340
# -- Configures the Vertical Pod Autoscaler for the controller.
341
vertical:
342
# -- Enables the Vertical Pod Autoscaler for the controller.
343
enabled: false
344
# -- List of recommenders to use for the Vertical Pod Autoscaler.
345
# Recommenders are responsible for generating recommendation for the object.
346
# List should be empty (then the default recommender will generate the recommendation)
347
# or contain exactly one recommender.
348
recommenders: []
349
# recommenders:
350
# - name: custom-recommender-performance
351
352
# -- Configures the resource policy for the Vertical Pod Autoscaler.
353
resourcePolicy:
354
# -- Configures the container policies for the Vertical Pod Autoscaler.
355
containerPolicies:
356
- containerName: alloy
357
# -- The controlled resources for the Vertical Pod Autoscaler.
358
controlledResources:
359
- cpu
360
- memory
361
# -- The controlled values for the Vertical Pod Autoscaler. Needs to be either RequestsOnly or RequestsAndLimits.
362
controlledValues: "RequestsAndLimits"
363
# -- The maximum allowed values for the pods.
364
maxAllowed: {}
365
# cpu: 200m
366
# memory: 100Mi
367
# -- Defines the min allowed resources for the pod
368
minAllowed: {}
369
# cpu: 200m
370
# memory: 100Mi
371
# -- Configures the update policy for the Vertical Pod Autoscaler.
372
updatePolicy:
373
# -- Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
374
# minReplicas: 1
375
# -- Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
376
# are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
377
# updateMode: Auto
378
# -- Affinity configuration for pods.
379
affinity: {}
380
volumes:
381
# -- Extra volumes to add to the Grafana Alloy pod.
382
extra: []
383
# -- volumeClaimTemplates to add when controller.type is 'statefulset'.
384
volumeClaimTemplates: []
385
## -- Additional init containers to run.
386
## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
387
##
388
initContainers: []
389
# -- Additional containers to run alongside the Alloy container and initContainers.
390
extraContainers: []
391
networkPolicy:
392
enabled: false
393
flavor: kubernetes
394
policyTypes:
395
- Ingress
396
- Egress
397
# Default allow all traffic because Alloy is so configurable
398
# It is recommended to change this before deploying to production
399
# To disable each policyType, set value to `null`
400
ingress:
401
- {}
402
egress:
403
- {}
404
service:
405
# -- Creates a Service for the controller's pods.
406
enabled: true
407
# -- Service type
408
type: ClusterIP
409
# -- NodePort port. Only takes effect when `service.type: NodePort`
410
nodePort: 31128
411
# -- Cluster IP, can be set to None, empty "" or an IP address
412
clusterIP: ''
413
# -- Value for internal traffic policy. 'Cluster' or 'Local'
414
internalTrafficPolicy: Cluster
415
annotations: {}
416
# cloud.google.com/load-balancer-type: Internal
417
serviceMonitor:
418
enabled: false
419
# -- Additional labels for the service monitor.
420
additionalLabels: {}
421
# -- Scrape interval. If not set, the Prometheus default scrape interval is used.
422
interval: ""
423
# -- MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
424
# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
425
metricRelabelings: []
426
# - action: keep
427
# regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
428
# sourceLabels: [__name__]
429
430
# -- Customize tls parameters for the service monitor
431
tlsConfig: {}
432
# -- RelabelConfigs to apply to samples before scraping
433
# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
434
relabelings: []
435
# - sourceLabels: [__meta_kubernetes_pod_node_name]
436
# separator: ;
437
# regex: ^(.*)$
438
# targetLabel: nodename
439
# replacement: $1
440
# action: replace
441
ingress:
442
# -- Enables ingress for Alloy (Faro port)
443
enabled: false
444
# For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
445
# See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
446
# ingressClassName: nginx
447
# Values can be templated
448
annotations: {}
449
# kubernetes.io/ingress.class: nginx
450
# kubernetes.io/tls-acme: "true"
451
labels: {}
452
path: /
453
faroPort: 12347
454
# pathType is only for k8s >= 1.1=
455
pathType: Prefix
456
hosts:
457
- chart-example.local
458
## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
459
extraPaths: []
460
# - path: /*
461
# backend:
462
# serviceName: ssl-redirect
463
# servicePort: use-annotation
464
## Or for k8s > 1.19
465
# - path: /*
466
# pathType: Prefix
467
# backend:
468
# service:
469
# name: ssl-redirect
470
# port:
471
# name: use-annotation
472
473
tls: []
474
# - secretName: chart-example-tls
475
# hosts:
476
# - chart-example.local
477
# -- Extra k8s manifests to deploy
478
extraObjects: []
479
# - apiVersion: v1
480
# kind: Secret
481
# metadata:
482
# name: grafana-cloud
483
# stringData:
484
# PROMETHEUS_HOST: 'https://prometheus-us-central1.grafana.net/api/prom/push'
485
# PROMETHEUS_USERNAME: '123456'
486

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.