Releases: nicholas-fedor/watchtower
Release list
v1.20.3
Feature Updates
- feat(api): emit SSE events for the HTTP API check endpoint by @nicholas-fedor in #2066
Fixes
- fix(ephemeral): prevent repeated self-updates when host ports are published by @nicholas-fedor in #2079
Dependency Updates
- chore(deps): update module github.com/gofiber/utils/v2 to v2.4.1 by @renovate[bot] in #2063
- chore(deps): update module github.com/gofiber/contrib/v3/swaggo to v1.0.9 by @renovate[bot] in #2070
- chore(deps): update module github.com/docker/cli to v29.7.1+incompatible by @renovate[bot] in #2076
- chore(deps): update github.com/google/pprof digest to ef3492d by @renovate[bot] in #2084
- chore(deps): update opentelemetry-go monorepo to v1.45.0 by @renovate[bot] in #2091
- chore(deps): update module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.70.0 by @renovate[bot] in #2096
- chore(deps): update module github.com/nicholas-fedor/shoutrrr to v0.17.0 by @renovate[bot] in #2099
Full Changelog: v1.20.2...v1.20.3
v1.20.2
Fixes
- fix: restore correct restart order for named network dependencies by @nicholas-fedor in #2000
- fix: tighten image filter matching and local-only detection by @nicholas-fedor in #2003
- fix(registry): prefer config auth and accept identity tokens by @nicholas-fedor in #2002
- fix(container): clean up failed recreates and nil host config by @nicholas-fedor in #2004
- fix(actions): harden self-update failure and cancel recovery by @nicholas-fedor in #2005
- fix(scheduling): honor Compose depends_on during scheduled updates by @nicholas-fedor in #2031
- fix: resolve SSE endpoint closing immediately after retry line by @nicholas-fedor in #2050
- fix(notify-upgrade): address command execution bugs and update migration docs by @nicholas-fedor in #2054
- fix(notifications): mark slice flags as changed after docker secret expansion by @nicholas-fedor in #2060
Dependency Updates
- chore(deps): update module github.com/mattn/go-isatty to v0.0.24 by @renovate[bot] in #2013
- chore(deps): update module github.com/gofiber/utils/v2 to v2.4.0 by @renovate[bot] in #2017
- chore(deps): update module github.com/prometheus/client_golang to v1.24.1 by @renovate[bot] in #2022
- chore(deps): update module go.yaml.in/yaml/v3 to v3.0.5 by @renovate[bot] in #2039
- chore(deps): update module github.com/valyala/fasthttp to v1.73.0 by @renovate[bot] in #2047
- chore(deps): update module github.com/docker/go-connections to v0.8.1 by @renovate[bot] in #2049
- chore(deps): update go-openapi packages to v0.28.0 by @renovate[bot] in #2052
- chore(deps): update module github.com/moby/moby/client to v0.5.1 by @renovate[bot] in #2051
- chore(deps): update module github.com/nicholas-fedor/shoutrrr to v0.16.3 by @renovate[bot] in #2058
Full Changelog: v1.20.1...v1.20.2
v1.20.1
Fix
- fix(api): use application context for async update execution by @nicholas-fedor in #1997
Dependency Update
Full Changelog: v1.20.0...v1.20.1
v1.20.0
Watchtower v1.20.0 introduces a significantly updated HTTP API and support for label-based container filtering. It also includes several fixes and improvements, such as improved GCP Artifact Registry support, a correction to a bug impacting the revive-stopped container configuration, the addition of caching for bearer tokens, and parallelized staleness checks.
Note
Legacy notification and HTTP API configurations are deprecated. You are encouraged to update your configurations.
For more info:
Features
- refactor/http-api by @nicholas-fedor in #1939
- feat(filters): add label-based container enable and disable filtering by @nicholas-fedor in #1969
Fixes
- fix(registry): derive bearer service from realm by @llc1123 in #1895
- refactor: restructure registry auth and expand test coverage by @nicholas-fedor in #1951
- refactor(actions): parallelize staleness checks with bounded concurrency by @nicholas-fedor in #1958
- fix: handle local-only images and clarify self-update port messages by @nicholas-fedor in #1960
- fix: ensure revive-stopped configuration reaches scheduled update runs by @nicholas-fedor in #1961
- refactor: consolidate restart-policy updates into SetNoRestartPolicy helper by @nicholas-fedor in #1965
- fix(flags): validate notification-url secret file entries by @nicholas-fedor in #1971
Dependency Updates
- chore(deps): update module github.com/pelletier/go-toml/v2 to v2.4.3 by @renovate[bot] in #1890
- chore(deps): update module golang.org/x/text to v0.39.0 by @renovate[bot] in #1898
- chore(deps): update go module directive to v1.26.5 by @renovate[bot] in #1904
- chore(deps): update module golang.org/x/mod to v0.38.0 by @renovate[bot] in #1914
- chore(deps): update module golang.org/x/net to v0.57.0 by @renovate[bot] in #1917
- chore(deps): update module golang.org/x/tools to v0.48.0 by @renovate[bot] in #1920
- chore(deps): update github.com/google/pprof digest to b9395ee by @renovate[bot] in #1926
- chore(deps): update module github.com/prometheus/common to v0.70.0 by @renovate[bot] in #1928
- chore(deps): update module github.com/gofiber/utils/v2 to v2.2.0 by @renovate[bot] in #1944
- chore(deps): update module github.com/mattn/go-isatty to v0.0.23 by @renovate[bot] in #1947
- chore(deps): update module github.com/docker/cli to v29.6.2+incompatible by @renovate[bot] in #1953
- chore(deps): update module github.com/gofiber/schema to v1.8.3 by @renovate[bot] in #1973
- chore(deps): update go-openapi packages to v0.27.1 by @renovate[bot] in #1975
- chore(deps): update go-openapi packages by @renovate[bot] in #1980
- chore(deps): update module github.com/go-logr/logr to v1.4.4 by @renovate[bot] in #1982
- chore(deps): update module github.com/klauspost/compress to v1.19.1 by @renovate[bot] in #1983
- chore(deps): update module github.com/prometheus/client_golang to v1.24.0 by @renovate[bot] in #1986
- chore(deps): update module github.com/nicholas-fedor/shoutrrr to v0.16.2 by @renovate[bot] in #1991
New Contributors
Full Changelog: v1.19.0...v1.20.0
v1.19.0
Features
Fixes
- fix(notifications): correct deprecation notice url by @nicholas-fedor in #1795
Dependency Updates
- chore(deps): update module github.com/felixge/httpsnoop to v1.1.0 by @renovate[bot] in #1788
- chore(deps): update module github.com/prometheus/common to v0.69.0 by @renovate[bot] in #1818
- chore(deps): update module github.com/moby/moby/api to v1.55.0 by @renovate[bot] in #1822
- chore(deps): update module github.com/moby/moby/client to v0.5.0 by @renovate[bot] in #1825
- chore(deps): update module github.com/onsi/ginkgo/v2 to v2.32.0 by @renovate[bot] in #1838
- chore(deps): update module github.com/onsi/gomega to v1.42.1 by @renovate[bot] in #1842
- chore(deps): update module github.com/pelletier/go-toml/v2 to v2.4.2 by @renovate[bot] in #1844
- chore(deps): update module golang.org/x/tools to v0.47.0 by @renovate[bot] in #1853
- chore(deps): update module github.com/docker/cli to v29.6.1+incompatible by @renovate[bot] in #1856
- chore(deps): update module github.com/prometheus/procfs to v0.21.1 by @renovate[bot] in #1870
New Contributors
Full Changelog: v1.18.1...v1.19.0
v1.18.1
Fixes
- fix(notifications): suppress deprecation warning when legacy email subject tag is empty by @nicholas-fedor in #1785
Dependency Updates
Full Changelog: v1.18.0...v1.18.1
v1.18.0
Feature Updates
- feat: add Docker registry mirror support for digest comparison by @nicholas-fedor in #1693
- feat: add eligible_at timestamp to cooldown deferral logs and notifications by @nicholas-fedor in #1698
- feat(api): add read-only /v1/containers endpoint by @barnabasbusa in #1700
Bug Fixes
- fix: prevent image pull when within cooldown window by @nicholas-fedor in #1669
- fix(container): default empty device CgroupPermissions to 'rwm' for Podman compatibility by @nicholas-fedor in #1673
- fix(flags): interpret bare numeric timeout as seconds by @nicholas-fedor in #1675
- fix: use shared identifier matching for implicit restart logic by @nicholas-fedor in #1677
- fix(container): set Detach true in ExecStart to prevent blocking on command execution by @nicholas-fedor in #1683
- fix(scheduling): strip quotes from cron schedule spec before parsing by @nicholas-fedor in #1686
- fix: resolve stale predecessor misidentification during self-update by @nicholas-fedor in #1713
- fix(notifications): update Shoutrrr MS Teams integration by @nicholas-fedor in #1718
- fix: prevent orphaned old Watchtower containers from persisting by @nicholas-fedor in #1743
Dependency Updates
- chore(deps): update module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.69.0 by @renovate[bot] in #1688
- chore(deps): update module github.com/mattn/go-colorable to v0.1.15 by @renovate[bot] in #1701
- chore(deps): update module github.com/prometheus/common to v0.68.0 by @renovate[bot] in #1703
- chore(deps): update go module directive to v1.26.4 by @renovate[bot] in #1715
- chore(deps): update module github.com/prometheus/common to v0.68.1 by @renovate[bot] in #1726
- chore(deps): update module github.com/docker/cli to v29.5.3+incompatible by @renovate[bot] in #1731
- chore(deps): update github.com/google/pprof digest to 7023385 by @renovate[bot] in #1733
- chore(deps): update module golang.org/x/mod to v0.37.0 by @renovate[bot] in #1749
- chore(deps): update module golang.org/x/sync to v0.21.0 by @renovate[bot] in #1750
- chore(deps): update module github.com/docker/docker-credential-helpers to v0.9.8 by @renovate[bot] in #1752
- chore(deps): update module golang.org/x/sys to v0.46.0 by @renovate[bot] in #1753
- chore(deps): update module golang.org/x/term to v0.44.0 by @renovate[bot] in #1756
- chore(deps): update module golang.org/x/text to v0.38.0 by @renovate[bot] in #1758
- chore(deps): update module github.com/nicholas-fedor/shoutrrr to v0.16.1 by @renovate[bot] in #1765
Deprecations
- chore(notifications): deprecate legacy notification types for v2 removal by @nicholas-fedor in #1737
New Contributors
- @barnabasbusa made their first contribution in #1700
Full Changelog: v1.17.2...v1.18.0
v1.17.2
Bug Fixes
- fix: restore revive-stopped configuration handling by @nicholas-fedor in #1657
- fix: add timeout input validation and improve docs by @nicholas-fedor in #1665
Dependency Updates
- chore(deps): update module github.com/docker/cli to v29.5.2+incompatible by @renovate[bot] in #1643
- chore(deps): update module golang.org/x/sys to v0.45.0 by @renovate[bot] in #1651
- chore(deps): update module golang.org/x/net to v0.55.0 by @renovate[bot] in #1655
Full Changelog: v1.17.1...v1.17.2
v1.17.1
Release v1.17.1 of Watchtower implements a change from the deprecated github.com/docker/docker dependency to the dedicated github.com/moby/moby/client and github.com/moby/moby/api modules. Review #1613 for more info. This release also fixes a longstanding bug when using the no-restart configuration option to skip new container startup.
Important
#1620 corrects a missing label that will cause Watchtower self-updates to fail, such as when it attempts to self-update from v1.17.0 to v1.17.1 . The old container will remain in a stopped state and no new Watchtower container is created.
One-Time Remediation:
- Remove the old, stopped container:
docker rm -f $(docker ps -a -q --filter ancestor=nickfedor/watchtower) - Pull the new Watchtower container image:
docker pull nickfedor/watchtower
- Start the new Watchtower container image
Fixes
- fix(goreleaser): add missing watchtower label to Docker images by @nicholas-fedor in #1620
- fix(actions): restore no-restart flag to only skip container start by @nicholas-fedor in #1626
Refactoring
- refactor(deps): migrate from docker/docker to moby/moby split packages for v29 compatibility by @nicholas-fedor in #1613
Dependency Updates
- chore(deps): update module github.com/onsi/ginkgo/v2 to v2.29.0 by @renovate[bot] in #1630
- chore(deps): update module github.com/onsi/gomega to v1.41.0 by @renovate[bot] in #1631
- chore(deps): update module github.com/docker/cli to v29.5.1+incompatible by @renovate[bot] in #1635
Full Changelog: v1.17.0...v1.17.1
v1.17.0
Release v1.17.0 of Watchtower introduces a minor addition to the HTTP API that enables early returns from POST requests (#1575). More importantly, this release implements a refactored and updated release pipeline that takes advantage of GoReleaser's latest features.
Important
The latest-dev image tag has been replaced by the nightly image tag.
If you are using the nickfedor/watchtower:latest-dev or ghcr.io/nicholas-fedor/watchtower:latest-dev images, you will need to switch to either the nickfedor/watchtower:nightly or ghcr.io/nicholas-fedor/watchtower:nightly images.
Deployments using the latest image tag are unaffected.
New Features
- feat(api): add async query parameter support by @nicholas-fedor in #1609
Dependency Updates
- chore(deps): update google.golang.org/genproto/googleapis/api digest to 9d38bb4 by @renovate[bot] in #1516
- chore(deps): update google.golang.org/genproto/googleapis/rpc digest to 9d38bb4 by @renovate[bot] in #1517
- chore(deps): update module google.golang.org/grpc to v1.80.0 by @renovate[bot] in #1518
- chore(deps): update module go.opentelemetry.io/otel/metric to v1.43.0 by @renovate[bot] in #1529
- chore(deps): update module go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracehttp to v1.43.0 by @renovate[bot] in #1530
- chore(deps): update module go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp to v0.68.0 by @renovate[bot] in #1537
- chore(deps): update module golang.org/x/term to v0.42.0 by @renovate[bot] in #1549
- chore(deps): update module golang.org/x/text to v0.36.0 by @renovate[bot] in #1550
- chore(deps): update module github.com/docker/go-connections to v0.7.0 by @renovate[bot] in #1561
- chore(deps): update module github.com/mattn/go-isatty to v0.0.22 by @renovate[bot] in #1578
- chore(deps): update module github.com/onsi/ginkgo/v2 to v2.28.3 by @renovate[bot] in #1581
- chore(deps): update module github.com/masterminds/semver/v3 to v3.5.0 by @renovate[bot] in #1584
- chore(deps): update module github.com/pelletier/go-toml/v2 to v2.3.1 by @renovate[bot] in #1587
- chore(deps): update module github.com/fsnotify/fsnotify to v1.10.1 by @renovate[bot] in #1590
- chore(deps): update module github.com/docker/cli to v29.4.3+incompatible by @renovate[bot] in #1591
- chore(deps): update module github.com/nicholas-fedor/shoutrrr to v0.15.0 by @renovate[bot] in #1592
- chore(deps): update github.com/google/pprof digest to 92041b7 by @renovate[bot] in #1593
- chore(deps): update go module directive to v1.26.3 by @renovate[bot] in #1597
- chore(deps): update module github.com/docker/docker-credential-helpers to v0.9.7 by @renovate[bot] in #1599
- chore(deps): update module golang.org/x/sys to v0.44.0 by @renovate[bot] in #1600
- chore(deps): update module golang.org/x/mod to v0.36.0 by @renovate[bot] in #1602
- chore(deps): update module golang.org/x/net to v0.54.0 by @renovate[bot] in #1603
- chore(deps): update module golang.org/x/tools to v0.45.0 by @renovate[bot] in #1605
Full Changelog: v1.16.1...v1.17.0