Kestra offers many configuration options and customization. This section will guide you through the most important ones.

The way you pass those configuration options depends on your Kestra installation

Kestra internal components configuration

Kestra has three internal components that need to be configured:

  • The Internal Storage.
  • The Queue.
  • The Repository.

Internal storage configuration

Kestra supports multiple internal storage types, the default being the local storage that will store data in a local folder on the host filesystem. It's recommended only for local testing as it doesn't provide resiliency or redundancy.

To choose another storage type, you will need to configure the kestra.storage.type option. Make sure to download the corresponding storage plugins first. The following example configures Google Cloud Storage for internal storage.

yaml
kestra:
  storage:
    type: gcs

Details about storage configuration can be found here.

Queue configuration

Kestra supports multiple queue types, the default depends on your installation mode.

The queue type must be compatible with the repository type. Not all combinations are possible.

The following queue types are available:

  • In-memory queue used with the in-memory repository — intended for local testing.
  • Database queue used with the database repository. It currently supports H2, MySQL, and PostgreSQL as a database.
  • Kafka queue used with the Elasticsearch repository. Those are only available in the Enterprise Edition.

To enable the PostgreSQL database queue, you need to add the following to your configuration file:

yaml
kestra:
  queue:
    type: postgres

Repository configuration

Kestra supports multiple repository types, the default depends on your installation mode.

The repository type must be compatible with the queue type. Not all combinations are possible.

The following repository types are available:

  • In-memory that must be used with the in-memory queue. It is only suitable for local testing as it doesn't provide any resiliency or scalability and didn't implement all functionalities.
  • Database that must be used with the database queue. It currently supports H2, MySQL or PostgreSQL as a database.
  • Elasticsearch that must be used with the Kafka queue. Those are only available inside the Enterprise Edition.

To enable the PostgreSQL database repository, you need to add the following to your configuration files:

yaml
kestra:
  repository:
    type: postgres

For more details, check the database configuration and the Elasticsearch configuration.

Micronaut configuration

Given that Kestra is a Java-based application built on top of Micronaut, there are multiple Micronaut settings that you can configure based on your needs.