should not be explicitly telling what they are testing and the requirements
fixed the test data so that it doesn't contain discrepancies
fully reset the mock client (no shared state) and only support the calls that is expected
* Make watchtower skip update if pre-update lifecycle hook exits with a non-zero exit code
#649
* Make watchtower skip update if pre-update lifecycle hook exits with a non-zero exit code
#649
* Make watchtower skip update if pre-update lifecycle hook exits with a non-zero exit code
#649
* Make watchtower skip update if pre-update lifecycle hook exits with a non-zero exit code
#649
* Make watchtower skip update if pre-update lifecycle hook exits with a non-zero exit code #649
* Make watchtower skip update if pre-update lifecycle hook exits with a non-zero exit code #649
* Make watchtower skip update if pre-update lifecycle hook exits with a non-zero exit code #649
* Prevent starting new container if old one is not stopped because of lifecycle hook.
* Add null check for c.containerInfo.State in IsRunning
* Fixed that the container would not start
* Added test for preupdate
* EX_TEMPFAIL -> ExTempFail
* Added missing fuction ouput names
* Skip preupdate when container is restarting.
* feat: allow hostname override for email notifier
As it currently stands all notifiers utilise `os.Hostname` to populate their titles/subjects.
When utilising Docker with a bridged network if you set the hostname for a container to an external DNS hostname Docker's internal DNS resolver will override said hostname for all containers within the bridged network.
This change allows a user to specify what hostname should be represented in the email notifications without having to change the `os.Hostname`.
* feat: allow custom hostname for all notifiers
* docs: adjust notification hostname flag
* fix: move build meta to own package
this allows it to be referenced from other packages without causing a cyclic dependency
* feat: custom user agent
* feat: check container config before restart
* fix: only skip when hostconfig and config differ
* fix: update test mocks to not fail tests
* test: add verify config tests
* feat: make head pull failure warning toggleable
* expect prometheus tests to go through EVENTUALLY
* wait for queue to be empty before checking test conditions
* clean up new head failure toggle
* fixup! clean up new head failure toggle
* test: add warn on head failure tests
* fix client interface and make tests hit more lines
* make all tests use NewClient instead of creating a struct pointer
* fix lint issues
* see if moving ubuntu out of the matrix solves test issue
Co-authored-by: nils måsén <nils@piksel.se>
* feat: make head pull failure warning toggleable
* expect prometheus tests to go through EVENTUALLY
* wait for queue to be empty before checking test conditions
* clean up new head failure toggle
* fixup! clean up new head failure toggle
* test: add registry tests
* test: add warn on head failure tests
* fix client interface and make tests hit more lines
* make all tests use NewClient instead of creating a struct pointer
* fix lint issues
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
Log based on registry known-poor support of HEAD in checking container
manifest.
Some private registries do not support HEAD (E.G. GitLab Container Registry).
With the current config, this log message is causing a notification to be
sent for each container hosted in a registry lacking HEAD support.
log.Debug or log.Warning for failed HTTP HEAD-check based on registry hostname
where HEAD-check is known to fail.
For Docker Hub, a failed HEAD leading to a "regular pull" may count against a
user's call-quota whereas other registry implementations do not support HEAD,
or whose container manifest may be in a different location.
* Add monitor-only label
* Add tests for monitor-only
* Treat missing monitor-only label as if the option was set to false
* Add docs for container-based monitor-only
* Add function doc
* Fix monitor-only logic
* implement rolling restart functionality
bouncing each image individually can ensure that a group of docker
containers launched with docker-compose can stay 100% up during deploy.
* move rolling restart into a function
* honor params.Cleanup
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
* Adds scopeUID config to enable multiple instances of Watchtower
* Adds tests for multiple instance support with scopeuid
* Adds docs on scope monitoring and multiple instance support
* Adds multiple instances docs to mkdocs config file
* Changes multiple instances check and refactors naming for scope feature
* Applies linter suggestions
* Fixes documentation on Watchtower monitoring scope
* Revert "Image of running container no longer needed locally (#571)"
This reverts commit 6da66fb312.
* Update client.go
* fix: skip updating when no image info can be retrieved
This will allow watchtower to continue even though the image info for a
container cannot be retrieved. If this happens one warning will be emitted
and the container will be skipped, unless NoRestart or OnlyMonitor is supplied
The life-cycle messages should not have the same level as the update messages.
Why?
I receive a (mail-) notification for every run even if no image is changed:
```
2020-07-31 06:44:33 (info): Executing pre-check command.
```
But I only want to receive a notification if something changed:
```
2020-07-20 06:44:44 (info): Found new traefik:v2.2 image (sha256:7c992081f52423e325bd12debf0edcb4f7cfa398683c26f99c00112ec14e1ab9)
```