Sample Terraform project demonstrating how to use following tools together:
- Gradle as build tool
- Terraform for managing cloud resources
- Terraform Gradle Plugin for downloading Terraform client and running Terraform commands using Gradle tasks
- Terraform Kuberentes Provider for declaring K8s resources with HCL
- Spock for Terraform scripts testing
- Spock Reports Extension for generating comprehensive test reports
- Docker Desktop as local K8s cluster provider
Please consider using K9s to navigate and observe K8s cluster shipped by Docker Desktop.
First, pull the Nginx Helloworld image from DockerHub:
docker pull dockerbogo/docker-nginx-hello-world
Subsequently, add g
script to your Path
env variable for convenience and run following Gradle tasks:
g tfLocalInit
g tfLocalPlan
g tfLocalApply
g test
Please note tests will fail for demonstration. Check Spock report generated and fix them as per TODO instructions throughout the project to go from red to green.