## 0.21.0 *Features* - **[Breaking change]** `kubernetes-run` now streams container logs and waits for the pod to succeed or fail **by default**. You can disable this using `--skip-wait`, or you can use `--max-watch-seconds=seconds` to set a time limit on the watch. ([#337](https://github.com/Shopify/kubernetes-deploy/pull/337)) *Other* - Kubernetes 1.7 is no longer officially supported as of this version ## 0.20.6 *Enhancements* - All resources marked as prunable will now be added to the prune whitelist ([#326](https://github.com/Shopify/kubernetes-deploy/pull/326)) - Improve deploy status detection by ensuring we examine the correct generation ([#325](https://github.com/Shopify/kubernetes-deploy/pull/325)) *Bug Fixes* ## 0.20.5 *Enhancements* - Add Job resource class ([#295](https://github.com/Shopify/kubernetes-deploy/pull/296)) - Add CustomResourceDefinition resource class ([#306](https://github.com/Shopify/kubernetes-deploy/pull/306)) - Officially support Kubernetes 1.10 ([#308](https://github.com/Shopify/kubernetes-deploy/pull/308)) - SyncMediator will only batch fetch resources when there is a sufficiently large enough set of resources being tracked ([#316](https://github.com/Shopify/kubernetes-deploy/pull/316)) - Allow CRs to be pruned based on `kubernetes-deploy.shopify.io/prunable` annotation on the custom resource definitions ([312](https://github.com/Shopify/kubernetes-deploy/pull/312)) - Add HorizontalPodAutoscaler resource class ([#305](https://github.com/Shopify/kubernetes-deploy/pull/305)) *Bug Fixes* - Prevent crash when STATSD_IMPLEMENTATION isn't set. ([#3242](https://github.com/Shopify/kubernetes-deploy/pull/324)) ### 0.20.4 *Enhancements* - Don't consider pod preempting a failure ([#317](https://github.com/shopify/kubernetes-deploy/pull/317)) ### 0.20.3 *Enhancements* - Evictions are recoverable so prevent them from triggering fast failure detection ([#293](https://github.com/Shopify/kubernetes-deploy/pull/293)). - Use YAML.safe_load over YAML.load_file ([#295](https://github.com/Shopify/kubernetes-deploy/pull/295)). *Bug Fixes* - Default rollout strategy is compatible required-rollout annotation ([#289](https://github.com/Shopify/kubernetes-deploy/pull/289)). ### 0.20.2 *Enhancements* - Emit data dog events when deploys succeed, time out or fail ([#292](https://github.com/Shopify/kubernetes-deploy/pull/292)). ### 0.20.1 *Bug Fixes* - Display a nice error instead of crashing when a YAML document is missing 'Kind' ([#280](https://github.com/Shopify/kubernetes-deploy/pull/280)) - Prevent DaemonSet from succeeding before rollout finishes ([#288](https://github.com/Shopify/kubernetes-deploy/issues/288)) *Enhancements* - Merge multiple `--bindings` arguments, to allow a composite bindings map (multiple arguments or files) ### 0.20.0 *Features* - Automatically add all Kubernetes namespace labels to StatsD tags ([#278](https://github.com/Shopify/kubernetes-deploy/pull/278)) *Bug Fixes* - Prevent calling sleep with a negative value ([#273](https://github.com/Shopify/kubernetes-deploy/pull/273)) - Prevent no-op redeploys of bad code from hanging forever ([#262](https://github.com/Shopify/kubernetes-deploy/pull/262)) *Enhancements* - Improve output for rendering errors ([#253](https://github.com/Shopify/kubernetes-deploy/pull/253)) ### 0.19.0 *Features* - Added `--max-watch-seconds=seconds` to kubernetes-restart and kubernetes-deploy. When set a timeout error is raised if it takes longer than _seconds_ for any resource to deploy. - Adds YAML and JSON file reference support to the kubernetes-deploy `--bindings` argument ([#269](https://github.com/Shopify/kubernetes-deploy/pull/269)) *Enhancements* - Prune resource quotas ([#264](https://github.com/Shopify/kubernetes-deploy/pull/264/files)) *Bug Fixes* - Update gemspec to reflect need for ActiveSupport >= 5.0([#270](https://github.com/Shopify/kubernetes-deploy/pull/270)) ### 0.18.1 *Enhancements* - Change the way the resource watcher fetches resources to make it more efficient for large deploys. Deploys with hundreds of resources are expected to see a measurable performance improvement from this change. ([#251](https://github.com/Shopify/kubernetes-deploy/pull/251)) ### 0.18.0 *Features* - kubernetes-restart and kubernetes-deploy use exit code 70 when a deploy fails due to one or more resources failing to deploy in time. ([#244](https://github.com/Shopify/kubernetes-deploy/pull/244)) *Bug Fixes* - Handle deploying thousands of resources at a time, previously kubernetes-deploy would fail with `Argument list too long - kubectl (Errno::E2BIG)`. ([#257](https://github.com/Shopify/kubernetes-deploy/pull/257)) ### 0.17.0 *Enhancements* - Add the `--cascade` flag when we force replace a resource. ([#250](https://github.com/Shopify/kubernetes-deploy/pull/250)) ### 0.16.0 **Important:** This release changes the officially supported Kubernetes versions to v1.7 through v1.9. Other versions may continue to work, but we are no longer running our test suite against them. *Features* - Support partials to reduce duplication in yaml files ([#207](https://github.com/Shopify/kubernetes-deploy/pull/207)) *Bug Fixes* - Handle podless deamon sets properly ([#242](https://github.com/Shopify/kubernetes-deploy/pull/242)) ### 0.15.2 *Enhancements* - Print warnings if kubernetes server version is not supported ([#237](https://github.com/Shopify/kubernetes-deploy/pull/237)). - Possible via env var to disable fetching logs and/or events on deployment failure ([#239](https://github.com/Shopify/kubernetes-deploy/pull/239)). - The `kubernetes-deploy.shopify.io/required-rollout` annotation now takes a percent (e.g. 90%) ([#240](https://github.com/Shopify/kubernetes-deploy/pull/240)). ### 0.15.1 *Enhancements* - Fetch debug events and logs for failed resources in parallel ([#238](https://github.com/Shopify/kubernetes-deploy/pull/238)) ### 0.15.0 *Bug Fixes* - None *Enhancements* - Support for cronjob resource ([#206](https://github.com/Shopify/kubernetes-deploy/pull/206])). - Make it possible to override the tool's hard timeout for one specific resource via the `kubernetes-deploy.shopify.io/timeout-override` annotation ([#232](https://github.com/Shopify/kubernetes-deploy/pull/232)). - Make it possible to modify how many replicas need to be updated and available before a deployment is considered successful via the `kubernetes-deploy.shopify.io/required-rollout` annotation ([#208](https://github.com/Shopify/kubernetes-deploy/pull/208)). ### 0.14.1 *Bug Fixes* - Make deployments whose pods crash because of CreateContainerConfigError fail fast in 1.8+ too (they would previously time out). - Fix crashes when deploying ExternalName services or services without selectors ([#211](https://github.com/Shopify/kubernetes-deploy/pull/211)) - Predeploy ServiceAccount resources ([#221](https://github.com/Shopify/kubernetes-deploy/pull/221)) *Enhancements* - Make it possible to pass bindings (via the --bindings flag) for which the value contains commas or is a JSON encoded hash ([#219](https://github.com/Shopify/kubernetes-deploy/pull/219)) - Support KUBECONFIG referencing multiple files ([#222](https://github.com/Shopify/kubernetes-deploy/pull/222)) ### 0.14.0 *Bug Fixes* - Fix incorrect timeouts occasionally observed on deployments using progressDeadlineSeconds in Kubernetes <1.7.7 *Enhancements* - Renamed `KubernetesDeploy::Runner` (which powers `exe/kubernetes-deploy`) to `KubernetesDeploy::DeployTask`. This increases consistency between our primary class names and avoids confusion with `KubernetesDeploy::RunnerTask` (which powers `exe/kubernetes-run`). - Improved output related to timeouts. For deployments, both failure and timeout output now mentions the referenced replica set. - Small improvements to the reliability of the success polling. - EjsonSecretProvisioner no longer logs kubectl command output (which may contain secret data) when debug-level logging is enabled. ### 0.13.0 *Features* - Added support for StatefulSets for kubernetes 1.7+ using RollingUpdate *Bug Fixes* - Explicitly require the minimum rest-client version required by kubeclient ([#202](https://github.com/Shopify/kubernetes-deploy/pull/202)) *Enhancements* - Begin official support for Kubernetes v1.8 ([#198](https://github.com/Shopify/kubernetes-deploy/pull/198), [#200](https://github.com/Shopify/kubernetes-deploy/pull/200)) ### 0.12.12 *Bug Fixes* - Fix an issue deploying Shopify's internal custom resources. ### 0.12.11 *Bug Fixes* - Stop appending newlines to the base64-encoded values of secrets created from ejson. These extra newlines were preventing the ejson->k8s secret feature from working with v1.8 (https://github.com/Shopify/kubernetes-deploy/pull/196). ### 0.12.10 *Enhancement* - Log reason if deploy times out due to `progressDeadlineSeconds` being exceeded ### 0.12.9 *Bug Fixes* - Retry discovering namespace and kubernetes context - Expose real error during namespace discovery ### 0.12.8 *Bug Fixes* - Force deployment to use its own hard timeout instead of relying on the replica set