github kimdre/doco-cd v0.85.0

3 hours ago

Nested deployment configurations with Auto-Discovery

You can now add additional, nested deployment configurations when use the auto-discovery feature to override the base-deployment configuration for a specifc project/stack. For more info see the documentation for Nested config overrides.

🚨 Breaking Changes to Settings in the Deployment Configuration

This Release introduces a configuration schema cleanup in the deployment settings for consistency with other settings, adds flexible shorthand syntax, and updates auto-discovery label handling in Docker Container.

Important

You need to change the following values:

  • Replace the following in your .doco-cd.yml files:
    • auto_discover and auto_discover_opts -> auto_discovery (merged together to one object)
    • destroy and destroy_opts -> destroy (merged together to one object)
    • build_opts -> build (Renamed)
  • Consider recreating containers that use the legacy cd.doco.deployment.auto_discover Docker label to migrate to cd.doco.deployment.auto_discovery in the next convenient moment.

Changes

Unified Config Objects

  • Auto-discovery config is now unified: auto_discover and auto_discover_opts are replaced by a single auto_discovery object:
    • auto_discovery.enabled
    • auto_discovery.depth
    • auto_discovery.delete
  • Destroy config is now unified: destroy (boolean) and destroy_opts are replaced by a single destroy object:
    • destroy.enabled
    • destroy.remove_volumes
    • destroy.remove_images
    • destroy.remove_dir

Renamed Fields for Build settings

build_opts has been renamed to build:

build:
  force_image_pull: true
  no_cache: true
  args:
    MY_ARG: value

Boolean Shorthand Support

auto_discovery, destroy, and reconciliation now accept either a boolean or a full object, enabling a concise shorthand:

# Shorthand (uses default options)
auto_discovery: true
destroy: true
reconciliation: false

# Full object (for customization)
auto_discovery:
  enabled: true
  depth: 2
  delete: false

Docker Label Changes

By renaming the auto_discovery deploy setting, I also changed their Container labels. The old labels are deprecated but still supported to prevent unnecessary redeployments/container recreations:

  • New labels: cd.doco.deployment.auto_discovery and cd.doco.deployment.auto_discovery.delete
  • Deprecation handling: Legacy auto_discover labels are still read as a fallback for existing containers, and a deprecation warning is logged, prompting migration.

What's Changed

🚨 Breaking Changes

  • refactor(deploy-config): configuration schema cleanup by @kimdre in #1306

✨ Features

  • feat(deploy-config): add support for nested deployment configuration by @kimdre in #1305

🌟 Improvements

  • refactor(external-secrets): seperate caching logic in 1password provider by @kimdre in #1304
  • refactor(config): reorganize config package by @kimdre in #1310
  • feat(reconciliation): add post-destroy stage and skip logic for reconciliation by @kimdre in #1312
  • refactor(deploy-config): rename 'enable' to 'enabled' for consistency by @kimdre in #1313

📦 Dependencies

  • chore(deps): update actions/add-to-project action to v2 by @renovate[bot] in #1302
  • chore(deps): update dependency zensical to v0.0.40 by @renovate[bot] in #1301
  • chore(deps): update module mvdan.cc/gofumpt to v0.10.0 by @renovate[bot] in #1308
  • chore(deps): update docker/github-builder digest to d4bb88e by @renovate[bot] in #1307

📚 Miscellaneous

  • Update 'remove_dir' setting description for clarity by @mikeage in #1311

New Contributors

Full Changelog: v0.84.0...v0.85.0

Don't miss a new doco-cd release

NewReleases is sending notifications on new releases.