https://github.com/kestra-io/terraform-provider-kestra
https://github.com/kestra-io/terraform-provider-kestra
kestra terraform terraform-provider
Last synced: 3 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/kestra-io/terraform-provider-kestra
- Owner: kestra-io
- License: apache-2.0
- Created: 2021-04-01T18:37:00.000Z (over 4 years ago)
- Default Branch: main
- Last Pushed: 2025-07-11T07:23:50.000Z (3 months ago)
- Last Synced: 2025-07-11T10:54:17.673Z (3 months ago)
- Topics: kestra, terraform, terraform-provider
- Language: Go
- Homepage: https://kestra.io/docs/terraform/
- Size: 397 KB
- Stars: 20
- Watchers: 6
- Forks: 12
- Open Issues: 15
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
Event-Driven Declarative Orchestrator
Get started with Kestra in 4 minutes.
# Kestra Terraform Provider
This repository defines Kestra resources so that they can be deployed using Infrastructure as Code with Terraform.
> [!IMPORTANT]
> Kestra Terraform provider 0.24.x is only compatible with Kestra 0.24.x and above.
> Additionally, if you want to terraform Kestra 0.24.x you need to use Kestra Terraform provider 0.24.x## Documentation
* The official Kestra documentation can be found under [kestra.io/docs](https://kestra.io/docs)
* Kestra Terraform provider documentation can be found [here](https://kestra.io/docs/terraform/).## Using the provider
This Terraform Provider is available to install automatically via `terraform init`. It is recommended to setup the following Terraform configuration to pin the major version:
```hcl
terraform {
required_providers {
source = "kestra-io/kestra"
version = "~> X.Y" # where X.Y is the current major version and minor version
}
}
```Additional documentation, including available resources and their arguments/attributes can be found on the [Terraform documentation website](https://registry.terraform.io/providers/kestra-io/kestra/latest/docs).
## Developing the Provider
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (see [Requirements](#requirements) above).To compile the provider, run `go install`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
To generate or update documentation, run `go generate`.
In order to run the full suite of Acceptance tests, run `make testacc`.
*Note:* Acceptance tests create real resources, and need a Kestra cluster.
```sh
$ make testacc
```### Requirements
- [Terraform](https://www.terraform.io/downloads.html) >= 0.13.x
- [Go](https://golang.org/doc/install) >= 1.16### Building The Provider
1. Clone the repository
1. Enter the repository directory
1. Build the provider using the Go `install` command:
```sh
$ go install
```### Start tests in local
The full test suite requires to start the full [docker-compose-ci.yml](docker-compose-ci.yml) and have access to Kestra EE docker image:1. read and do requirements of [init-tests-env.sh](init-tests-env.sh)
2. init test environment
```sh
$ ./init-tests-env.sh
```
3. run tests
```sh
$ TF_ACC=1 KESTRA_URL=http://127.0.0.1:8088 KESTRA_USERNAME=root@root.com KESTRA_PASSWORD='Root!1234' go test -v -cover ./internal/provider/
```
#### Test coverage
To display generate a test coverage file in local you can add `-coverprofile` to your test command:
```
go test -v -coverprofile=test-coverage-result.out ./internal/...
```
and then to display it:
```
# in browser
$ go tool cover -html=test-coverage-result.out# in terminal
$ go tool cover -func=test-coverage-result.out
```
### Adding DependenciesThis provider uses [Go modules](https://github.com/golang/go/wiki/Modules).
Please see the Go documentation for the most up to date information about using Go modules.To add a new dependency `github.com/author/dependency` to your Terraform provider:
```
go get github.com/author/dependency
go mod tidy
```Then commit the changes to `go.mod` and `go.sum`.
## Stay up to date
We release new versions every month. Give the [main repository](https://github.com/kestra-io/kestra) a star to stay up to date with the latest releases and get notified about future updates.

## License
Apache 2.0 © [Kestra Technologies](https://kestra.io)