What's Changed
New configuration options:
DATA_HOST_PATH: Optional source path of the deployment data mount as seen by the target Docker daemon (See Remote Docker daemons). Automatically detected by default.- Added configurable retention for rotated Docker Swarm configs and secrets, including an option to disable automatic pruning. See Docker Settings and Deploy Settings in the wiki.
Improvements, fixes and changes
- (Swarm) Rollbacks are detected and reported correctly now.
- (Swarm) Fixed a bug that caused all tasks/services of a stack to be recreated on every deployment. This fix required some bigger changes under the hood, that requires users to take action (see the boxes below).
Important
The default value of the auto_discovery.delete option changed to false. Users, that want to auto-remove obsolete projects/stacks, need to explicitly set auto_discovery.delete: true in their deployment config now.
Note
- The first deployment after upgrading doco-cd will trigger a recreation of all tasks/containers in the stack to set the correct doco-cd metadata.
- The REST API response shape for the Stack endpoints changed
- Compose secrets and configs and external secrets are now supported in scheduled jobs.
- A message gets send when a deployment starts and
APPRISE_NOTIFY_LEVELis set toinfo. - Diagnostics and troubleshooting for registry authentication has been improved. See Private Container Registries in the wiki.
- doco-cd is now able to recover from missing deployed commits (e.g. after a force push)
- Added more granular labeling for Prometheus metrics by allowing deployment metric labels (e.g. errors and durations) to be tracked per repository and deployment.
✨ Features
- feat: support explicit data host path by @nosovk in #1639
- feat(swarm): add configuration options for config and secret revisions retention by @kimdre in #1652
🌟 Improvements
- feat(notification): notify on started deployment by @kimdre in #1633
- fix(notification): log Apprise response body on notification request failures by @kimdre in #1634
- fix(autodiscovery): change default value of delete option to false by @kimdre in #1637
- fix(scheduler): support Compose secrets and configs in scheduled jobs by @kimdre in #1640
- fix(metrics): include deployment names in repository metrics labels by @kimdre in #1643
- fix(docker): detect Swarm rollbacks as deployment failures by @kimdre in #1644
- fix(docker): improve registry auth diagnostics by @kimdre in #1647
- feat(git): recover gracefuly from missing deployed commits after force push by @kimdre in #1650
- refactor(git): replace ZeroSHA with plumbing.ZeroHash in payload handling by @kimdre in #1651
🐛 Bug Fixes
📦 Dependencies
- chore(deps): update docker/github-builder digest to a492c6d by @renovate[bot] in #1630
- chore(deps): update golang:1.26.5 docker digest to 2005724 by @renovate[bot] in #1631
- fix(deps): update module github.com/google/go-containerregistry to v0.21.9 by @renovate[bot] in #1642
- fix(deps): update aws-sdk-go-v2 monorepo by @renovate[bot] in #1641
- fix(deps): update module github.com/compose-spec/compose-go/v2 to v2.14.0 by @renovate[bot] in #1646
- fix(deps): update module github.com/sigstore/cosign/v3 to v3.1.3 by @renovate[bot] in #1645
📚 Miscellaneous
- fix: do not require a C compiler for the test-nobitwarden target by @nosovk in #1627
- docs: document the Docker API permissions required for each feature by @nosovk in #1626
- fix(swarm): stop recreating all tasks of a stack on every deployment by @nosovk in #1629
- test(swarm): update container name retrieval to use stack name prefix by @kimdre in #1648
- test(docker): improve log retrieval timing in Compose signal tests by @kimdre in #1649
New Contributors
Full Changelog: v0.106.0...v0.107.0