<p>So many CICD tools use a git trigger to start the pipeline, but I want to use a new image upload to Docker registry. I have my own self-hosted Docker registry. Whenever a new image is pushed to the registry, I want to then automatically deploy that image into a workload in Kubernetes. It seems like this would be simple enough, but so far I'm coming up short.</p>
<p>It seems like it <em>might</em> be possible, but I'd like to know whether it is before I spend too much time on it.</p>
<p>The sequence of events would be:</p>
<ol>
<li>A new image is pushed to the Docker registry</li>
<li>Either the registry calls a webhook or some external process polls the registry and discovers the image</li>
<li>Based on the base image name, the CICD pipeline updates a specific workload in Kubernetes to pull the new image</li>
</ol>
<p>A couple of other conditions: the CICD tool has to be self-hosted. I want everything to be self-contained within a VPC, so there would be no traffic leaving the network containing the registry, the CD tool, and the Kubernetes cluster.</p>
<p>Has anyone set up something like this or has actual knowledge of how to do so?</p>

<p>Sounds like the perfect job for <a href="https://github.com/fluxcd/flux" rel="nofollow noreferrer">Flux</a>.</p>
<p><a href="https://i.stack.imgur.com/F3Itu.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/F3Itu.png" alt="flux" /></a></p>
<p>There are a handful of other tools you can try:</p>
<ul>
<li><a href="https://werf.io/" rel="nofollow noreferrer">Werf</a></li>
<li><a href="https://skaffold.dev/docs/" rel="nofollow noreferrer">Skaffold</a></li>
<li><a href="https://github.com/pusher/faros" rel="nofollow noreferrer">Faros</a></li>
<li><a href="https://jenkins-x.io/" rel="nofollow noreferrer">JenkinxX</a></li>
</ul>
<p>✌️</p>
