github garden-io/garden 0.12.27

latest releases: edge-bonsai, 0.13.41, 0.13.40...
3 years ago

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)

Don't miss a new garden release

NewReleases is sending notifications on new releases.