Terraform provider based on Stable API
- 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
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