The intended purpose of this image is for it to be used as a Jenkins agent. By using the installed features the user is able to create Jenkins pipelines that can trigger Terraform scripts to deploy and update infrastructure. Additionally, Terragrunt gives the ability to use extra tools for Terraform. An example of using this image as a Jenkins agent via Kubernetes can be seen below.
First, an example of configuring the pod template in yaml to create the agent.
jenkins:
clouds:
- kubernetes:
name: "kubernetes"
templates:
- name: "image-builder-terraform"
label: "image-builder-terraform"
nodeUsageMode: NORMAL
containers:
- name: "image-terraform"
image: "ghcr.io/liatrio/image-builder-terraform:${builder_images_version}"
And then specifying the agent in the Jenkinsfile for an example step.
stage('Build') {
agent {
label "image-builder-terraform"
}
steps {
container('image-terraform') {
sh "terragrunt plan"
sh "terragrunt apply"
}
}
}