In this post, we examine the deployment of the Gitstafette server.
We cover the deployment on Google Cloud Platform (GCP) and Amazon Web Services (AWS).
After describing the deployment target, we dive into the deployment automation (on AWS) using GitHub Actions.
What is the Gitstafette Server?
Earlier this year, I wrote about bringing Webhooks into your Homelab.
The Gitstafette Server is the server-side component of the Gitstafette application.
The Gitstafette project is a way to relay webhooks from one service to another through a secure connection.
When you are running a Kubernetes cluster, you will often deploy images from Dockerhub.
This can be slow, as the images have to be downloaded from the internet.
This can be a problem if you have a slow internet connection, or if you have to deploy many images at once.
You also waste bandwidth, as the images are downloaded multiple times.
In addition, you might want to be able to scan the images for security vulnerabilities before deploying them.
Or you need to authenticate to download the images, as many images run into rate limiting issues otherwise.
This proxy can be used to cache images, so that they do not have to be downloaded from Dockerhub every time.
This is also known as a Pull Through Cache12, which is a common solution to this problem.
This can speed up the deployment process, as the images are already available on the local network.
And prevents being rate limited, as the images are only downloaded from Dockerhub Once.
An additional benefit, is that the hosts do not need to have direct access to Dockerhub, and do not need to the credentials, limiting the exposure of the credentials.
As we hear about more and more (software) Supply Chain attacks, securing our software supply chain becomes increasingly important.
One of the ways to do this is to sign our container images.
In this post, we will look at how to automate the signing of container images using Tekton Chains6.
We use the Tekton Operator, Kyverno, SecretGen Controller, and Kaniko to automate the signing of the images.
Then, verify the image's signature using the cosign tool.