This repo contains the source for builder images to be used as steps in CI/CD pipelines. An example of how these images are used can be seen in the image below.
Images are published to the Liatrio GitHub Container Registry (ghcr.io/liatrio) and are publicly visible to make them accessible across platforms. The list of published images is available on the GitHub Packages page.
Skaffold: Container built with Skaffold, Helm, and Container-structure-tests
OpenShift: Container built with OpenShift and Helm
Terraform: Container built with Terraform and Terragrunt
Jenkins: Container for Jenkins that bakes in plugins
Azure Terraform: Container for applying Terraform plan to Azure environment.
Lead Terraform Runner: Container used for running tests within the lead-terraform pipeline.
Each directory for an image contains an image structure test to confirm that it will build correctly using the
Google Container Structure Test and Skaffold.
You can build and test all the containers by running skaffold build
or make
.
In order for a new image to be published using the GitHub Action Workflow and publicly visible the GitHub package must be configured correctly.
First the package must exist and be linked to the builder-image repo. You do this locally by building and pushing the image locally.
- Make sure the Dockerfile contains the following label
LABEL org.opencontainers.image.source https://github.com/liatrio/builder-images
- Log into the GitHub container registry with docker. GitHub: Pushing and pulling Docker images
- Build and push the images by running
make all
Now the package permission and visibility can be configured.
-
View the Packages in the Liatrio GitHub org and click on the image you want to make public.
-
Click the Package Settings button.
- Click the Change visibility button
- Select Public and confirm the change.
- Select Actions access from the left menu and click the Add Repository button.
- Enter
builder-images
and change the role to Write.