GitOps Toolkit controller that patches container image tags in Git
Go to file
Michael Bridgen 36e5d709ed Installation instructions 2020-07-27 16:12:41 +01:00
.github/workflows Use fluxcd/pkg definition for github action 2020-07-27 13:22:21 +01:00
api/v1alpha1 Commit and push changes after running update 2020-07-23 18:20:35 +01:00
config Make patches work with kustomize build 2020-07-27 16:06:03 +01:00
controllers Test the result of the automated commit 2020-07-23 18:20:35 +01:00
hack Initialise controller scaffolding 2020-07-18 15:23:13 +01:00
pkg Test the result of the automated commit 2020-07-23 18:20:35 +01:00
.gitignore Test controller to the point of committing changes 2020-07-23 18:20:35 +01:00
Dockerfile Add update strategy that uses image policy 2020-07-23 18:20:35 +01:00
Makefile Test controller to the point of committing changes 2020-07-23 18:20:35 +01:00
PROJECT Add ImageUpdateAutomation type and controller 2020-07-23 18:14:28 +01:00
README.md Installation instructions 2020-07-27 16:12:41 +01:00
go.mod Test controller to the point of committing changes 2020-07-23 18:20:35 +01:00
go.sum Start test scaffolding 2020-07-23 18:20:35 +01:00
main.go Add update strategy that uses image policy 2020-07-23 18:20:35 +01:00

README.md

Image automation controller

This is part of the image update automation, as outlined in

Its sibling repository image-reflector-controller implements the image metadata reflection controller (scans container image repositories and reflects the metadata in Kubernetes resources); this repository implements the image update automation controller.

How to install it

Prerequisites

At present this works with GitRepository custom resources as defined in the source-controller types; and, the image-reflector-controller. GitRepository resources are used to describe how to access the git repository to update. The image reflector scans container image metadata, and reflects it into the cluster as resources which this controller uses as input to make updates; for example, by changing deployments so they use the most recent version of an image.

To install the GitRepository CRD

This controller only needs the custom resource definition (CRD) for the GitRepository kind, and doesn't need the source-controller itself.

If you're not already using the GitOps toolkit, you can just install the custom resource definition for GitRepository:

kubectl apply -f https://raw.githubusercontent.com/fluxcd/source-controller/master/config/crd/bases/source.fluxcd.io_gitrepositories.yaml

To install the image reflector controller

This controller relies on the image reflector controller. A working configuration for the latter can be applied straight from the GitHub repository (NB -k):

kubectl apply -k github.com/squaremo/image-reflector-controller/config/default

Installing the automation controller

You can apply a working configuration directly from GitHub:

kubectl apply -k github.com/squaremo/image-automation-controller/config/default

or, in a clone of this repository,

make docker-build deploy

How to use it

TODO