Open source

Configure storage

The scalable installation requires a managed object store such as AWS S3 or Google Cloud Storage or a self-hosted store such as Minio. The single binary installation can use the filesystem for storage, but we recommend configuring object storage via cloud provider or pointing Loki at a MinIO cluster for production deployments.

This guide assumes Loki will be installed in one of the modes above and that a values.yaml has been created.

To use a managed object store:

  1. In the values.yaml file, set loki.storage.type to azure, gcs, or s3.

  2. Configure the storage client under loki.storage.azure, loki.storage.gcs, or loki.storage.s3.

  3. Set loki.storage.bucketNames.chunks and loki.storage.bucketNames.ruler to your bucket or container names.

To install Minio alongside Loki:

Warning

The built-in MinIO subchart is deprecated and will be removed on 2026-10-31. Setting minio.enabled=true fails chart rendering with v17+ unless ignoreMinioDeprecation: true is also set. Grafana recommends configuring a dedicated external object storage backend instead of using the built-in MinIO subchart for new deployments.

  1. Change the configuration in values.yaml:

    • Enable Minio
    YAML
    ignoreMinioDeprecation: true  # Temporary workaround – MinIO will be removed 2026-10-31
    minio:
      enabled: true

To use Thanos object store clients (experimental):

Loki supports using Thanos-compatible storage clients as an alternative to the built-in storage clients. This is configured via loki.storage.use_thanos_objstore and will become the default in a future release.

  1. Enable Thanos object store in values.yaml:

    YAML
    loki:
      storage:
        use_thanos_objstore: true
        bucketNames:
          chunks: <YOUR_CHUNKS_BUCKET>
          ruler: <YOUR_RULER_BUCKET>
        object_store:
          type: s3  # Valid options: s3, gcs, azure
          s3:
            endpoint: <YOUR_ENDPOINT>
            region: <YOUR_REGION>
  2. Configure the storage client under loki.storage.object_store.s3, loki.storage.object_store.gcs, or loki.storage.object_store.azure.

To grant access to S3 via an IAM role without providing credentials:

  1. Provision an IAM role, policy and S3 bucket as described in Storage.

    • If the Terraform module was used note the annotation emitted by terraform output -raw annotation.
  2. Add the IAM role annotation to the service account in values.yaml:

    YAML
    serviceAccount:
      annotations:
        "eks.amazonaws.com/role-arn": "arn:aws:iam::<account id>:role/<role name>"
  3. Configure the storage:

    YAML
    loki:
      storage:
        type: "s3"
        s3:
          region: eu-central-1
        bucketNames:
          chunks: <bucket name>
          ruler: <bucket name>
          admin: <bucket name>  #only needed for GEL installations

    Note that endpoint, secretAccessKey and accessKeyId have been omitted.