Garden 0.12.27 is out! 🎉
This release includes new sync modes and configuration options for dev mode, a more robust logs
command and more flexibility in template string resolution for module templates.
Here are some highlights from the release, but please check the release notes below for a full list of changes introduced in this release.
Happy hacking!
Reverse sync modes for dev mode
This release adds the one-way-reverse
and one-way-replica-reverse
sync modes for dev mode when using container
, kubernetes
and helm
services.
This adds a great deal of flexibility and specificity when a full two-way sync is not desirable (especially since conflicts can happen with the two-way-safe
Mutagen mode).
In general, it's easiest to get started with the one-way
or two-way
sync modes, and then graduate to a more fine-grained setup based on one-way-replicated
and/or one-way-replicated-reverse
once you're ready to specify exactly which paths to sync and which files/directories to ignore from the sync (since this gives you a conflict-free setup).
See the code synchronization guide for more details.
Provider-level defaults for dev mode
Excludes and permission/owner/group settings can now be set on the provider level for kubernetes
and local-kubernetes
.
Defaults specified there will be extended/overridden by corresponding settings on individual sync specs.
This helps reduce clutter when the same excludes and permission settings are commonly applied across services/modules.
Here's an example from the updated code synchronization guide:
kind: Project
...
providers:
- name: kubernetes
...
# Configure project-wide exclusion rules and default permission/ownership settings
# for synced files/directories.
devMode:
defaults:
exclude:
- "/**/node_modules"
owner: 1000 # <- set an integer user ID or a string name
group: 1000 # <- set an integer group ID or a string name
fileMode: 0666 # <- set the permission bits (as octals) for synced files
directoryMode: 0777 # <- set the permission bits (as octals) for synced directories
See the code synchronization guide for more details.
Module templates: Allow skipping source template rendering in generateFiles
In many cases, it's not desirable to pass files specified under generateFiles[].sourcePath
through template resolution.
This release adds a resolveTemplates
boolean flag control that behavior explicitly, which makes module templates more flexible and easier to use in some cases.
Changelog
Features
- cloud: add trigger support for push events (0db506d2)
- config: allow skipping source template rendering in generateFiles (e8406690)
- k8s: reverse sync modes (3fece6ff)
- k8s: provider-level defaults for dev mode (d6c62286)
Improvements
- cloud: more robust log streaming (67f94bfe)
- dev-mode: log sync conflicts (7467496e)
- port-forward: also bind to ::1 address by default (0bd44ef4)
Bug Fixes
- fix namespace log line (a4fa3626)
- cli: get rid of occasional EPIPE error printed after process exit (571561cb)
- core: don't add mutating env vars to runtime context (18c0f1d3)
- core: ensure we return all callbacks when cloning files (ecc43b94)
- core: omit
output.detail
from graph events (e81a4976) - core: fix handling of empty option values (ed8cee76)
- workflows: defer provider resolution (039cca45)