diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5753b3eb65..d5ccf15726 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,37 @@
+
+
+## [v0.10.16](https://github.com/garden-io/garden/compare/v0.10.15...v0.10.16) (2019-12-06)
+
+### Bug Fixes
+
+* broken link to 'Using Garden' page ([87142c63](https://github.com/garden-io/garden/commit/87142c63))
+* **build:** build status log line kept spinning when --force=false ([7ea5f31a](https://github.com/garden-io/garden/commit/7ea5f31a))
+* **build:** fix intermittent concurrency issues when staging build ([f7057580](https://github.com/garden-io/garden/commit/f7057580))
+* **cli:** fix janky spinner when initializing providers ([eb0eb33d](https://github.com/garden-io/garden/commit/eb0eb33d))
+* **config:** throw error on base module schema validation errors ([1e129b65](https://github.com/garden-io/garden/commit/1e129b65))
+* **core:** plugins with base now inherit the config schema ([ea3a0060](https://github.com/garden-io/garden/commit/ea3a0060))
+* **core:** error when services had runtime dependencies on task outputs ([d26595f6](https://github.com/garden-io/garden/commit/d26595f6))
+* **dashboard:** fix hooks render order on logs page ([fb80d34b](https://github.com/garden-io/garden/commit/fb80d34b))
+* **k8s:** env vars weren't passed to services with `garden run service` ([8d66f8a8](https://github.com/garden-io/garden/commit/8d66f8a8))
+* **k8s:** don't truncate container build logs ([d31aa8ec](https://github.com/garden-io/garden/commit/d31aa8ec))
+* **k8s:** kaniko would hang when building remote images ([78d2df51](https://github.com/garden-io/garden/commit/78d2df51))
+* **openfaas:** add retry when deploying in case faas-netes is starting ([ec37fd2c](https://github.com/garden-io/garden/commit/ec37fd2c))
+
+### Code Refactoring
+
+* **k8s:** allow overriding the default garden-system namespace ([de8c8253](https://github.com/garden-io/garden/commit/de8c8253))
+
+### Features
+
+* added securityContext for production flag ([a88edfac](https://github.com/garden-io/garden/commit/a88edfac))
+* **k8s:** allow pulling base images when building in cluster ([e8679032](https://github.com/garden-io/garden/commit/e8679032))
+
+### Improvement
+
+* add protection to more commands ([df76dc30](https://github.com/garden-io/garden/commit/df76dc30))
+* **config:** allow provider configs to reference variables ([56175ee1](https://github.com/garden-io/garden/commit/56175ee1))
+
+
## [v0.10.15](https://github.com/garden-io/garden/compare/v0.10.14...v0.10.15) (2019-11-15)
diff --git a/README.md b/README.md
index 182f5203c8..6163749d35 100644
--- a/README.md
+++ b/README.md
@@ -21,7 +21,7 @@
- **Shared development clusters with fast in-cluster building and image caching for Kubernetes.** This allows teams to easily share build and test results, and for CI to become much faster because it can use the same build and test caches as the team.
- Get helpful information when your deployments fail. Garden collects events and logs and displays them prominently when issues come up, and strives to "fail fast", so that you don't need to wait for timeouts or dive into kubectl whenever something is wrong.
- Easily write [integration test suites](https://docs.garden.io/guides/development-workflows#tests-and-dependencies) that have runtime dependencies. Run tests *before* pushing your code to CI, and avoid having to mock or stub your own services.
-- Define [tasks](https://github.com/garden-io/garden/tree/v0.10.15/examples/tasks) that run as part of your deployment process—e.g. database migrations or scaffolding.
+- Define [tasks](https://github.com/garden-io/garden/tree/v0.10.16/examples/tasks) that run as part of your deployment process—e.g. database migrations or scaffolding.
- [Hot reload](https://docs.garden.io/guides/hot-reload) lets you near-instantaneously update code and static files in containers as they run, for services that support in-place reloading.
- [Remote sources](https://docs.garden.io/guides/using-remote-sources) support allows your project to automatically pull code from different repositories.
- The built-in web **dashboard** gives you a full overview of your stack (and many more UI features are planned to further aid with development).
@@ -53,7 +53,7 @@
## Quick start
-With the CLI installed, you can try out a few commands using the [Demo Project](https://docs.garden.io/examples/demo-project) from our [example projects](https://github.com/garden-io/garden/tree/v0.10.15/examples). The example project consists of a couple of simple modules, each defining one service.
+With the CLI installed, you can try out a few commands using the [Demo Project](https://docs.garden.io/examples/demo-project) from our [example projects](https://github.com/garden-io/garden/tree/v0.10.16/examples). The example project consists of a couple of simple modules, each defining one service.
*Note: This example assumes you have a local Kubernetes instance running.*
@@ -98,11 +98,11 @@ Overview:
- [Using Garden](https://docs.garden.io/using-garden)—short Guides on incrementally adding the main Garden constructs to your project.
- [Guides](https://docs.garden.io/guides)—development workflows, Garden configuration files, usage with remote Kubernetes clusters, and setting up hot reload.
-- [Example Projects](https://docs.garden.io/examples)—guides based on some of the [examples](https://github.com/garden-io/garden/tree/v0.10.15/examples).
+- [Example Projects](https://docs.garden.io/examples)—guides based on some of the [examples](https://github.com/garden-io/garden/tree/v0.10.16/examples).
- [Reference](https://docs.garden.io/reference)—glossary, commands reference, configuration files reference, and template strings reference.
- [FAQs](https://docs.garden.io/#faqs).
-The [examples](https://github.com/garden-io/garden/tree/v0.10.15/examples) folder of our repository also shows a myriad of different ways to use Garden. Check out the README in each example for more information
+The [examples](https://github.com/garden-io/garden/tree/v0.10.16/examples) folder of our repository also shows a myriad of different ways to use Garden. Check out the README in each example for more information
## How does it work?
diff --git a/dashboard/package-lock.json b/dashboard/package-lock.json
index 3b2de6cd7c..c83061b176 100644
--- a/dashboard/package-lock.json
+++ b/dashboard/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "dashboard",
- "version": "0.1.15",
+ "version": "0.1.16",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/dashboard/package.json b/dashboard/package.json
index a0e3654c30..6629e9d556 100644
--- a/dashboard/package.json
+++ b/dashboard/package.json
@@ -1,6 +1,6 @@
{
"name": "dashboard",
- "version": "0.1.15",
+ "version": "0.1.16",
"private": true,
"devDependencies": {
"@types/d3": "^5.7.2",
@@ -35,7 +35,7 @@
"emotion": "^10.0.9",
"flexboxgrid": "^6.3.1",
"flexboxgrid-helpers": "^1.1.3",
- "garden-service": "^0.10.15",
+ "garden-service": "^0.10.16",
"http-proxy-middleware": "^0.19.1",
"immer": "^3.1.3",
"lodash": "^4.17.11",
diff --git a/docs/examples/README.md b/docs/examples/README.md
index ccac7110af..b6b17b3140 100644
--- a/docs/examples/README.md
+++ b/docs/examples/README.md
@@ -18,5 +18,5 @@ This is an example project of how to set up TLS using the `mkcert` tool.
## Other example projects
-You can also go straight to the [examples](https://github.com/garden-io/garden/tree/v0.10.15/examples) directory in the
+You can also go straight to the [examples](https://github.com/garden-io/garden/tree/v0.10.16/examples) directory in the
Garden repository, to look at a variety of fully defined example projects.
diff --git a/docs/examples/demo-project.md b/docs/examples/demo-project.md
index c71e629d05..6efb981589 100644
--- a/docs/examples/demo-project.md
+++ b/docs/examples/demo-project.md
@@ -17,7 +17,7 @@ This tutorial assumes that you already have a running [installation of Garden](.
## Clone the example repo
-The code for this tutorial can be found in our Github repository under the [examples directory](https://github.com/garden-io/garden/tree/v0.10.15/examples). We'll use the [demo-project-start](https://github.com/garden-io/garden/tree/v0.10.15/examples/demo-project-start/) example and work our way from there. The final version is under [demo-project](https://github.com/garden-io/garden/tree/v0.10.15/examples/demo-project).
+The code for this tutorial can be found in our Github repository under the [examples directory](https://github.com/garden-io/garden/tree/v0.10.16/examples). We'll use the [demo-project-start](https://github.com/garden-io/garden/tree/v0.10.16/examples/demo-project-start/) example and work our way from there. The final version is under [demo-project](https://github.com/garden-io/garden/tree/v0.10.16/examples/demo-project).
First, let's clone the examples repo, change into the directory, and take a look inside:
diff --git a/docs/examples/tls-project.md b/docs/examples/tls-project.md
index 6cadb626af..9ef653e367 100644
--- a/docs/examples/tls-project.md
+++ b/docs/examples/tls-project.md
@@ -8,7 +8,7 @@ This project shows how you can configure a TLS certificate to use for local deve
For the example to work you need to configure a local certificate authority (CA) on your computer for development. We'll use
[mkcert](https://github.com/FiloSottile/mkcert) for this purpose.
-_Note: The source code for this project can be found at: [https://github.com/garden-io/garden/tree/v0.10.15/examples/local-tls](https://github.com/garden-io/garden/tree/v0.10.15/examples/local-tls)._
+_Note: The source code for this project can be found at: [https://github.com/garden-io/garden/tree/v0.10.16/examples/local-tls](https://github.com/garden-io/garden/tree/v0.10.16/examples/local-tls)._
## Setup
diff --git a/docs/examples/using-garden-in-ci.md b/docs/examples/using-garden-in-ci.md
index 3f3d7f7221..9fbf167501 100644
--- a/docs/examples/using-garden-in-ci.md
+++ b/docs/examples/using-garden-in-ci.md
@@ -23,7 +23,7 @@ The guide is based on the [Remote Kubernetes](https://docs.garden.io/guides/remo
## Project overview
-The project is based on our basic [demo-project](https://github.com/garden-io/garden/tree/v0.10.15/examples/demo-project) example, but configured for multiple environments. Additionally it contains a CircleCI config file. You'll find the entire source code [here](https://github.com/garden-io/ci-demo-project).
+The project is based on our basic [demo-project](https://github.com/garden-io/garden/tree/v0.10.16/examples/demo-project) example, but configured for multiple environments. Additionally it contains a CircleCI config file. You'll find the entire source code [here](https://github.com/garden-io/ci-demo-project).
The CI pipeline in configured so that Garden tests the project and deploys it to a **preview** environment on every pull request. Additionally, it tests the project and deploys it to a separate **staging** environment on every merge to the `master` branch.
diff --git a/docs/guides/container-modules.md b/docs/guides/container-modules.md
index 05c618da85..5b6e677942 100644
--- a/docs/guides/container-modules.md
+++ b/docs/guides/container-modules.md
@@ -57,7 +57,7 @@ If you specify a tag as well, for example `image: my-org/my-container:v1.2.3`, t
In the case of Kubernetes, Garden will take the simplified `container` service specification and convert it to the corresponding Kubernetes manifests, i.e. Deployment, Service and (if applicable) Ingress resources.
-Here, for example, is the spec for the `frontend` service in our example [demo project](https://github.com/garden-io/garden/tree/v0.10.15/examples/demo-project):
+Here, for example, is the spec for the `frontend` service in our example [demo project](https://github.com/garden-io/garden/tree/v0.10.16/examples/demo-project):
```yaml
kind: Module
@@ -141,7 +141,7 @@ kubectl --namespace create secret generic --from-literal=some
Where `` is your project namespace (which is either set with `namespace` in your provider config, or defaults to your project name). There are notably other, more secure ways to create secrets via `kubectl`. Please refer to the offical [Kubernetes Secrets docs](https://kubernetes.io/docs/concepts/configuration/secret/#creating-a-secret-using-kubectl-create-secret) for details.
-Also check out the [Kubernetes Secrets example project](https://github.com/garden-io/garden/tree/v0.10.15/examples/kubernetes-secrets) for a working example.
+Also check out the [Kubernetes Secrets example project](https://github.com/garden-io/garden/tree/v0.10.16/examples/kubernetes-secrets) for a working example.
## Running tests
diff --git a/docs/guides/remote-kubernetes.md b/docs/guides/remote-kubernetes.md
index a193ab8e04..bc443dca0e 100644
--- a/docs/guides/remote-kubernetes.md
+++ b/docs/guides/remote-kubernetes.md
@@ -124,7 +124,7 @@ to your registry's documentation on how to do that (for Docker Hub you simply ru
### Ingress, TLS and DNS
-By default, Garden will not install an ingress controller for remote environments. This can be toggled by setting the [`setupIngressController` flag](../reference/providers/kubernetes.md#providerssetupingresscontroller) to `nginx`. Alternatively, you can set up your own ingress controller, e.g. using [Traefik](https://traefik.io/), [Ambassador](https://www.getambassador.io/) or [Istio](https://istio.io/). You can find examples for [using Garden with Ambassador](https://github.com/garden-io/garden/tree/v0.10.15/examples/ambassador) and [with Istio](https://github.com/garden-io/garden/tree/v0.10.15/examples/istio) in our [examples directory](https://github.com/garden-io/garden/tree/v0.10.15/examples).
+By default, Garden will not install an ingress controller for remote environments. This can be toggled by setting the [`setupIngressController` flag](../reference/providers/kubernetes.md#providerssetupingresscontroller) to `nginx`. Alternatively, you can set up your own ingress controller, e.g. using [Traefik](https://traefik.io/), [Ambassador](https://www.getambassador.io/) or [Istio](https://istio.io/). You can find examples for [using Garden with Ambassador](https://github.com/garden-io/garden/tree/v0.10.16/examples/ambassador) and [with Istio](https://github.com/garden-io/garden/tree/v0.10.16/examples/istio) in our [examples directory](https://github.com/garden-io/garden/tree/v0.10.16/examples).
You'll also need to point one or more DNS entries to your cluster, and configure a TLS certificate for the hostnames
you will expose for ingress.
diff --git a/docs/guides/terraform.md b/docs/guides/terraform.md
index e5618f8331..90dc34cc2e 100644
--- a/docs/guides/terraform.md
+++ b/docs/guides/terraform.md
@@ -10,7 +10,7 @@ Under the hood, Garden simply wraps Terraform, so there's no magic involved. Gar
The `terraform` provider can both provision a Terraform stack when initializing Garden, or through `terraform` modules that are deployed like other services in your stack.
-The former, having a single Terraform stack for your whole project, is most helpful if other provider configurations need to reference the outputs from your Terraform stack, or if most/all of your services depend on the infrastructure provisioned in your Terraform stack. A good example of this is the [terraform-gke example](https://github.com/garden-io/garden/tree/v0.10.15/examples/terraform-gke) project, which provisions a GKE cluster that the `kubernetes` provider then runs on, along with the services in the project. The drawback is that Garden doesn't currently watch for changes in those Terraform files, and you need to restart to apply new changes, or apply them manually.
+The former, having a single Terraform stack for your whole project, is most helpful if other provider configurations need to reference the outputs from your Terraform stack, or if most/all of your services depend on the infrastructure provisioned in your Terraform stack. A good example of this is the [terraform-gke example](https://github.com/garden-io/garden/tree/v0.10.16/examples/terraform-gke) project, which provisions a GKE cluster that the `kubernetes` provider then runs on, along with the services in the project. The drawback is that Garden doesn't currently watch for changes in those Terraform files, and you need to restart to apply new changes, or apply them manually.
The latter method, using one or more `terraform` _modules_, can be better if your other providers don't need to reference the stack outputs but your _services, tasks and tests_ do. In this style, you can basically create small Terraform stacks that are part of your Stack Graph much like other services. A good example would be deploying a database instance, that other services in your project can then connect to.
@@ -29,7 +29,7 @@ providers:
...
```
-If you'd like to apply the stack when starting Garden, and then reference the stack outputs in other providers (or modules), you need to add a couple of more flags. Here's the project config from the aforementioned [terraform-gke example](https://github.com/garden-io/garden/tree/v0.10.15/examples/terraform-gke):
+If you'd like to apply the stack when starting Garden, and then reference the stack outputs in other providers (or modules), you need to add a couple of more flags. Here's the project config from the aforementioned [terraform-gke example](https://github.com/garden-io/garden/tree/v0.10.16/examples/terraform-gke):
```yaml
kind: Project
@@ -84,6 +84,6 @@ Much like other modules, you can also reference Terraform definitions in other r
## Next steps
-Check out the [terraform-gke example](https://github.com/garden-io/garden/tree/v0.10.15/examples/terraform-gke) project. Also take a look at the [Terraform provider reference](../reference/providers/terraform.md) and the [Terraform module type reference](../reference/module-types/terraform.md) for details on all the configuration parameters.
+Check out the [terraform-gke example](https://github.com/garden-io/garden/tree/v0.10.16/examples/terraform-gke) project. Also take a look at the [Terraform provider reference](../reference/providers/terraform.md) and the [Terraform module type reference](../reference/module-types/terraform.md) for details on all the configuration parameters.
If you're having issues with Terraform itself, please refer to the [official docs](https://www.terraform.io/docs/index.html).
diff --git a/docs/guides/using-helm-charts.md b/docs/guides/using-helm-charts.md
index a7fd2fa7bb..a513313f6d 100644
--- a/docs/guides/using-helm-charts.md
+++ b/docs/guides/using-helm-charts.md
@@ -2,13 +2,13 @@
The [Helm](https://helm.sh/) package manager is one of the most commonly used tools for managing Kubernetes manifests. Garden supports using your own Helm charts, alongside your container modules, via the `kubernetes` and `local-kubernetes` providers. This guide shows you how to configure and use 3rd-party (or otherwise external) Helm charts, as well as your own charts in your Garden project. We also go through how to set up tests, tasks and hot-reloading for your charts.
-In this guide we'll be using the [vote-helm](https://github.com/garden-io/garden/tree/v0.10.15/examples/vote-helm) project. If you prefer to just check out a complete example, the project itself is also a good resource.
+In this guide we'll be using the [vote-helm](https://github.com/garden-io/garden/tree/v0.10.16/examples/vote-helm) project. If you prefer to just check out a complete example, the project itself is also a good resource.
You may also want to check out the full [helm module reference](../reference/module-types/helm.md).
_Note: If you only need a way to deploy some Kubernetes manifests and don't need all the features of Helm, you can_
_use the simpler `kubernetes` module type instead. Check out the_
-_[kubernetes-module](https://github.com/garden-io/garden/tree/v0.10.15/examples/kubernetes-module) example for more info._
+_[kubernetes-module](https://github.com/garden-io/garden/tree/v0.10.16/examples/kubernetes-module) example for more info._
## Basics
@@ -310,5 +310,5 @@ Check out the full [helm module reference](../reference/module-types/helm.md) fo
[vote-helm](https://github.com/garden-io/garden-example-vote-helm) example project for a full project that showcases
Garden's Helm support.
-Also check out the [kubernetes-module](https://github.com/garden-io/garden/tree/v0.10.15/examples/kubernetes-module)
+Also check out the [kubernetes-module](https://github.com/garden-io/garden/tree/v0.10.16/examples/kubernetes-module)
example for a simpler alternative, if you don't need all the features of Helm.
diff --git a/docs/guides/using-remote-sources.md b/docs/guides/using-remote-sources.md
index 3afd156ad8..59edf75b9f 100644
--- a/docs/guides/using-remote-sources.md
+++ b/docs/guides/using-remote-sources.md
@@ -6,7 +6,7 @@ You can import **two** types of remote repositories with Garden:
> **Remote _module_**: The source code for a single Garden module. In this case, the `garden.yml` config file is stored in the main project repository while the module code itself is in the remote repository.
-The code examples below are from our [remote sources example](https://github.com/garden-io/garden/tree/v0.10.15/examples/remote-sources).
+The code examples below are from our [remote sources example](https://github.com/garden-io/garden/tree/v0.10.16/examples/remote-sources).
## Importing Remote Repositories
diff --git a/docs/using-garden/adding-modules.md b/docs/using-garden/adding-modules.md
index 04ddb02eab..0997197812 100644
--- a/docs/using-garden/adding-modules.md
+++ b/docs/using-garden/adding-modules.md
@@ -9,7 +9,7 @@ Modules are the basic **unit of building** in Garden. They are usually the first
A module can correspond to a Dockerfile and its associated code, a remote Docker image, a Helm chart, an OpenFaaS function, and more, all depending on the module type.
-Below is a simple example of a module's `garden.yml` (from the [`demo-project`](https://github.com/garden-io/garden/tree/v0.10.15/examples/demo-project) example project):
+Below is a simple example of a module's `garden.yml` (from the [`demo-project`](https://github.com/garden-io/garden/tree/v0.10.16/examples/demo-project) example project):
```yaml
kind: Module
diff --git a/docs/using-garden/running-tasks.md b/docs/using-garden/running-tasks.md
index 02a1c91c6a..801e721c64 100644
--- a/docs/using-garden/running-tasks.md
+++ b/docs/using-garden/running-tasks.md
@@ -85,7 +85,7 @@ tasks:
- postgres
```
-The full example is [available here](https://github.com/garden-io/garden/blob/v0.10.11/examples/vote-helm/postgres/garden.yml). There's [also a version](https://github.com/garden-io/garden/tree/v0.10.15/examples/vote) that uses the `container` module type instead of Helm charts.
+The full example is [available here](https://github.com/garden-io/garden/blob/v0.10.11/examples/vote-helm/postgres/garden.yml). There's [also a version](https://github.com/garden-io/garden/tree/v0.10.16/examples/vote) that uses the `container` module type instead of Helm charts.
## Advanced
diff --git a/garden-service/package-lock.json b/garden-service/package-lock.json
index dbf42a8d52..d2f839af33 100644
--- a/garden-service/package-lock.json
+++ b/garden-service/package-lock.json
@@ -1,6 +1,6 @@
{
"name": "garden-service",
- "version": "0.10.15",
+ "version": "0.10.16",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
diff --git a/garden-service/package.json b/garden-service/package.json
index 86d6b2d8f3..cffcfe3fdd 100644
--- a/garden-service/package.json
+++ b/garden-service/package.json
@@ -1,6 +1,6 @@
{
"name": "garden-service",
- "version": "0.10.15",
+ "version": "0.10.16",
"description": "A full-featured development framework for containers and serverless",
"repository": {
"type": "git",