Commit graph

69 commits

Author SHA1 Message Date
nils måsén
efaf7190ee http report wip 2021-06-27 15:30:23 +02:00
nils måsén
e3dd8d688a
Session report collection and report templates (#981)
* wip: notification stats

* make report notifications optional

* linting/documentation fixes

* linting/documentation fixes

* merge types.Container and container.Interface

* smaller naming/format fixes

* use typed image/container IDs

* simplify notifier and update tests

* add missed doc comments

* lint fixes

* remove unused constructors

* rename old/new current/latest
2021-06-27 09:05:01 +02:00
yrien30
145fe6dbcb
Pre-update lifecycle hook (#793)
* 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.
2021-06-24 00:36:33 +02:00
Amir Zarrinkafsh
dc12a1ac7f
feat: allow hostname override for notifiers (#994)
* 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
2021-06-24 00:29:20 +02:00
nils måsén
f508c92ae0
* feat: custom user agent (#990)
* 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
2021-06-11 19:23:00 +02:00
DasSkelett
6b155a111a
Allow running periodic updates with enabled HTTP API (#916)
* Allow running periodic updates with enabled HTTP API

* Add --http-api-periodic-polls to docs
2021-04-27 22:18:45 +02:00
nils måsén
12467712a1
feat: check container config before update (#925)
* 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
2021-04-24 18:29:05 +02:00
nils måsén
d38e52b5c6
fix: merge artifacts and broken shoutrrr tests (#929)
* test: add missing container test suite
* fix broken tests
* fix: remove duplicate merge artifact

Co-authored-by: Simon Aronsson <simme@arcticbit.se>
2021-04-24 15:42:31 +02:00
nils måsén
b4cf17d33f
feat: make head pull failure warning toggleable (#912)
* 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>
2021-04-23 16:34:21 +02:00
Simon Aronsson
3de202a965
fix depends on behavior and simplify some of its logic (#908)
* fix depends on behavior and simplify some of its logic

* fix comments
2021-04-18 18:37:35 +02:00
nils måsén
40ab6fd5ba
Fix notifications and old instance cleanup (#748)
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
2021-01-10 11:12:54 +01:00
ilike2burnthing
e230967196
Add WATCHTOWER_INCLUDE_RESTARTING env for include-restarting flag (#720) 2021-01-06 22:34:58 +01:00
Simon Aronsson
d7d5b25882
Prometheus support (#450)
Co-authored-by: nils måsén <nils@piksel.se>
Co-authored-by: MihailITPlace <ya.halo-halo@yandex.ru>
Co-authored-by: Sebastiaan Tammer <sebastiaantammer@gmail.com>
2021-01-06 22:28:32 +01:00
Simon Aronsson
8b81fbd48d
Revert "feat(config): swap viper and cobra for config (#684)"
This reverts commit ff8cb884a0.
2020-12-21 23:08:23 +01:00
nils måsén
ff8cb884a0
feat(config): swap viper and cobra for config (#684) 2020-12-21 15:17:45 +01:00
nils måsén
4d17cf1a29
fix cleanup for rolling updates (#706) 2020-12-20 18:16:32 +01:00
nils måsén
33b4957d07
fix default interval to be the intended value (#700)
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
2020-12-07 20:09:43 +01:00
Simon Aronsson
023919e0fd
actually fix it 2020-12-07 20:04:11 +01:00
Simon Aronsson
f697870ed5
fix erroneous poll interval change 2020-12-07 20:01:26 +01:00
Simon Aronsson
cb62b16369
add http head based digest comparison to avoid dockerhub rate limits 2020-12-06 13:21:04 +01:00
David H
bde421be0d
Monitor-only for individual containers (#652)
* 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
2020-10-03 22:00:02 +02:00
bugficks
158b6935d4
Disabling color through environment variables (#598)
* This patch adds support for disabling color through environment variables.
- NO_COLOR: https://no-color.org/
- CLICOLOR,CLICOLOR_FORCE: https://bixense.com/clicolors/ ( [logrus built-in](6699a89a23/text_formatter.go (L46)) )

* use viper/cobra and add documentation. (https://github.com/containrrr/watchtower/pull/598#pullrequestreview-463814669)

Co-authored-by: Simon Aronsson <simme@arcticbit.se>
2020-08-21 22:54:16 +02:00
Ben Osheroff
c56e0a95a7
Rolling restart (#619)
* 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>
2020-08-21 22:35:46 +02:00
Victor Moura
6a18ee911e
Adds scopeUID config to enable multiple instances of Watchtower (#511)
* 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
2020-08-21 20:13:47 +02:00
nils måsén
5efb249a86
Skip updating containers where no local image info can be retrieved (#612)
* 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
2020-08-18 20:55:35 +02:00
Sebastiaan Tammer
12d323354f
Allows flags containing sensitive stuff to be passed as files (#545)
* Allows options containing sensitive stuff (passwords, tokens) to be passed as a file instead

* Fixed linter error, added tests, removed notification-url (due to being an array)
2020-06-10 12:14:47 +02:00
Simon Aronsson
a70f61974c
Comment out test that is incompatible with CircleCI 2020-05-22 16:20:39 +02:00
Sebastiaan Tammer
dccdf708a9
Adds the option to skip TLS verification for a Gotify instance (#544) 2020-05-22 16:02:20 +02:00
Arne Jørgensen
10fd81a2c1
feat: add template support for shoutrrr notifications (#515) 2020-05-11 06:38:41 +02:00
Sebastiaan Tammer
7052346570
Added --trace flag and new log.Trace() lines for sensitive information (#541) 2020-05-11 06:09:52 +02:00
Simon Aronsson
3b60add69d
Bump minimum API version to 1.25 2020-05-11 06:03:09 +02:00
Alexander Voronin
45c9dcc779
Increases stopContainer timeout to 10min (#528)
That means the update timeout until now has been 1 second, as that's the sleep duration of the timeout checker.
This commit changes it to 10 actual minutes.
2020-05-02 20:29:44 +02:00
Victor Moura
006c4210fa
Increases stopContainer timeout from 60 seconds to 10min (#526) 2020-05-01 12:31:48 +02:00
Simon Aronsson
4672811983 fix linting and formatting 2020-04-24 13:45:24 +02:00
Victor Moura
0217e116c4
Watchtower HTTP API based updates (#432)
* Added HTTP API trigger to update running images

* Adds HTTP API authentication token parameter and handling

* Exposes port 8080 in Dockerfile to allow inter-container update triggering via HTTP API

* Fixes codacy issue

* Adds API usage doc

* Fix grammar

* Moves api logic to a package of its own

* Makes WT exit if token has not been set in HTTP API mode

* Adds lock to prevent concurrent updates when in HTTP API mode

Co-authored-by: Simon Aronsson <simme@arcticbit.se>
2020-04-20 16:17:14 +02:00
Simon Aronsson
cb4c58f714
Merge pull request #470 from mbrandau/add-shoutrrr
WIP: add shoutrrr support
2020-04-05 16:46:26 +02:00
Simon Aronsson
98c60d7441 fix some errors and clean up 2020-03-28 19:48:04 +01:00
Simon Aronsson
c1a0da9a9d feature/367 fix: skip container if pre-update command fails 2020-03-28 19:35:02 +01:00
Simon Aronsson
1d3ffc728d fix: update mock client for tests 2020-03-28 19:33:22 +01:00
Simon Aronsson
1d1c630f7a feat: add timeout override for pre-update lifecycle hook 2020-03-28 19:33:02 +01:00
Maximilian Brandau
59ce378a35
Adjust flags 2020-03-23 13:53:30 +01:00
Maximilian Brandau
be2376a4e1
add shoutrrr 2020-03-23 11:40:55 +01:00
Lukas Willburger
0b7069fc0c Fix according to remarks 2020-03-22 17:16:44 +01:00
Lukas Willburger
fc3decce3a add --no-startup-message flag 2020-03-13 10:38:33 +01:00
Simon Aronsson
d1abce889a refactor: extract code from the container package 2020-01-11 23:36:07 +01:00
Simon Aronsson
8aad258408 #387 fix: add comments to pass linting 2020-01-11 00:34:52 +01:00
Simon Aronsson
7b8b8e8ad9 #387 fix: switch to image id map and add additional tests 2020-01-11 00:28:27 +01:00
Simon Aronsson
39d6ca1ab5
Merge branch 'master' into master 2019-12-25 13:47:36 +01:00
Lukas Elsner
fa1b8d5d0c proper set implementation 2019-12-19 12:57:50 -05:00
Simon Aronsson
ea596ea747 fix some var ref errors 2019-11-17 11:19:57 +01:00