Skip to content

kestra-io/plugin-dbt

Repository files navigation

Kestra workflow orchestrator

Event-Driven Declarative Orchestrator

Last Version License Github star
Kestra infinitely scalable orchestration and scheduling platform Slack

twitter linkedin youtube


Get started in 4 minutes with Kestra

Get started with Kestra in 4 minutes.

Kestra dbt plugin

Why

  • What user problem does this solve? Teams need to integrate dbt data transformations into Kestra orchestration pipelines from orchestrated workflows instead of relying on manual console work, ad hoc scripts, or disconnected schedulers.
  • Why would a team adopt this plugin in a workflow? It keeps DBT steps in the same Kestra flow as upstream preparation, approvals, retries, notifications, and downstream systems.
  • What operational/business outcome does it enable? It reduces manual handoffs and fragmented tooling while improving reliability, traceability, and delivery speed for processes that depend on DBT.

What

  • Provides plugin components under io.kestra.plugin.dbt.
  • Includes classes such as ResultParser, RunResult, Manifest, Seed.

Documentation

License

Apache 2.0 © Kestra Technologies

Stay up to date

We release new versions every month. Give the main repository a star to stay up to date with the latest releases and get notified about future updates.

Star the repo

Building Docker images with a specific dbt version

You can pin the dbt package version used in the built Docker images by providing the DBT_VERSION build arg at build time. The Dockerfiles in dockerfiles/ accept ARG DBT_VERSION and will pin the dbt adapter packages when supplied.

Local build example (pin to 1.9.1):

docker build \
  --build-arg DBT_VERSION=1.9.1 \
  -t ghcr.io/kestra-io/dbt-duckdb:dbt-1.9.1 \
  -f dockerfiles/dbt-duckdb.Dockerfile .

GitHub Actions

  • packages.yml (runs on Dockerfile changes) supports workflow_dispatch with an optional dbt_version input; this is passed as the build arg and the image will be tagged dbt-<version> (e.g. ghcr.io/kestra-io/dbt-duckdb:dbt-1.9.1). Without dbt_version, images are tagged latest.
  • packages-update.yml is manual (workflow_dispatch). It accepts a required image_tag and an optional dbt_version input. When dbt_version is provided, an additional dbt-<version> tag is added for each image.

Note: Some Dockerfiles use external installer scripts (like dbt-fusion.Dockerfile) and may require a different approach to pinning the dbt version; check the installer script for a supported --version argument and adapt the Dockerfile if needed.