fmartinou / whats-up-docker

What's up Docker ( aka WUD ) gets you notified when a new version of your Docker Container is available.
https://fmartinou.github.io/whats-up-docker
MIT License
1.02k stars 33 forks source link

Pushover fails when priority=2 #238

Closed Obsidiannite21 closed 1 year ago

Obsidiannite21 commented 1 year ago

I apologize in advance if I missed something obvious but I'm having a hard time configuring WUD. I've read through the entire guide multiple times but I'm still stuck. Attached is my YML file with certain items (such as the admin PW & PushOver info) *** out.

To start, I'd like WUD to notify me, via PushOver, when a new image is available. Then, once that is working, I'd like a few select images to automatically download with the containers recreated. So far, WUD is running, I'm able to login using the hash, WUD picks up all the containers and is able to identify which ones need an update. It looks like it's pulling the new image, which is a good sign. Since DryRun is on, that part seems to be working as expected. However, the pushover notification is not occurring at any point. I've deleted a test image, downloaded an old version, and recreated the container so WUD would have something to work with but that did not trigger PO. I have PO working with other devices & services so I'm sure I've configured PO correctly. I don't see anything in the log indicating that a PO was sent, failed, etc. Any suggestions?

I also realize that I haven't done anything to address updating individual images / containers. All of my containers have the "latest" tag so according to the provided examples this seems to be the correct language to add, but does it get added to the target containers YML or the WUD yml? I also didn't know what a digest is, or semver. labels:

Thanks!

docker-compose.txt

fmartinou commented 1 year ago

Hi,


I also didn't know what a digest is, or semver.

Tags can fallen into 2 categories:

semver tags are interesting because they can be logically compared to know if the change is major, minor or patch.

Non semver tags are not very meaningful so the only thing we can detect is that the tag you're running doesn't point to the same digest as the the tag found on the remote registry. That means that there is an update but we don't know whether it's a major, minor or patch change.

Generally speaking, I encourage to use semver tags as most as possible rather than using latest tags. That's the main purpose of wud; be able to use immutable tags instead of reyling of mutable tags (as latest are).


Regarding your setup,

You can remove the wud.watch.digest=true labels because it's deprecated; wud will automatiocally track the digests of the image if it's not a semver (which is the case for latest tags).

The 'wud.tag.include=latest' is a good idea; it will prevent you to get false positive results.

The pushover configuration looks ok.


Regarding your issue that you don't receive pushover notifications, can you:

  1. Enable debug logs WUD_LOG_LEVEL: 'debug' (you already did apparently)
  2. Check in the logs if there are lines indicating that the pushover component has not been initialized
  3. Check in the logs if there are lines indicating that the pushover component has been called or if an error occurred
Obsidiannite21 commented 1 year ago

Thanks for the response! Attached is the log. I see the following error multiple times in the log. I have no idea what it means.

Also if I were to include wud.tag.include=latest, would it be in the WUD yml or the target container YML if I want to only update certain containers / projects? Is there a label I should include that will indicate to WUD that the container should be ignored?

2023-03-09T14:10:00.967841949Z 09:10:00.964 DEBUG whats-up-docker/registry.hub: hub - Get portainer/portainer-ce:sha256:9fa1ec78b4e29d83593cf9720674b72829c9cdc0db7083a962bc30e64e27f64e manifest 2023-03-09T14:10:01.022243780Z 09:10:01.010 DEBUG whats-up-docker/registry.hub: hub - Get amir20/dozzle:sha256:627209dcd81e6c1fc38b93868de2b8fbf76adf34fd69703194be405f2da30c1c manifest 2023-03-09T14:10:01.193015454Z 09:10:01.190 DEBUG whats-up-docker/watcher.docker.local: Container watched for the first time (container=local_node-red) 2023-03-09T14:10:01.199247191Z 09:10:01.196 DEBUG whats-up-docker/trigger.docker.1: Run trigger (container=local_node-red) 2023-03-09T14:10:01.201293420Z 09:10:01.199 DEBUG whats-up-docker/trigger.docker.1: Get hub registry manager (container=local_node-red) 2023-03-09T14:10:01.202362184Z 09:10:01.200 DEBUG whats-up-docker/trigger.docker.1: Get hub registry credentials (container=local_node-red) 2023-03-09T14:10:01.213042606Z 09:10:01.210 DEBUG whats-up-docker/trigger.docker.1: Get container 7d8d0dc3d531360f382eb0cd42f90dc4dee00a55c3f7a1ad5e891f92da39dec2 2023-03-09T14:10:01.219969878Z 09:10:01.217 DEBUG whats-up-docker/trigger.pushover.1: Run trigger (container=local_node-red) 2023-03-09T14:10:01.248403503Z 09:10:01.243 DEBUG whats-up-docker/trigger.docker.1: Inspect container 7d8d0dc3d531360f382eb0cd42f90dc4dee00a55c3f7a1ad5e891f92da39dec2 2023-03-09T14:10:01.280675033Z 09:10:01.279 DEBUG whats-up-docker/registry.hub: hub - Get photoprism/photoprism:sha256:803b18007ae85092be63ce7cc36b7b1ba6b0d18104b209b96c6b9fd8779caa0a manifest 2023-03-09T14:10:01.447523506Z 09:10:01.440 INFO whats-up-docker/trigger.docker.1: Pull image nodered/node-red:latest-18-minimal (container=local_node-red) 2023-03-09T14:10:01.630362423Z 09:10:01.629 WARN whats-up-docker/trigger.pushover.1: Error (expire must be supplied with priority=2) (container=local_node-red) 2023-03-09T14:10:01.631338432Z 09:10:01.629 DEBUG whats-up-docker/trigger.pushover.1: expire must be supplied with priority=2 (container=local_node-red) 2023-03-09T14:10:01.631388601Z Error: expire must be supplied with priority=2 2023-03-09T14:10:01.631396351Z at Pushover.push.onerror (/home/node/app/triggers/providers/pushover/Pushover.js:104:46) 2023-03-09T14:10:01.631403018Z at Pushover.errors (/home/node/app/node_modules/pushover-notifications/lib/pushover.js:143:12) 2023-03-09T14:10:01.631409060Z at IncomingMessage. (/home/node/app/node_modules/pushover-notifications/lib/pushover.js:250:12) 2023-03-09T14:10:01.631415852Z at IncomingMessage.emit (node:events:525:35) 2023-03-09T14:10:01.631421436Z at IncomingMessage.emit (node:domain:489:12) 2023-03-09T14:10:01.631426811Z at endReadableNT (node:internal/streams/readable:1358:12) 2023-03-09T14:10:01.631432145Z at processTicksAndRejections (node:internal/process/task_queues:83:21) whatsupdocker-2023-03-11T13-01-49.log

fmartinou commented 1 year ago

Thanks!

2023-03-09T14:10:01.631388601Z Error: expire must be supplied with priority=2

I don't know much about pushover but it seems that the API is complaining because of the severity=2 (Emergency Priority)

image

I should probably add optional retry and expire options to the pushover configuration?

(In the mean time, you can change the priority to 0 and it should be working)

Obsidiannite21 commented 1 year ago

I've updated the Priority to 0. Now I don't see any errors, but I also didn't get a notification that there are 4 updates available. I've attached the log again. whatsupdocker-2023-03-11T14-09-17.log Screenshot 2023-03-11 at 9 10 56 AM

fmartinou commented 1 year ago

Hi,

WUD won't trigger again for existing results so please remove first the content of /home/odroid/dc-config/wud and restart from scratch.

Please also notice that you've reached your Docker Hub free tier quotas

StatusCodeError: 429 - {"errors":[{"code":"TOOMANYREQUESTS","message":"You have reached your pull rate limit. You may increase the limit by authenticating and upgrading: https://www.docker.com/increase-rate-limit"}]}

so you may have to wait a little before seeing things working back as usual.

Obsidiannite21 commented 1 year ago

Understood. I’ll give that a try and let you know if it doesn’t work.

I have a Dockerhub account, which entitles me to more pulls. Is there a way to enter those credentials in WUD?

fmartinou commented 1 year ago

I have a Dockerhub account, which entitles me to more pulls. Is there a way to enter those credentials in WUD?

Yes, for sure; please find here how to configure: https://fmartinou.github.io/whats-up-docker/#/configuration/registries/hub/

Obsidiannite21 commented 1 year ago

Thank you.

fmartinou commented 1 year ago

Can you give a try to this fix version, please?

fmartinou/whats-up-docker:fix__238_fix_pushover_priority_2

(it should fix your issue with priority=2)

You can set the needed expire & retry values with

WUD_TRIGGER_PUSHOVER_{trigger_name}_EXPIRE=xxx
WUD_TRIGGER_PUSHOVER_{trigger_name}_RETRY=xxx

If it's ok for your, then it will be integrated to the next release.

Obsidiannite21 commented 1 year ago

Sure, I'd be happy to later this evening. What should I put for the expire and retry values?

fmartinou commented 1 year ago

The values are the original ones detailed in the pushover documentation

https://pushover.net/api#priority

For example, sending a retry parameter of 60 and an expire parameter of 3600 will cause your notification to be retried every 60 seconds for 1 hour.

Obsidiannite21 commented 1 year ago

That seemed to work. No errors in the log at least.

fmartinou commented 1 year ago

Thanks for the feedback! 👍 I merge it ; the fix will be available in the next release.

fmartinou commented 1 year ago

Released as 6.1.0