What's Changed
- Doco-CD is now built with the Docker CLI buildx plugin and supports building images that require BuildKit.
- Added support to use OCI artifacts for deployments.
- Poll intervals can now be definied as integer (
60), numeric strings ("60") and Go duration strings ("60s"or"1m").
Intervals are now always shown in the logs as Go durations. - Added new options to control volume and image cleanup when removing stacks with auto-discovery, see the docs.
- Doco-CD attempts to repair broken/corrupt Git repository automatically.
- Polling should no longer handle ephemeral containers (scheduled jobs) as reconciliation drift
- When the expected deployment config is not found in the repository, Doco-CD will now fail the deployment instead of falling back to default values. Deployment config files (
.doco-cd.yml) are now always required. - Added a new
wait_running_jobsdeployment configuration option and label to let doco-cd wait for running jobs before running a deployment to prevent long-running jobs from being interrupted. - Fixed an issue that caused doco-cd to ignore autodicovery config changes.
Note
The auto-discovery config is stored as a container label. This is neccesarry so that doco-cd is able to know how to clean up obsolete/removed stacks. When upgrading your doco-cd instance, all containers will be recreated once to hold the correct auto-discovered stack configuration.
✨ Features
- feat(oci): add support for OCI artifacts as a deployment source by @kimdre in #1348
- feat(auto-discovery): enhance configuration with volume and image removal options by @kimdre in #1354
- feat(git): implement repository corruption detection and repair mechanism by @kimdre in #1361
- feat(scheduler): add option to wait for running jobs before deploying by @kimdre in #1365
🌟 Improvements
- refactor(ssh): optimize endpoint checks by @kimdre in #1350
- feat(build): vendor buildx CLI plugin to enable BuildKit Dockerfiles by @SamORichards in #1340
- refactor(poll): update interval handling to use Go durations by @kimdre in #1352
- fix(deploy): require deploy config file by @kimdre in #1362
- feat(scheduler): add ephemeral label handling for one-off jobs by @kimdre in #1353
- feat(compose): improve service readiness check by @kimdre in #1383
- fix(auto-discovery): improve performance by @kimdre in #1385
🐛 Bug Fixes
- feat(auto-discovery): implement auto-discovery config label drift detection by @kimdre in #1363
- fix: prevent infinite hang by @qianlongzt in #1384
📦 Dependencies
- chore(deps): update golang:1.26.3 docker digest to 633d23b by @renovate[bot] in #1343
- fix(deps): update module github.com/getsops/sops/v3 to v3.13.0 by @renovate[bot] in #1342
- chore(deps): update module golang.org/x/tools to v0.45.0 by @renovate[bot] in #1341
- fix(deps): update module github.com/go-git/go-billy/v5 to v5.9.0 by @renovate[bot] in #1344
- fix(deps): update module github.com/go-git/go-git/v5 to v5.19.0 by @renovate[bot] in #1345
- chore(deps): update golang:1.26.3 docker digest to 313faae by @renovate[bot] in #1347
- chore(deps): update github/codeql-action digest to 9e0d7b8 by @renovate[bot] in #1355
- fix(deps): update module github.com/getsops/sops/v3 to v3.13.1 by @renovate[bot] in #1357
- fix(deps): update module github.com/google/go-containerregistry to v0.21.5 by @renovate[bot] in #1358
- chore(deps): update docker/buildx-bin docker tag to v0.34.0 by @renovate[bot] in #1359
- fix(deps): update module github.com/docker/cli to v29.5.0+incompatible by @renovate[bot] in #1360
- chore(deps): update dependency zensical to v0.0.42 by @renovate[bot] in #1356
- chore(deps): update gcr.io/distroless/base-debian13 docker digest to f2df870 by @renovate[bot] in #1364
- chore(deps): update codecov/codecov-action action to v6.0.1 by @renovate[bot] in #1367
- fix(deps): update module github.com/docker/cli to v29.5.1+incompatible by @renovate[bot] in #1368
- fix(deps): update module github.com/go-git/go-git/v5 to v5.19.1 by @renovate[bot] in #1373
- chore(deps): update dependency zensical to v0.0.43 by @renovate[bot] in #1371
- chore(deps): update docker/buildx-bin docker tag to v0.34.1 by @renovate[bot] in #1372
- chore(deps): update dataaxiom/ghcr-cleanup-action digest to 34a2b6c by @renovate[bot] in #1370
- chore(deps): update docker/dockerfile:1 docker digest to 87999aa by @renovate[bot] in #1375
- chore(deps): update docker/github-builder digest to 0738332 by @renovate[bot] in #1376
- chore(deps): update dataaxiom/ghcr-cleanup-action digest to 374e202 by @renovate[bot] in #1379
- chore(deps): update docker/build-push-action digest to f9f3042 by @renovate[bot] in #1380
- chore(deps): update docker/setup-buildx-action digest to d7f5e7f by @renovate[bot] in #1382
- chore(deps): update docker/metadata-action digest to 80c7e94 by @renovate[bot] in #1381
📚 Miscellaneous
- chore: ci skip build dev duplicate build by @qianlongzt in #1349
- docs: improve docs on encryption and nested config by @JojoMee in #1377
New Contributors
- @SamORichards made their first contribution in #1340
Full Changelog: v0.88.0...v0.89.0