This terraform provider aims to minimise as much as possible the efforts needed from service providers to create and maintain custom terraform providers. This provider uses terraform as the engine that will orchestrate and manage the cycle of the resources and depends on a swagger file (hosted on a remote endpoint) to successfully configure itself dynamically.
Powered by https://www.terraform.io |
Powered by swagger.io |
What are the main pain points that this terraform provider tries to tackle?
- As as service provider, you can focus on improving the service itself rather than the tooling around it.
- Due to the dynamic nature of this terraform provider, the service provider can continue expanding the functionality of the different APIs by introducing new versions, and this terraform provider will do the rest configuring the resources based on the resources exposed and their corresponding versions.
- Find consistency across APIs provided by different teams encouraging the adoption of OpenAPI specification for describing, producing, consuming, and visualizing RESTful Web services.
API terraform provider is a powerful full-fledged terraform provider that is able to configure itself on runtime based on a Swagger specification file containing the definitions of the APIs exposed. The dynamic nature of this provider is what makes it very flexible and convenient for service providers as subsequent upgrades to their APIs will not require new compilations of this provider. The service provider APIs are discovered on the fly and therefore the service providers can focus on their services rather than the tooling around it.
- The service provider hosts APIs compliant with OpenApi and swagger spec file is available via a discovery endpoint.
- Terraform 0.10.x (to execute the terraform provider plugin)
- Go 1.9 (to build the provider plugin)
- Docker 17.09.0-ce (to run service provider example)
- Docker-compose 1.16.1 (to run service provider example)
- How to document contains information about how to define a swagger file following good practises that make it work seamlessly with this terraform provider. Additionally, learn more about what is currently supported.
- FAQ document answers for the most frequently asked questions.
Please follow the guidelines from:
- go-swagger: Api terraform provider makes extensive use of this library which offers a very convenient implementation to serialize and deserialize swagger specifications.
- Daniel I. Khan Ramiro
See also the list of contributors who participated in this project.