---
title: Manage environment variables in your InfluxDB Cluster
description: Use environment variables to define settings for individual components in your InfluxDB cluster.
url: https://docs.influxdata.com/influxdb3/clustered/admin/env-vars/
estimated_tokens: 1643
publisher: InfluxData
canonical: https://docs.influxdata.com/influxdb3/clustered/admin/env-vars/
date: '2025-03-13T17:02:04-06:00'
lastmod: '2025-03-13T17:02:04-06:00'
---

Use environment variables to define settings for individual components in your
InfluxDB cluster and adjust your cluster’s running configuration.
Define environment variables for each component in your `AppInstance` resource.

InfluxDB Clustered components support various environment variables.
While many of these variables have default settings, you can customize them by
setting your own values.

> [!Warning]
> #### Overriding default settings may affect overall cluster performance
>
> InfluxDB Clustered components have complex interactions that can be affected
> when overriding default configuration settings.
> Changing these settings may impact overall cluster performance.
> Before making configuration changes using environment variables, consider
> consulting [InfluxData Support](https://support.influxdata.com/) to identify any
> potential unintended consequences.

## AppInstance component schema

In your `AppInstance` resource, configure individual component settings in the`spec.package.spec.components` property if configuring your `AppInstance` resource
directly or, if using Helm, use the `components` property in your `values.yaml`.
This property supports the following InfluxDB Clustered component keys:

* `ingester`
* `querier`
* `router`
* `compactor`
* `garbage-collector`

[AppInstance](#appinstance)[Helm](#helm)

```yaml
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
  name: influxdb
  namespace: influxdb
spec:
  package:
    # ...
    spec:
      components:
        ingester:
          # Ingester settings ...
        querier:
          # Querier settings ...
        router:
          # Router settings. ...
        compactor:
          # Compactor settings ...
        garbage-collector:
          # Garbage collector settings ...
```

```yaml
# ...
components:
  ingester:
    # Ingester settings ...
  querier:
    # Querier settings ...
  router:
    # Router settings. ...
  compactor:
    # Compactor settings ...
  garbage-collector:
    # Garbage collector settings ...
```

*For more information about components in the InfluxDB 3 storage engine, see
the [InfluxDB 3 storage engine architecture](/influxdb3/clustered/reference/internals/storage-engine/).*

## Set environment variables for a component

1. Under the specific component property, use the`<component>.template.containers.iox.env` property to define environment
   variables.

2. In the `env` property, structure each environment variable as a key-value
   pair where the key is the environment variable name and the value is the
   environment variable value (string-formatted).
   For example, to configure environment variables for the Garbage collector:

   [AppInstance](#appinstance-2)[Helm](#helm-2)

   ```
   apiVersion: kubecfg.dev/v1alpha1
   kind: AppInstance
   metadata:
     name: influxdb
     namespace: influxdb
   spec:
     package:
       # ...
       spec:
         components:
           garbage-collector:
             template:
               containers:
                 iox:
                   env:
                     INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '6h'
                     INFLUXDB_IOX_GC_PARQUETFILE_CUTOFF: '6h'
   ```

   ```
   # ...
   components:
     garbage-collector:
       template:
         containers:
           iox:
             env:
               INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '6h'
               INFLUXDB_IOX_GC_PARQUETFILE_CUTOFF: '6h'
   ```

3. Apply the configuration changes to your cluster and add or update
   environment variables in each component.

   [AppInstance](#appinstance-3)[Helm](#helm-3)

   ```
   kubectl apply \
     --filename myinfluxdb.yml \
     --namespace influxdb
   ```

   ```
   helm upgrade \
     influxdata/influxdb3-clustered \
     -f ./values.yml \
     --namespace influxdb
   ```

> [!Note]
> #### Update environment variables instead of removing them
>
> Most configuration settings that can be overridden by environment variables have
> default values that are used if the environment variable is unset. Removing
> environment variables from your `AppInstance` resource configuration will not
> remove those environment variables entirely; instead, they will revert to their
> default settings. To revert to the default settings, simply unset the
> environment variable or update the value in your `AppInstance` resource to the
> default value.
>
> In the preceding example, the `INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF` environment
> variable is set to `6h`. If you remove `INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF` from
> the `env` property, the cutoff reverts to its default setting of `30d`.

[](#view-example-of-environment-variables-in-all-components)

View example of environment variables in all components

[AppInstance](#appinstance-4)[Helm](#helm-4)

```yaml
apiVersion: kubecfg.dev/v1alpha1
kind: AppInstance
metadata:
  name: influxdb
  namespace: influxdb
spec:
  package:
    # ...
    spec:
      components:
        ingester:
          template:
            containers:
              iox:
                env:
                  INFLUXDB_IOX_WAL_ROTATION_PERIOD_SECONDS: '360'
        querier:
          template:
            containers:
              iox:
                env:
                  INFLUXDB_IOX_EXEC_MEM_POOL_BYTES: '10737418240' # 10GiB
        router:
          template:
            containers:
              iox:
                env:
                  INFLUXDB_IOX_MAX_HTTP_REQUESTS: '5000'
        compactor:
          template:
            containers:
              iox:
                env:
                  INFLUXDB_IOX_EXEC_MEM_POOL_PERCENT: '80'
        garbage-collector:
          template:
            containers:
              iox:
                env:
                  INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '6h'
                  INFLUXDB_IOX_GC_PARQUETFILE_CUTOFF: '6h'
```

```yaml
# ...
components:
  ingester:
    template:
      containers:
        iox:
          env:
            INFLUXDB_IOX_WAL_ROTATION_PERIOD_SECONDS: '360'
  querier:
    template:
      containers:
        iox:
          env:
            INFLUXDB_IOX_EXEC_MEM_POOL_BYTES: '10737418240' # 10GiB
  router:
    template:
      containers:
        iox:
          env:
            INFLUXDB_IOX_MAX_HTTP_REQUESTS: '5000'
  compactor:
    template:
      containers:
        iox:
          env:
            INFLUXDB_IOX_EXEC_MEM_POOL_PERCENT: '80'
  garbage-collector:
    template:
      containers:
        iox:
          env:
            INFLUXDB_IOX_GC_OBJECTSTORE_CUTOFF: '6h'
            INFLUXDB_IOX_GC_PARQUETFILE_CUTOFF: '6h'
```
