Welcome to the Coreflux Cloud Team candidate challenge 001! In this challenge, you will be tasked with building a small-scale orchestration engine using Go and Terraform. Your goal is to create an HTTP server in Go that processes HTTP requests to provision Terraform resources. This will test your skills in Go, Terraform, asynchronous programming and handling concurrency.
- Write a Terraform module using a provider and resource of your choice, but ideally using the DigitalOcean provider. This module must take some variable(s) as input and return some output(s).
- Go HTTP Server: Implement a basic HTTP server using Go’s net/http package.
- Request Handling: The server should map each request path to a specific Terraform module.
- Request Parsing: Design the server to accept JSON input in the HTTP request body and parse it to the Terraform command.
- Return a Response: Once the Terraform apply returns the output, the server should return it as the response.
- Go Documentation
- Terraform Documentation
- Terraform Provider Registry
- Terraform DigitalOcean Provider
Please fork this repository and submit your solution as a pull request. Include detailed documentation on how to run your solution and any assumptions or design decisions you made. Good luck, and we look forward to reviewing your submission!
Add some auth mechanism to your server and deploy it on the cloud. Ensure it uses TLS with an ACME cert. Extra extra bonus points if your deployment is done using Terraform ;)
If you want to use DigitalOcean for this challenge, you can claim 200$ of DigitialOcean credits by clicking on the button below.