keel-hq / keel

Kubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updates
https://keel.sh
Mozilla Public License 2.0
2.44k stars 283 forks source link

Keel renames DockerHub images #522

Open xmath279 opened 4 years ago

xmath279 commented 4 years ago

Hello,

I'm using Keel along with ArgoCD and I have configured Keel for my deployments/statefulsets to match-tag so that ArgoCD doesn't see the image update as a difference.

So, for example, if there is a minor update to mysql:5.7, I expect Keel to simply pull the newer image and restart the deployment. However, Keel renames the image from mysql:5.7 to library/mysql:5.7 which makes my ArgoCD app to always be OutOfSync.

It would be great for Keel to support that use case.

Thank you!

rottenbytes commented 4 years ago

Exactly the same usecase here

rusenask commented 4 years ago

ah, that's annoying! :) I remember we had to deal with something similar for tags where we would keep "original format". It should then work in a similar way for images. If anyone would want to try fixing this, the issue lies somewhere here https://github.com/keel-hq/keel/tree/master/util/image.

xmath279 commented 3 years ago

I'm willing to look into that, but I just want to first make sure my use case actually fits with what Keel intends to do.

I realized that no matter if there's a new version for mysql:5.5, for example, Keel will always restart the container, even if the image hasn't been modified in about a year. Is this the intended behaviour or is this another issue?

Here are the labels I set:

keel.sh/policy: "force"
keel.sh/match-tag: "true"
keel.sh/trigger: "poll"

And annotation:

keel.sh/pollSchedule: "0 5 4 * * *"

So every day, at 4:05 UTC, Keel restarts the MySQL container, even if it is already using the latest image for that tag.