apache / apache/airflow

Terraform provider based on Stable API

Open
#10,550 3 comments 7 reactions 0 assignees View on GitHub
area:API kind:feature kind:new provider request
Dominant language
Python
Stars
46.9k
Forks
17.8k
Avg merge
2d 9h
Merged PRs (30d)
472

Description

Hello,

If we have a [Stable API](https://airflow.readthedocs.io/en/latest/stable-rest-api-ref.html) ready, we can start working on tools that use it. We can start with the Terraform provider. Terraform. is a tool for building, changing, and versioning infrastructure as a code. A terraform provider is a way to integrate other services. Integrations already exist for a wide variety of services and software, including [Kubernetes](https://registry.terraform.io/providers/hashicorp/kubernetes/latest/docs), [Google Cloud](https://www.terraform.io/docs/providers/google/index.html), [Keycloak](https://github.com/mrparkers/terraform-provider-keycloak).

@houqp started working on it and prepared [small POC](https://github.com/houqp/terraform-provider-airflow). Currently, this allows you to manage Airflow variables.

I discussed this topic with good citizen @ad-m and he said we can use [terraform-provider-openapi](https://github.com/dikhan/terraform-provider-openapi) to generate a terraform provider based on the OpenAPI specification. He pointed out that this is how the company for which he works developed the [terraform-provider-hyperone](https://github.com/hyperonecom/terraform-provider-hyperone). This is also an implementation idea that we can explore.

I talked to @houqp , He pointed out that implementations may be affected by the range of resources we want available. Not all resources in the API makes sense as resources in Terraform, eg TaskInstnace.

What do you think about the Terraform provider for Airflow? What use cases should we support? What are your ideas for implementing this concept?

Best regards,
Kamil Breguła

CC: @jaketf @potiuk

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the Stable API documentation, the terraform-provider-airflow proof of concept, and terraform-provider-openapi. Compare the existing variable management with the Stable API and determine which API resources make sense as Terraform resources, excluding examples such as TaskInstance. Done means an agreed provider scope and implementation approach.

Written by the indexing model from the issue text.

Assessment

Tech stack
python, terraform
Domain
devops, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.