We're running multiple, globally distributed Kubernetes clusters that need to run the same software. When we release an update to this software (as a Docker image uploaded to a private Docker repo), our current deployment pipeline needs to iterate over a list of known deployments, connect to each cluster and update the right Deployment there. This is a cumbersome, fragile, slow and non-scalable process.
I'm looking for a way to solve this by creating deployments that periodically check for a new Docker image version and when they detect a change, they pull the new image and update the right Deployment. This should be done by each cluster independently so there's no central process connecting to each cluster and a list of clusters to maintain etc.
There is no requirement that all clusters update at the same time, but the idea is to have eventual consistency with no central management.
Is there an existing tool that does this or solves this problem in a different way?