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 Skaffold commands to run a skaffold.yaml
file. We can also implement the Container Structure Test for static testing of the image. 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-skaffold"
label: "image-builder-skaffold"
nodeUsageMode: NORMAL
containers:
- name: "image-skaffold"
image: "ghcr.io/liatrio/image-builder-skaffold:${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-skaffold') {
sh "skaffold build"
}
}
}
NOTE: For more information on using Skaffold in a Jenkins pipeline, read the Liatrio's Blog Post on the topic.
- Version 1.39.X of Skaffold, a command line tool that facilitates continuous development for Kubernetes applications
- Version 1.24 of the AWS CLI
- Version 1.11.X of Container Structure Tests, a framework to validate the structure of a container image
- Version 1.25.X of kubectl, a command-line tool that allows you to run commands against Kubernetes clusters
- Version 3.9.4 of Helm, a package manager for Kubernetes