1# -- Overrides the chart's name. Used to change the infix in the resource names.
3# -- Overrides the chart's namespace.
5# -- Overrides the chart's computed fullname. Used to change the full prefix of
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`
12 # -- Global image registry to use if it needs to be overridden for some specific use cases (e.g local registries, custom images, ...)
14 # -- Optional set of global image pull secrets.
16 # -- Global image pull policy to apply to all containers. Overrides `image.pullPolicy` and `configReloader.image.pullPolicy`.
18 # -- Security context to apply to the Grafana Alloy pod.
19 podSecurityContext: {}
21 # -- Whether to install CRDs for monitoring.
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.
28 # -- Create a new ConfigMap for the config file.
30 # -- Content to assign to the new ConfigMap. This is passed into `tpl` allowing for templating from values.
32 # -- Name of existing ConfigMap to use. Used when create is false.
34 # -- Key in ConfigMap to get config from.
37 # -- Deploy Alloy in a cluster to allow for load distribution.
39 # -- Name for the Alloy cluster. Used for differentiating between clusters.
41 # -- Name for the port used for clustering, useful if running inside an Istio Mesh
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
54 # -- Port to listen for traffic on.
56 # -- Scheme is needed for readiness probes. If enabling tls in your configs, set to "HTTPS"
58 # -- Initial delay for readiness probe.
59 initialDelaySeconds: 10
60 # -- Timeout for readiness probe.
62 # -- Base path where the UI is exposed.
64 # -- Enables sending Grafana Labs anonymous usage stats to help improve Grafana
67 # -- Extra environment variables to pass to the Alloy container.
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
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.
77 # -- Extra args to pass to `alloy run`: https://grafana.com/docs/alloy/latest/reference/cli/run/
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.
89 # -- Host aliases to add to the Alloy container.
93 # - "company.grafana.net"
96 # -- Mount /var/log from the host into the container for log collection.
98 # -- Mount /var/lib/docker/containers from the host into the container for log
100 dockercontainers: false
101 # -- Extra volume mounts to add into the Grafana Alloy container. Does not
102 # affect the watch container.
104 # -- Security context to apply to the Grafana Alloy container.
106 # -- Resource requests and limits to apply to the Grafana Alloy container.
108 # -- Resize policy for the Grafana Alloy container. Controls whether an
109 # in-place resize of CPU or memory restarts the container.
111 # - resourceName: cpu
112 # restartPolicy: NotRequired
113 # - resourceName: memory
114 # restartPolicy: RestartContainer
116 # -- Set lifecycle hooks for the Grafana Alloy container.
124 # -- Set livenessProbe for the Grafana Alloy container.
127 # -- Grafana Alloy image registry (defaults to docker.io)
129 # -- Grafana Alloy image repository.
130 repository: chainguard-private/grafana-alloy
131 # -- (string) Grafana Alloy image tag. When empty, the Chart's appVersion is
134 # -- Use a distroless version of Grafana Alloy image (experimental).
136 # Appends "-distroless" to the image tag (or the chart's appVersion when tag is empty). Ignored when image.digest is set.
138 # -- Grafana Alloy image's SHA256 digest (either in format "sha256:XYZ" or "XYZ"). When set, will override `image.tag`.
139 digest: sha256:fe42f5fde9c5fc593a0abd1950acd7c933bfa0ff443e159a30503332ead29bdc
140 # -- Grafana Alloy image pull policy.
141 pullPolicy: IfNotPresent
142 # -- Optional set of image pull secrets.
145 # -- Whether to create RBAC resources for Alloy.
147 # -- If set, only create Roles and RoleBindings in the given list of namespaces, rather than ClusterRoles and
148 # ClusterRoleBindings. If not using ClusterRoles, bear in mind that Alloy will not be able to discover cluster-scoped
149 # resources such as Nodes.
151 # -- The rules to create for the ClusterRole or Role objects.
153 # -- Rules required for the `discovery.kubernetes` component.
154 - apiGroups: ["", "discovery.k8s.io", "networking.k8s.io"]
155 resources: ["endpoints", "endpointslices", "ingresses", "pods", "services"]
156 verbs: ["get", "list", "watch"]
157 # -- Rules required for the `loki.source.kubernetes` component.
159 resources: ["pods", "pods/log", "namespaces"]
160 verbs: ["get", "list", "watch"]
161 # -- Rules required for the `loki.source.podlogs` component.
162 - apiGroups: ["monitoring.grafana.com"]
163 resources: ["podlogs"]
164 verbs: ["get", "list", "watch"]
165 # -- Rules required for the `mimir.rules.kubernetes` component.
166 - apiGroups: ["monitoring.coreos.com"]
167 resources: ["prometheusrules"]
168 verbs: ["get", "list", "watch"]
169 # -- Rules required for the `mimir.alerts.kubernetes` component.
170 - apiGroups: ["monitoring.coreos.com"]
171 resources: ["alertmanagerconfigs"]
172 verbs: ["get", "list", "watch"]
173 # -- Rules required for the `prometheus.operator.*` components.
174 - apiGroups: ["monitoring.coreos.com"]
175 resources: ["podmonitors", "servicemonitors", "probes", "scrapeconfigs"]
176 verbs: ["get", "list", "watch"]
177 # -- Rules required for the `loki.source.kubernetes_events` component.
179 resources: ["events"]
180 verbs: ["get", "list", "watch"]
181 # -- Rules required for the `remote.kubernetes.*` components.
183 resources: ["configmaps", "secrets"]
184 verbs: ["get", "list", "watch"]
185 # -- Rules required for the `otelcol.processor.k8sattributes` component.
186 - apiGroups: ["apps", "extensions"]
187 resources: ["replicasets"]
188 verbs: ["get", "list", "watch"]
189 # -- The rules to create for the ClusterRole objects.
191 # -- Rules required for the Nodes role in the `discovery.kubernetes` component.
194 verbs: ["get", "list", "watch"]
195 # -- Rules required for the `discovery.kubelet` component.
197 resources: ["nodes/pods"]
198 verbs: ["get", "list", "watch"]
199 # -- Rules required accessing metric endpoints on the Node (e.g. Kubelet, cAdvisor, etc...).
201 resources: ["nodes/metrics"]
202 verbs: ["get", "list", "watch"]
203 # -- Rules required for accessing metrics endpoint.
204 - nonResourceURLs: ["/metrics"]
207 # -- Whether to create a service account for the Grafana Alloy deployment.
209 # -- Additional labels to add to the created service account.
211 # -- Annotations to add to the created service account.
213 # -- The name of the existing service account to use when
214 # serviceAccount.create is false.
216 # Whether the Alloy pod should automatically mount the service account token.
217 automountServiceAccountToken: true
218# Options for the extra controller used for config reloading.
220 # -- Enables automatically reloading when the Alloy config changes.
223 # -- Config reloader image registry (defaults to docker.io)
225 # -- Repository to get config reloader image from.
226 repository: chainguard-private/prometheus-config-reloader
227 # -- Tag of image to use for config reloading.
229 # -- SHA256 digest of image to use for config reloading (either in format "sha256:XYZ" or "XYZ"). When set, will override `configReloader.image.tag`
230 digest: sha256:b87ceb164a471df075461caab607dcd356566ec214e644ef32eb33659f1fbacf
231 # -- Config reloader image pull policy.
232 pullPolicy: IfNotPresent
233 # -- Override the args passed to the container.
235 # -- Resource requests and limits to apply to the config reloader container.
240 # -- Resize policy for the config reloader container. Controls whether an
241 # in-place resize of CPU or memory restarts the container.
243 # -- Security context to apply to the Grafana configReloader container.
245 allowPrivilegeEscalation: false
246 readOnlyRootFilesystem: true
256 # -- Type of controller to use for deploying Grafana Alloy in the cluster.
257 # Must be one of 'daemonset', 'deployment', or 'statefulset'.
259 # -- Number of pods to deploy. Ignored when controller.type is 'daemonset'.
261 # -- Extra labels to add to the controller.
263 # -- Annotations to add to controller.
265 # -- Whether to deploy pods in parallel. Only used when controller.type is
267 parallelRollout: true
268 # -- How many additional seconds to wait before considering a pod ready.
270 # -- Configures Pods to use the host network. When set to true, the ports that will be used must be specified.
272 # -- Configures Pods to use the host PID namespace.
274 # -- Configures the DNS policy for the pod. https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-s-dns-policy
275 dnsPolicy: ClusterFirst
276 # -- Configures the DNS config for the pod. https://kubernetes.io/docs/concepts/services-networking/dns-pod-service/#pod-dns-config
278 # -- Termination grace period in seconds for the Grafana Alloy pods.
279 # The default value used by Kubernetes if unspecifed is 30 seconds.
280 terminationGracePeriodSeconds: null
281 # -- 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.
282 revisionHistoryLimit: 10
283 # -- Update strategy for updating deployed Pods.
285 # -- nodeSelector to apply to Grafana Alloy pods.
287 # -- Tolerations to apply to Grafana Alloy pods.
289 # -- Topology Spread Constraints to apply to Grafana Alloy pods.
290 topologySpreadConstraints: []
291 # -- priorityClassName to apply to Grafana Alloy pods.
292 priorityClassName: ''
293 # -- Extra pod annotations to add.
295 # -- Extra pod labels to add.
297 # -- PodDisruptionBudget configuration.
299 # -- Whether to create a PodDisruptionBudget for the controller.
301 # -- Minimum number of pods that must be available during a disruption.
302 # Note: Only one of minAvailable or maxUnavailable should be set.
304 # -- Maximum number of pods that can be unavailable during a disruption.
305 # Note: Only one of minAvailable or maxUnavailable should be set.
307 # -- Whether to enable automatic deletion of stale PVCs due to a scale down operation, when controller.type is 'statefulset'.
308 enableStatefulSetAutoDeletePVC: false
310 # -- Creates a HorizontalPodAutoscaler for controller type deployment.
311 # Deprecated: Please use controller.autoscaling.horizontal instead
313 # -- The lower limit for the number of replicas to which the autoscaler can scale down.
315 # -- The upper limit for the number of replicas to which the autoscaler can scale up.
317 # -- 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.
318 targetCPUUtilizationPercentage: 0
319 # -- 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.
320 targetMemoryUtilizationPercentage: 80
322 # -- List of policies to determine the scale-down behavior.
327 # -- Determines which of the provided scaling-down policies to apply if multiple are specified.
329 # -- The duration that the autoscaling mechanism should look back on to make decisions about scaling down.
330 stabilizationWindowSeconds: 300
332 # -- List of policies to determine the scale-up behavior.
337 # -- Determines which of the provided scaling-up policies to apply if multiple are specified.
339 # -- The duration that the autoscaling mechanism should look back on to make decisions about scaling up.
340 stabilizationWindowSeconds: 0
341 # -- Configures the Horizontal Pod Autoscaler for the controller.
343 # -- Enables the Horizontal Pod Autoscaler for the controller.
345 # -- When true, the chart omits `spec.replicas` from the workload AND does NOT
346 # render its own HorizontalPodAutoscaler. Use this when an external controller
347 # (e.g. KEDA, a hand-written HPA, or another scaler) owns replicas for the Alloy
348 # workload. Mutually exclusive with `horizontal.enabled`. When set, all other
349 # `controller.autoscaling.horizontal.*` fields are ignored.
351 # Upgrade note: switching this from `false` to `true` on an existing release
352 # triggers a one-time single-cycle dip to 1 replica on the next `helm upgrade`
353 # (Helm removes the `replicas` field via `{"spec":{"replicas":null}}`, which
354 # Kubernetes interprets as "reset to default"). The external HPA corrects this
355 # within its next polling interval; users with `minReplicaCount > 1` are
356 # restored within ~30s under KEDA defaults. Plan upgrades accordingly.
358 # -- The lower limit for the number of replicas to which the autoscaler can scale down.
360 # -- The upper limit for the number of replicas to which the autoscaler can scale up.
362 # -- 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.
363 targetCPUUtilizationPercentage: 0
364 # -- 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.
365 targetMemoryUtilizationPercentage: 80
367 # -- List of policies to determine the scale-down behavior.
372 # -- Determines which of the provided scaling-down policies to apply if multiple are specified.
374 # -- The duration that the autoscaling mechanism should look back on to make decisions about scaling down.
375 stabilizationWindowSeconds: 300
377 # -- List of policies to determine the scale-up behavior.
382 # -- Determines which of the provided scaling-up policies to apply if multiple are specified.
384 # -- The duration that the autoscaling mechanism should look back on to make decisions about scaling up.
385 stabilizationWindowSeconds: 0
386 # -- Configures the Vertical Pod Autoscaler for the controller.
388 # -- Enables the Vertical Pod Autoscaler for the controller.
390 # -- List of recommenders to use for the Vertical Pod Autoscaler.
391 # Recommenders are responsible for generating recommendation for the object.
392 # List should be empty (then the default recommender will generate the recommendation)
393 # or contain exactly one recommender.
396 # - name: custom-recommender-performance
398 # -- Configures the resource policy for the Vertical Pod Autoscaler.
400 # -- Configures the container policies for the Vertical Pod Autoscaler.
402 - containerName: alloy
403 # -- The controlled resources for the Vertical Pod Autoscaler.
407 # -- The controlled values for the Vertical Pod Autoscaler. Needs to be either RequestsOnly or RequestsAndLimits.
408 controlledValues: "RequestsAndLimits"
409 # -- The maximum allowed values for the pods.
413 # -- Defines the min allowed resources for the pod
417 # -- Configures the update policy for the Vertical Pod Autoscaler.
419 # -- Specifies minimal number of replicas which need to be alive for VPA Updater to attempt pod eviction
421 # -- Specifies whether recommended updates are applied when a Pod is started and whether recommended updates
422 # are applied during the life of a Pod. Possible values are "Off", "Initial", "Recreate", and "Auto".
424 # -- Affinity configuration for pods.
427 # -- Extra volumes to add to the Grafana Alloy pod.
429 # -- volumeClaimTemplates to add when controller.type is 'statefulset'.
430 volumeClaimTemplates: []
431 ## -- Additional init containers to run.
432 ## ref: https://kubernetes.io/docs/concepts/workloads/pods/init-containers/
435 # -- Additional containers to run alongside the Alloy container and initContainers.
443 # Default allow all traffic because Alloy is so configurable
444 # It is recommended to change this before deploying to production
445 # To disable each policyType, set value to `null`
451 # -- Creates a Service for the controller's pods.
455 # -- NodePort port. Only takes effect when `service.type: NodePort`
457 # -- Cluster IP, can be set to None, empty "" or an IP address
459 # -- Value for internal traffic policy. 'Cluster' or 'Local'
460 internalTrafficPolicy: Cluster
461 # -- Value for external traffic policy. 'Cluster' or 'Local'
462 externalTrafficPolicy: Cluster
463 # -- Value for traffic distribution. 'PreferSameNode' or 'PreferSameZone' (k8s >= 1.34)
464 trafficDistribution: ""
466 # cloud.google.com/load-balancer-type: Internal
469 # -- Additional labels for the service monitor.
471 # -- Scrape interval. If not set, the Prometheus default scrape interval is used.
473 # -- MetricRelabelConfigs to apply to samples after scraping, but before ingestion.
474 # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
475 metricRelabelings: []
477 # regex: 'kube_(daemonset|deployment|pod|namespace|node|statefulset).+'
478 # sourceLabels: [__name__]
480 # -- Customize tls parameters for the service monitor
482 # -- RelabelConfigs to apply to samples before scraping
483 # ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/api.md#relabelconfig
485 # - sourceLabels: [__meta_kubernetes_pod_node_name]
488 # targetLabel: nodename
492 # -- Enables ingress for Alloy (Faro port)
494 # For Kubernetes >= 1.18 you should specify the ingress-controller via the field ingressClassName
495 # See https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/#specifying-the-class-of-an-ingress
496 # ingressClassName: nginx
497 # Values can be templated
499 # kubernetes.io/ingress.class: nginx
500 # kubernetes.io/tls-acme: "true"
504 # pathType is only for k8s >= 1.1=
507 - chart-example.local
508 ## Extra paths to prepend to every host configuration. This is useful when working with annotation based services.
512 # serviceName: ssl-redirect
513 # servicePort: use-annotation
521 # name: use-annotation
524 # - secretName: chart-example-tls
526 # - chart-example.local
527# -- Extra k8s manifests to deploy
534# PROMETHEUS_HOST: 'https://prometheus-us-central1.grafana.net/api/prom/push'
535# PROMETHEUS_USERNAME: '123456'