Commit graph

151 commits

Author SHA1 Message Date
Igor Zibarev
81036b078b
fix(api): return appropriate status for unauthorized requests (#1116) 2021-11-12 12:16:24 +01:00
nils måsén
0060cd6ee4
test: fully reset ghttp server (#1121) 2021-11-02 16:53:56 +01:00
nils måsén
1b405d4c77
test: container client tests refactor (#1117) 2021-11-01 20:35:50 +01:00
nils måsén
2c8695683d test: reduce test output noise 2021-11-01 19:36:38 +01:00
nils måsén
26fba69169 test: refactor client tests
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
2021-11-01 19:26:41 +01:00
nils måsén
47a640b764
update dependencies (sane go.mod) (#1061) 2021-09-29 11:34:05 +02:00
nils måsén
697397f289
feat(log): add context fields to lifecycle events (#1007) 2021-09-19 18:07:32 +02:00
nils måsén
cd0ec88764
fix(notifications): default templates and logic (#1010)
* fix(notifications): default templates and logic
* fix multi-entry report notifs and add test
* add tests for log queueing
2021-09-19 18:06:14 +02:00
nils måsén
fc31c6eb26
feat(shoutrrr): update to v0.5 (#1055)
* feat(shoutrrr): update to v0.5
* fix slack URL and tests
* add tests for slack icon override
* bump shoutrrr to v0.5.1
2021-09-19 18:05:10 +02:00
nils måsén
9bb8991a76
fix(digest): check container image info for nil (#1027) 2021-07-25 12:44:29 +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
nils måsén
dec6f84a70
test: fix metrics api test stability (#930)
* use httptest instead of host port binding
* restore matrix and remove artificial delay
* fix metrics api test expect calls
2021-05-25 16:42:11 +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
fdf6e46e7b
fix: use default http transport for head (#926)
note: still disables TLS verification to enable use with local regisitries
2021-04-24 18:25: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
Simon Aronsson
dff8378778
Feat/head failure toggle (#928)
* 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>
2021-04-24 13:14:52 +02:00
nils måsén
6f281b727a
feat: update shoutrrr to v0.4.4 (#914) 2021-04-23 16:36:09 +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
028f19ac47
Move token logs to trace 2021-04-21 10:03:05 +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
4142f7966a
fix: move notify URL to trace log (#907) 2021-04-18 18:35:15 +02:00
nils måsén
6a9d985ce7
feat(log): use short image/container IDs in logs (#888) 2021-04-18 18:34:38 +02:00
nils måsén
b644ec6829
fix(notifier): don't panic on unconfigured notifier (#869) 2021-04-18 18:11:46 +02:00
nils måsén
9fa2fd82a6
feat: include additional info in startup (#809) 2021-03-28 21:04:11 +02:00
nils måsén
738215a1f7
Update Shoutrrr to v0.4 (#810) 2021-03-13 08:58:11 +01:00
Zois Pagoulatos
d04d71508f
fix: Disallow log level 'trace' (#765)
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
2021-01-12 20:19:14 +01:00
Zois Pagoulatos
4689853493
fix: Set log level to debug for message about API token (#757) 2021-01-12 08:34:11 +01: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
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
35490c853d
cherrypick notification changes from #450 (#745) 2021-01-06 20:06:56 +01:00
nils måsén
3bbe1bd109
fix manifest tag index in manifest.go (#731)
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
2021-01-02 14:32:05 +01:00
Turtle Kalus
5983d58d7c
Log based on registry known-support - reduce noise on notifications (#716)
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.
2020-12-23 00:48:38 +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
Simon Aronsson
89119515af
clean up scope builder and remove fmt print 2020-12-21 18:20:38 +01:00
Simon Aronsson
cf6a71de81
fix linting issues 2020-12-21 18:11:08 +01:00
Simon Aronsson
eb8580f7f2
make sure all different ref formats are supported 2020-12-21 18:06:14 +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
cbe9ab87fa
move secret value "credentials" to trace log (#707) 2020-12-20 19:23:49 +01:00
Simon Aronsson
ea16683c46
add defered closer calls for the http clients (#705) 2020-12-09 16:18:07 +01:00
rg9400
9ac1bf6ca2
fix typo (#702) 2020-12-08 18:40:27 +01:00
Simon Aronsson
cb62b16369
add http head based digest comparison to avoid dockerhub rate limits 2020-12-06 13:21:04 +01:00
yrien30
2842b97df3
Allow watchtower to update rebooting containers (#651)
Co-authored-by: nils måsén <nils@piksel.se>
Co-authored-by: Simon Aronsson <simme@arcticbit.se>
2020-11-19 19:03:17 +01:00
nils måsén
64d48b70c2
fix: return nil imageinfo when retrieve fails (#680) 2020-11-13 21:19:08 +01:00
Simon Aronsson
a7a28ec984
fix fmt and vetting issues 2020-10-03 22:25:17 +02: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
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