Releases: garden-io/garden
v0.10.1-alpha.3
chore(release): bump version to 0.10.1-alpha.3
v0.10.1-2
v0.10.1-0
chore(release): bump version to v0.10.1-0 Note, the version in garden-service/package.json and garden-service/package-lock.json is v0.10.1 instead of v0.10.1-0. This is due to a bug in lerna that causes lerna bootstrap to fail when the version number is a pre-release. This shouldn't matter since we'll update the version anyway when we make the proper release.
v0.10.0
Yowza! This may be our biggest release ever.
When we first started working on Garden, eighteen months ago, we knew that developing systems locally was a stop-gap solution. With 0.10, we're taking another leap towards providing the best possible developer experience by letting you move your development workflow off your machine, into shared development clusters.
We've published a blog post describing our motivation behind all this.
Shared development environments
Garden can now handle all building and testing in-cluster. This means you no longer need to run Kubernetes locally, but instead have a shared development cluster for your entire team. Each developer has a private namespace in the cluster, but shares the same build and test caches.
Think of how much time you, your team, and CI system waste downloading and building the same images, or testing the exact same combination of code. By moving your development to a shared cluster, each of these operations only needs to happen once.
For more information, see how to prep your cluster, and how to configure Garden to build remotely.
Combine dev and CI
Another advantage of shared development environments is that you can call garden test from CI, pointing it at the same environment you developed in. This will spin up your stack and run all your tests—most of which will be cached from development. You can also use Garden in CI to spin up preview environments, or tear them down.
This greatly simplifies the average CI set-up, as you can get rid of all your scripts that would usually handle this, and no longer need to maintain separate configuration for development and testing.
For more information, see how you can use Garden in CI!
And then some!
We’ve also included a large number of major and minor improvements and fixes,
including much improved deployment status checks for Kubernetes workloads. We now “fail faster” and give much more information when issues are detected while deploying.
For the full list of changes (which is rather long), get a cup of coffee and peruse the changelog below:
BREAKING CHANGES
k8s providers no longer default to /bin/sh -c
as the entrypoint when running pods. This applies to tasks, tests and the run module
command.
The --loglevel
CLI option is now called --log-level
When using OpenFaaS with local-kubernetes
you now need to use the local-openfaas
provider, instead of openfaas
. You also need to
manually delete any existing <my namespace>--openfaas
namespaces from your cluster after upgrading.
Features
- implement version check (9b077946)
- config: add local.username and project.name config keys (8fb9b5fb)
- container: allow configuring # of replicas for container services (ad7c973b)
- k8s: add mechanism for cleaning up unused images in clusters (773365c3)
- add analytics (#819) (a2fa49ec)
- Implement get debug-info command (44f666e0)
- cli: add a dedicated options command (8dd53003)
- container: add configurable CPU and memory limits (77e71df5)
- container: add command option (afbd9539)
- core: providers can depend on and reference configs from each other (a67f5220)
- core: add persistent ID for each working copy (b49ecc37)
- core: allow .yaml endings for Garden config files (3a9195a0)
- k8s: add Kaniko as a builder option (2ccd0395)
- k8s: optionally enable ingress controller for remote k8s (6f321dcd)
- k8s: in-cluster building (5d351025)
Improvement
- k8s: bump default limits and sizes for cluster builder (6ec9f0a7)
- config: allow non-string values to be output directly (52ad5faf)
- config: allow chained conditionals in template strings (095e9436)
- config: explicitly validate sub-paths when applicable (6343603b)
- install: add install script for linux/mac and update docs (dbeb7544)
- k8s: add explicit cluster-init command for remote clusters (0a70a068)
- k8s: more robust and useful deployment status checks (4f1ff3be)
- k8s: don't require manual init when only Tiller is missing (693189b4)
- plugins: define schemas for module outputs and add docs (5f656ac2)
- windows: check for Hyper-V and ask if user wants Docker (21024f82)
- get source maps working in error tracebacks (36959cea)
- cli: rename --loglevel to --log-level + refactor log init (de5e78a3)
- dashboard: add graph filters to global context (73e3f5ca)
- dashboard: add task and test info pane to overview page (e97b8fa7)
- dashboard: add dependencies to each entity card (8b0a4305)
- dashboard: view ingress on lg screens instead of xl (bd28965e)
- k8s: always require manual init for remote clusters (4201dc53)
- service: add project root to config dump (520aadf3)
Performance Improvements
- improve performance of logs command (65afeef8)
Bug Fixes
- update messaging when checking version (afebab2d)
- openfaas: regression in openfaas provider init (bca7a626)
- wrong base image for garden-gcloud container build (c4d2d818)
- container entrypoint executable path should be passed as string (80e7cf18)
- cli: don't log internal fields in error detail (5e02c5df)
- cli: error log could crash if error details contained circular refs (b6bdf870)
- core: chokidar watcher on mac could segfault after reloading configs (b950823c)
- delete-env: delete services before calling cleanupEnvironment (e98485da)
- install: Add -UseBasicParsing to Windows installer (86dacd99)
- k8s: enable publishing container modules when using remote builders (5cfeca24)
- k8s: error when test+task result log exceeded 1MB (04a5a36a)
- k8s: don't store full version object with test+task results (c4e4059d)
- k8s: status checks on resources outside of app namespace would fail (13accce4)
- k8s: unreachable code when kubectl diff errors (29ae098a)
- k8s: handle List resources in manifests properly (487637fc)
- test: fixed flaky test by adding sort (8f8b0a49)
- vcs: error when stat-ing deleted file that's still in git index (3c21ba4a)
- windows: latest zeit/pkg produced broken binary for Windows (868a0d66)
- revisions to
command
option (51fc76ab) - include fixes, docs and refactoring for #778 (14063c06)
- crash when deploy and docker not installed (540edb02)
- some commands terminate with double new line (86fa9816)
- improved error messages for call command (2286a17e)
- always ignore .garden ([bb0e2df](https://gi...
v0.10.0-0
v0.9.12
Along with several bugfixes, this release includes a new and improved Overview page on the dashboard (and other dashboard UI improvements).
Thanks to Robin Winkelewski (@w9n) and John Reese (@jpreese) for their contributions to this release!
BREAKING CHANGE
This release removes the previously deprecated ability to use nested formatting strings.
Changelog
Features
- add test/task statuses to get status command (a1e2122b)
- render results as JSON for json logger (4ca179e6)
- dashboard: overall dashboard improvements (253316f2)
- dashboard: implement new overview page (d3ae347f)
Improvement
- font sizes and header (55f7d961)
- commands: added task/test fields to get-status response (1f34f294)
- dashboard: fix ui issues (488369ec)
- dashboard: start dashboard before init and keep same port (e3bc9ee1)
- task-graph: raise concurrency limit (a6343d51)
Bug Fixes
- make global CLI opts available to commands (70bce731)
- build deps not watched when using -w flag (36e8c67b)
- config: recursion error with invalid template strings (0cbcb988)
- config: validation fix for template strings (961dd707)
- dashboard: add taskError event + small ui tweaks (d308b89c)
- docs: update the path to run garden-debug (0df0e849)
- k8s: use correct container handlers when building modules (e150a990)
- k8s: ensure env is prepared (c2cd689d)
- k8s: helm modules weren't identified as hot reloadable (0b7ce98e)
- k8s: fix type error when Kubernetes is not running (412fe573)
- k8s: ensure test results get stored if test fails (7ec1bae8)
- logger: fix spinner pos (12d0dd4b)
- logger: add info symbol to active basic entries (08bb5945)
Code Refactoring
v0.9.11
This release includes several bugfixes and minor improvements around logging and error handling for Kubernetes plugins.
Also new in this release is the 'more info' info pane for test and task nodes on the Stack Graph tab of the Dashboard, which shows details of the last run (including the full log of the run).
Finally, many thanks to @jpreese for his contribution to this release! 🎉
Features
- dashboard: add 'more info' pane to stack graph (bee72e65)
Bug Fixes
- k8s: allow unknown fields in provider config (921243df)
- core: set name prefix on plugin services, tasks and tests (81b8d581)
- k8s: avoid repeated Tiller install causing slower init (766ef188)
- k8s: use statuscodeerror type when using request-promise (e61fe337)
- task-graph: ensure graph node keys and event payload keys match (47e84b4c)
- vcs: don't fork a process for every untracked file (ef439923)
Code Refactoring
v0.9.10
This release adds support for microk8s, which can now be used with Garden on supported Linux platforms.
It also includes some minor improvements to error handling around the --hot
/--hot-reload
option in the CLI, as well as some minor bug fixes.
Features
- cli: allow --hot=* in dev/deploy commands (15db6ed)
- dashboard: added taskProcessing state (10bc275)
- k8s: add microk8s support (e113c69)
- k8s: automatically fetch kubectl when needed (d79f7a4)
Bug Fixes
v0.9.9
This release mostly consists of bug fixes for regressions introduced in the 0.9.8 release (which we took down in the meantime, so we're including that release's changelog here as well).
As of 0.9.8, Garden bases its versioning on hashes of file contents instead of Git commits (and modified timestamps). This approach provides some added flexibility for developing Garden, and decouples our versioning semantics from Git.
0.9.8 introduced the option to specify which files are considered part of the module sources via the include
field.
Example:
module:
...
include:
- Dockerfile
- my-app.js
Further, this improves handling of .gardenignore
files, so they now work in subdirectories as well as the project root.
0.9.9
Bug Fixes
- config-graph: remove superfluous data from rendered graph nodes (fa0d820)
- vcs: fixed path handling for modified files (ec82c22)
- vcs: handle case when file is removed while listing VCS files (7aeec2f)
- vcs: exclude .garden from version hashing (0dc1208)
0.9.8
Bug Fixes
- cli: avoid crash with circular references in error details (92b31c0)
- config: issue with nested keys in conditional template strings (35ad3df)
- config: catch module self-references instead of crashing (2fb8720)
- k8s: skip kubectl diff for container type (8dfb6a7)
- run: correctly ignore task dependencies (e51778b)
Code Refactoring
- add ui state provider (dd36a0e)
- graph: make sure all tasks are included in process results (91afd59)
Features
v0.9.7
This release contains some bug fixes and a brand new kubernetes module type for those times when you want to deploy your own manifests, but don’t need the features and complexity of Helm modules.
Changelog
Features
- k8s: add kubernetes module type (1488cd8)
Bug Fixes
- include resolved config in module version (31b2936)
- ensure CLI returns correct exit code (#626) (eeb069f)
- whitespaces instead of dots in terminal (f6445c7)
- dashboard: awkward name for task nodes in Stack Graph (616c8b5)
- dashboard: graph ui fixes (60c746e)
- k8s: handle logs properly for all module types and resources (56a15ba)
- k8s: report correct deployment status when replicas=0 (a7a2983)