It's an implementation of a controller which watches the applications and “caches” the images by re-uploading to our own registry repository and reconfiguring the applications to use these copies.
- Dockerfile - Dockerfile, used for production to run within the cluster (running the application as nonroot)
- controller - controller code, it is written using kubebuilder
- repository - code that enables connecting to the repository on which the images will be re-uploaded
- config - yml files that enable running the controller within the cluster
Make sure you have installed all of the following prerequisites on your development machine:
- Git - Download & Install Git. OSX and Linux machines typically have this already installed.
- Minikube - Download & Install Minikube
- Docker - Download & Install Docker. Docker is used for building images and running the end-to-end tests.
- Golang - Download & Install Golang.
In order to run, you have to provide the dockersecret.yml file located in ~/.docker/config.json Then to run the controller you can simply use:
minikube start
make deploy_app
It will automatically deploy the controller on local cluster eg. Minikube.
In order to run the unit tests, run:
minikube start
make test