diff --git a/CHANGELOG.md b/CHANGELOG.md index 911596b6807..4113d53f2f5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,8 +1,89 @@ +# v0.39.0 Release - 09/26/2019 + +*Note*: This release comes with a new config version `v1beta15`. + To upgrade your `skaffold.yaml`, use `skaffold fix`. If you don't upgrade, skaffold will auto-upgrade in memory as best it can, and print a warning message. + See [deprecation-policy.md](/deprecation-policy.md) for details on what beta means. + The env vars `DIGEST`, `DIGEST_HEX` and `DIGEST_ALGO` now fail if found in `envTemplate` fields. + +Highlights: + +* We now include build args in the artifact cache hash generation [#2926](https://github.com/GoogleContainerTools/skaffold/pull/2926) +* Skaffold now passes the `--set-files` argument to the helm CLI: you can define `helm.release.setFiles` in the skaffold.yaml +* Skaffold now passes the `--build-args` arguments to kustomize: you can define `deploy.kustomize.buildArgs` in the skaffold.yaml + +New Features: + +* Optional pull secret for Kaniko [#2910](https://github.com/GoogleContainerTools/skaffold/pull/2910) +* Add Jib-Gradle support for Kotlin buildscripts [#2914](https://github.com/GoogleContainerTools/skaffold/pull/2914) +* Add graceful termination for custom builders [#2886](https://github.com/GoogleContainerTools/skaffold/pull/2886) +* Add docs and tutorial for buildpacks [#2879](https://github.com/GoogleContainerTools/skaffold/pull/2879) +* kustomize build args [#2871](https://github.com/GoogleContainerTools/skaffold/pull/2871) +* Add `setFiles` to `HelmDeploy.HelmRelease` skaffold config which will be add `--set-files` argument to helm CLI [#2895](https://github.com/GoogleContainerTools/skaffold/pull/2895) + +Bug Fixes: + +* fix flake TestGetSetFileValues [#2936](https://github.com/GoogleContainerTools/skaffold/pull/2936) +* Fix helm deployer with imageStrategy helm and fix test runner [#2887](https://github.com/GoogleContainerTools/skaffold/pull/2887) +* Include build args in cache hash generation [#2926](https://github.com/GoogleContainerTools/skaffold/pull/2926) +* Fix test flake TestPollResourceStatus [#2907](https://github.com/GoogleContainerTools/skaffold/pull/2907) +* Fix build script for doc generation. [#2884](https://github.com/GoogleContainerTools/skaffold/pull/2884) + +Updates & Refactors: + +* Create new v1beta15 config [#2881](https://github.com/GoogleContainerTools/skaffold/pull/2881) +* adding release comment management to all config.go [#2917](https://github.com/GoogleContainerTools/skaffold/pull/2917) +* Change final status check error message to be more concise. [#2930](https://github.com/GoogleContainerTools/skaffold/pull/2930) +* Add unimplemented 'skaffold render' command [#2942](https://github.com/GoogleContainerTools/skaffold/pull/2942) +* Bump golangci-lint to v0.19.0 [#2927](https://github.com/GoogleContainerTools/skaffold/pull/2927) +* Add pod resource with no status check implemented. [#2928](https://github.com/GoogleContainerTools/skaffold/pull/2928) +* added support for interface type in schema check [#2924](https://github.com/GoogleContainerTools/skaffold/pull/2924) +* add protos for status check [#2916](https://github.com/GoogleContainerTools/skaffold/pull/2916) +* Refactor Deployment common functions in to a Base struct in prep to pod [#2905](https://github.com/GoogleContainerTools/skaffold/pull/2905) +* Add missing T.Helper() in testutil.Check* as required [#2913](https://github.com/GoogleContainerTools/skaffold/pull/2913) +* Removing testing version dependent skaffold config test in examples [#2890](https://github.com/GoogleContainerTools/skaffold/pull/2890) +* rename hack/versions/cmd/new/new.go to hack/versions/cmd/new/version.go [#2882](https://github.com/GoogleContainerTools/skaffold/pull/2882) +* [Refactor] Move pollDeploymentStatus to resource.Deployment.CheckStatus [#2896](https://github.com/GoogleContainerTools/skaffold/pull/2896) +* init: Add default config name [#2668](https://github.com/GoogleContainerTools/skaffold/pull/2668) +* Upgrade jib to 1.6.1 [#2891](https://github.com/GoogleContainerTools/skaffold/pull/2891) +* Print deployment status after every 0.5 seconds. [#2866](https://github.com/GoogleContainerTools/skaffold/pull/2866) +* Fail PR if it has a structural schema change in a released version [#2864](https://github.com/GoogleContainerTools/skaffold/pull/2864) + +Docs: + +* add better docs for recreate pods [#2937](https://github.com/GoogleContainerTools/skaffold/pull/2937) +* added release comments manually [#2931](https://github.com/GoogleContainerTools/skaffold/pull/2931) +* add github pull request template [#2894](https://github.com/GoogleContainerTools/skaffold/pull/2894) + + +Huge thanks goes out to all of our contributors for this release: + +- Aisuko +- Andreas Sommer +- Balint Pato +- Brian de Alwis +- Cedric Kring +- Chanseok Oh +- Cornelius Weig +- David Gageot +- Dominic Werner +- Jack Davis +- Marlon Gamez +- Medya Gh +- Michael Beaumont +- Nick Kubala +- Prashant Arya +- Priya Wadhwa +- Tad Cordle +- Tejal Desai +- Willy Aguirre + + # v0.38.0 Release - 09/12/2019 *Note*: This release comes with a new config version `v1beta14`. To upgrade your `skaffold.yaml`, use `skaffold fix`. If you don't upgrade, skaffold will auto-upgrade in memory as best it can, and print a warning message. - See [deprecation-policy.md](/deprecation-policy.md) for details on what beta means. + See [deprecation-policy.md](/deprecation-policy.md) for details on what beta means. + The env vars `DIGEST`, `DIGEST_HEX` and `DIGEST_ALGO` won't work anymore in envTemplates. New Features: diff --git a/deprecation-policy.md b/deprecation-policy.md index bfdaa093e55..a0ceae784df 100644 --- a/deprecation-policy.md +++ b/deprecation-policy.md @@ -94,11 +94,4 @@ Commands and their flags are subject to the deprecation policy based on the foll 03/15/2019: With release v0.25.0 we mark for deprecation the `flags` field in kaniko (`KanikoArtifact.AdditionalFlags`) , instead Kaniko's additional flags will now be represented as unique fields under `kaniko` per artifact (`KanikoArtifact` type). -This flag will will be removed earliest 06/15/2019. - -02/15/2019: With release v0.23.0 we mark for deprecation the following env variables in the `envTemplate` tagger: -- `DIGEST` -- `DIGEST_ALGO` -- `DIGEST_HEX` -Currently these variables resolve to `_DEPRECATED__`, and the new tagging mechanism adds a digest to the image name thus it shouldn't break existing configurations. -This backward compatibility behavior will be removed earliest 05/14/2019. +This flag will will be removed earliest 06/15/2019. \ No newline at end of file diff --git a/examples/bazel/skaffold.yaml b/examples/bazel/skaffold.yaml index 05ce33d0f9f..e015f95f8e1 100644 --- a/examples/bazel/skaffold.yaml +++ b/examples/bazel/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/buildpacks/README.adoc b/examples/buildpacks/README.adoc index ddd3ad4afd7..6414cb2cab6 100644 --- a/examples/buildpacks/README.adoc +++ b/examples/buildpacks/README.adoc @@ -7,6 +7,87 @@ This is a simple example based on * *tagging* using the default tagPolicy (`gitCommit`) * *deploying* a single container pod using `kubectl` +## Before you begin +For this tutorial to work, you will need to have Skaffold and a Kubernetes cluster set up. +To learn more about how to set up Skaffold and a Kubernetes cluster, see the https://skaffold.dev/docs/getting-started[getting started docs]. + +To use buildpacks with Skaffold, please install the following additional tools: + +* https://buildpacks.io/docs/install-pack/[pack] +* https://docs.docker.com/install/[docker] + +## Tutorial + +This tutorial will demonstrate how Skaffold can build a simple Hello World Go application with buildpacks and deploy it to a Kubernetes cluster. + +First, clone the Skaffold https://github.com/GoogleContainerTools/skaffold[repo] and navigate to the https://github.com/GoogleContainerTools/skaffold/tree/master/examples/buildpacks[buildpacks example] for sample code: + +```shell +$ git clone https://github.com/GoogleContainerTools/skaffold +$ cd skaffold/examples/buildpacks +``` + +Set the default buildpack to one that can build Go applications: + +``` shell +$ pack set-default-builder heroku/buildpacks +``` + + + +Take a look at the `build.sh` file, which uses `pack` to containerize source code with buildpacks: + +```shell +$ cat build.sh +#!/bin/bash +set -e +images=$(echo $IMAGES | tr " " "\n") + +for image in $images +do + pack build $image + if $PUSH_IMAGE + then + docker push $image + fi +done +``` + +and the skaffold config, which configures artifact `gcr.io/k8s-skaffold/skaffold-example` to build with `build.sh`: + +```yaml +$ cat skaffold.yaml +apiVersion: skaffold/v1beta14 +kind: Config +build: + artifacts: + - image: gcr.io/k8s-skaffold/skaffold-example + custom: + buildCommand: ./build.sh + dependencies: + paths: + - . +deploy: + kubectl: + manifests: + - k8s-* +``` +For more information about how this works, see the Skaffold custom builder https://skaffold.dev/docs/how-tos/builders/#custom-build-script-run-locally[documentation]. + +Now, use Skaffold to deploy this application to your Kubernetes cluster: + +```shell +$ skaffold run --tail --default-repo +``` +With this command, Skaffold will build the `skaffold-example` artifact with buildpacks and deploy the application to Kubernetes. +You should be able to see "Hello, World!" printed every second in the Skaffold logs. + +To clean up your Kubernetes cluster, run: + +```shell +$ skaffold delete --default-repo +``` + ifndef::env-github[] ==== link:{github-repo-tree}/examples/buildpacks[Example files icon:github[]] diff --git a/examples/gcb-kaniko/skaffold.yaml b/examples/gcb-kaniko/skaffold.yaml index b4a3acc65ae..e266184f75d 100644 --- a/examples/gcb-kaniko/skaffold.yaml +++ b/examples/gcb-kaniko/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: googleCloudBuild: diff --git a/examples/generate-pipeline/skaffold.yaml b/examples/generate-pipeline/skaffold.yaml index 9450be4a920..d5f85703c5c 100644 --- a/examples/generate-pipeline/skaffold.yaml +++ b/examples/generate-pipeline/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/getting-started/skaffold.yaml b/examples/getting-started/skaffold.yaml index 0c6eeaed16d..ff54fc0d420 100644 --- a/examples/getting-started/skaffold.yaml +++ b/examples/getting-started/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/google-cloud-build/skaffold.yaml b/examples/google-cloud-build/skaffold.yaml index 0f13a8bf1ee..bac89c29b65 100644 --- a/examples/google-cloud-build/skaffold.yaml +++ b/examples/google-cloud-build/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: googleCloudBuild: diff --git a/examples/helm-deployment-dependencies/skaffold.yaml b/examples/helm-deployment-dependencies/skaffold.yaml index 3b77eaf55af..8f61f76ab05 100644 --- a/examples/helm-deployment-dependencies/skaffold.yaml +++ b/examples/helm-deployment-dependencies/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: tagPolicy: diff --git a/examples/helm-deployment/skaffold.yaml b/examples/helm-deployment/skaffold.yaml index e0108781478..49a8cfe7884 100644 --- a/examples/helm-deployment/skaffold.yaml +++ b/examples/helm-deployment/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: tagPolicy: diff --git a/examples/hot-reload/skaffold.yaml b/examples/hot-reload/skaffold.yaml index 0e7d0c41067..414a24193d9 100644 --- a/examples/hot-reload/skaffold.yaml +++ b/examples/hot-reload/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/jib-gradle/skaffold.yaml b/examples/jib-gradle/skaffold.yaml index f5e6c290020..a4d2c5d2b54 100644 --- a/examples/jib-gradle/skaffold.yaml +++ b/examples/jib-gradle/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/jib-multimodule/skaffold.yaml b/examples/jib-multimodule/skaffold.yaml index 1119cb6d3e1..0118c5d3df2 100644 --- a/examples/jib-multimodule/skaffold.yaml +++ b/examples/jib-multimodule/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/jib/skaffold.yaml b/examples/jib/skaffold.yaml index 3307be5511d..230a3d78921 100644 --- a/examples/jib/skaffold.yaml +++ b/examples/jib/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/kaniko-local/skaffold.yaml b/examples/kaniko-local/skaffold.yaml index 78c3099d375..d2c78d1d394 100644 --- a/examples/kaniko-local/skaffold.yaml +++ b/examples/kaniko-local/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/kaniko/skaffold.yaml b/examples/kaniko/skaffold.yaml index 5979d2ed478..5cde54c451c 100644 --- a/examples/kaniko/skaffold.yaml +++ b/examples/kaniko/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/kustomize/README.adoc b/examples/kustomize/README.adoc index 8db1e0fb390..8da32c884af 100644 --- a/examples/kustomize/README.adoc +++ b/examples/kustomize/README.adoc @@ -28,3 +28,17 @@ include::deployment.yaml[] ---- endif::[] + +=== Example: passing arguments to kustomize +:icons: font + +This is an example demonstrating how additional arguments can be passed to the `kustomize build` command. + +ifndef::env-github[] + +[source,yaml, indent=3, title=skaffold-kustomize-args.yaml] +---- +include::skaffold-kustomize-args.yaml[] +---- + +endif::[] diff --git a/examples/kustomize/skaffold.yaml b/examples/kustomize/skaffold.yaml index 8993e84ff81..152342103df 100644 --- a/examples/kustomize/skaffold.yaml +++ b/examples/kustomize/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config deploy: kustomize: {} diff --git a/examples/microservices/skaffold.yaml b/examples/microservices/skaffold.yaml index e9e1a30c921..b0bc83813b9 100644 --- a/examples/microservices/skaffold.yaml +++ b/examples/microservices/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/nodejs/skaffold.yaml b/examples/nodejs/skaffold.yaml index 2c761aa7bd6..3479e9565be 100644 --- a/examples/nodejs/skaffold.yaml +++ b/examples/nodejs/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/react-reload/skaffold.yaml b/examples/react-reload/skaffold.yaml index d929d264b39..ce537a78686 100644 --- a/examples/react-reload/skaffold.yaml +++ b/examples/react-reload/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/structure-tests/skaffold.yaml b/examples/structure-tests/skaffold.yaml index e836f9ed4bf..e9ce7440e6e 100644 --- a/examples/structure-tests/skaffold.yaml +++ b/examples/structure-tests/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/examples/tagging-with-environment-variables/skaffold.yaml b/examples/tagging-with-environment-variables/skaffold.yaml index 1e1d7b9fb40..bfb562dd081 100644 --- a/examples/tagging-with-environment-variables/skaffold.yaml +++ b/examples/tagging-with-environment-variables/skaffold.yaml @@ -1,4 +1,4 @@ -apiVersion: skaffold/v1beta14 +apiVersion: skaffold/v1beta15 kind: Config build: artifacts: diff --git a/pkg/skaffold/schema/latest/config.go b/pkg/skaffold/schema/latest/config.go index 386ece0c7c1..24f2ac04136 100644 --- a/pkg/skaffold/schema/latest/config.go +++ b/pkg/skaffold/schema/latest/config.go @@ -20,7 +20,7 @@ import ( "github.com/GoogleContainerTools/skaffold/pkg/skaffold/schema/util" ) -// This config version is not yet released, it is SAFE TO MODIFY the structs in this file. +// !!! WARNING !!! This config version is already released, please DO NOT MODIFY the structs in this file. const Version string = "skaffold/v1beta15" // NewSkaffoldConfig creates a SkaffoldConfig