Grafana Helm Charts

repository·main·Indexed 24 days ago

https://github.com/grafana/helm-charts

Official Helm charts for deploying Grafana and its ecosystem components on Kubernetes. Includes charts for the Grafana Agent Operator, Cloud Cost Exporter, Grafana Enterprise Logs, Grafana Enterprise Metrics, and Fluent Bit Loki, along with installation guides, configuration values, and migration paths for deprecated charts.

Tokens
69.8K
Snippets
76
Records
213
Agent score
81%

What's inside grafana-helm-charts

  1. Locate the Grafana Agent chart source and repository

    main

    The Grafana Agent Helm chart source code is maintained in the main Grafana Agent repository. For development or direct inspection of the chart logic, refer to the specific sub-directory in the Grafana Agent repo. For installation, use the official Grafana Helm charts repository.

    https://github.com/grafana/agent/tree/main/operations/helm/charts/grafana-agent
  2. Configure Loki storage and memberlist

    main

    The chart is designed for microservices mode using memberlist for discovery, which avoids the need for external key/value stores like Consul or Etcd.

    Important Storage Note: The default configuration uses boltdb-shipper and filesystem storage. This is intended for CI validation only and is not fully functional for production because it lacks shared storage between ingesters and queriers. For functional deployments, you must use object storage such as S3, GCS, or MinIO.

    File Locations:

    • Volumes are mounted to /var/loki. Subdirectories (e.g., /var/loki/index) are created automatically.
    • The config file is mounted to /etc/loki/config/config.yaml and passed as a CLI argument.
  3. Configure Tempo Distributed Ingester zone-aware replication

    main

    The zoneAwareReplication feature is experimental and disabled by default. It allows for distributing ingesters across multiple zones.

    • ingester.zoneAwareReplication.enabled: Enable zone-aware replication.
    • ingester.zoneAwareReplication.maxUnavailable: Maximum number of ingesters that can be unavailable per zone during a rollout.
    • ingester.zoneAwareReplication.topologyKey: The topologyKey used in pod anti-affinity (e.g., kubernetes.io/hostname).
    • ingester.zoneAwareReplication.zones: A list of zone definitions. Note: You must redefine the entire list to change parts of it due to YAML limitations.

    Each zone in the list can have its own:

    • name: The name of the zone (must follow Kubernetes naming restrictions).
    • nodeSelector: Restrict where pods of this zone are placed (e.g., topology.kubernetes.io/zone: zone-a).
    • storageClass: Specific storage class for this zone's ingester data. If null, it falls back to ingester.persistence.storageClass.
  4. Configure Promtail using templated snippets

    main
    The Promtail configuration file is passed as a string to allow the use of the Helm tpl function. This enables you to use reusable YAML snippets and inject values from your values.yaml directly into the configuration. This is particularly useful for sharing pipeline_stages across multiple kubernetes_sd_configs to reduce redundancy. Refer to the config.snippets section in values.yaml to define these reusable blocks.
  5. Upgrade loki-distributed to chart version 0.80.0

    main

    Upgrading to chart version 0.80.0 sets the memberlist cluster_label configuration option.

    Warning: During the rollout, your cluster will temporarily be split into two memberlist clusters until all components are rolled out. This will interrupt reads and writes. This change is intended to prevent cross-talk between Loki and other memberlist clusters.

  6. Locate the Loki Helm chart source code

    main

    The source code for the loki Helm chart is no longer maintained within the grafana/helm-charts repository. It has been moved to the main Grafana Loki repository to ensure better alignment with the Loki project.

    You can find the source code at: https://github.com/grafana/loki/tree/main/production/helm/loki.

  7. Manage multi-tenancy and tenant overrides

    main

    Tempo supports multi-tenancy through several mechanisms:

    • multitenancyEnabled: A boolean to enable multi-tenancy mode.
    • provisioner.additionalTenants: A list of extra tenants to create. Each tenant requires a name and a secretNamespace where the associated token will be stored.
    • overrides: This section allows applying configuration to all tenants via overrides.defaults or using a per-tenant configuration file defined by overrides.per_tenant_override_config.
    • per_tenant_overrides: Allows defining runtime overrides directly in the Helm values instead of an external file.