Note: This release comes with a config change, use skaffold fix
to permanently upgrade your config to v1beta1
, however old versions are now auto-upgraded.
See deprecation-policy.md for details on what beta means.
New features:
- Run tests in skaffold build, add
skip-tests
flag to skip tests #1326 - Allow ** glob pattern in sync parameters #1266
- Add caching to kaniko builder #1287
- Support slashes in file sync glob patterns on windows #1280
- Add --compose-file option to skaffold init #1282
- Automatically fix old configs by default #1259
- adding skaffold version to the docker push user agent #1260
Fixes:
- Fix node security issue #1323
- Allow passing arguments to bazel build #1289
- Get tmp Directory from os env in kaniko local context storing #1285
Updates & refactorings:
- Apply default values upgraded configurations #1332
- Remove duplication between run and deploy #1331
- Remove pointer to runtime.Object interface #1329
- Shorter logs #1335
- Update deps #1333
- dep ensure && dep prune #1297
- Should support v1alpha5 #1314
- Improve kubernetes.Logger #1309
- introduce v1beta1 config #1305
- Simpler Runner #1304
- Don’t run tests if nothing was built #1302
- Simplify the Runner's tests #1303
- removing the artifacts from appveyor #1300
- The multi-deployer feature is not working. Remove it #1291
Breaking changes:
Docs updates:
- Clarify what manifest paths are relative to when specifying in skaffold yaml #1336
- adding deprecation policy and document component stability #1324
- Add missing fields to annotated-skaffold.yaml #1310
- brew install skaffold #1290
- Lists indented in the installation section (minor fix) #1298
- Make usage messages look like the others. #1267
Utilities:
- [docs-webhook] remove docs-modifications label from issue instead of deleting the label #1306
- [docs-webhook] hugo extended version + nodejs #1295
- [docs-webhook] Release latest version of docs controller image #1293
- [docs-webhook] upgrading hugo + unpinning webhook image #1288
- [lint] Golangci lint upgrade #1281
- [compilation] Support system's LDFLAGS, make compilation reproducible #1270
Huge thank you for this release towards our contributors:
- Balint Pato
- Cedric Vidal
- David Gageot
- Igor Zibarev
- Ihor Dvoretskyi
- Jamie Lennox
- Maxim Baz
- Nick Kubala
- Pascal Ehlert
- Priya Wadhwa
- Venkatesh
Bug Fixes:
- Don't lose test configuration when running skaffold fix #1251
- Fix jib errors on ctrl-c #1248
- Fix sync #1253
- Update examples and release notes to use v1alpha5 #1244
- Set Kind on
skaffold init
#1237 - Do not print the manifest on to stdout when doing a deploy by kustomize #1234
- Fixed panic if skaffold.yaml is empty (#1216) #1221
- Suppress fatal error reporting when ^C skaffold with jib #1228
- portforward for resources with hardcoded namespace #1223
Updates:
- Output config version in skaffold version #1252
- Port forward multiple ports #1250
- Improve errors #1255
- Move structure tests out of getting-started example #1220
- changes related to our docs review flow:
Huge thank you for this release towards our contributors:
- Balint Pato
- Brian de Alwis
- David Gageot
- Matt Rickard
- Nick Kubala
- Priya Wadhwa
- RaviTezu
- varunkashyap
Note: This release comes with a config change, use skaffold fix
to upgrade your config to v1alpha5
.
We 'skipped' v1alpha4
due to an accidental merge: see #1235
New Features:
- Add support for setting default-repo in global config #1057
- Add support for building Maven multimodule projects #1152
- Azure Container Registry runner #1107
Bug fixes:
- Improve Kaniko builder #1168
- Use os.SameFile() to check for mvnw working-dir echo bug #1167
- Fix kaniko default behaviour #1139
Updates:
- Change SkaffoldOption Labeller to not include a comma in the label value #1169
- Remove annoying log #1163
- Prepare next version of the config file #1146
- Improve error handling for
completion
command #1206 - Jib sample #1147
- Node.js example with dependency handling and hot-reload #1148
Huge thank you for this release towards our contributors:
- Balint Pato
- Brian de Alwis
- Cedric Kring
- David Gageot
- Geert-Johan Riemer
- Martino Fornasa
- Matt Rickard
- Nick Kubala
- Priya Wadhwa
- foo0x29a
- varunkashyap
New Features:
- Add a
skaffold diagnose
command #1109 - Add localdir buildcontext to kaniko builder #983
- Add --label flag to specify custom labels for deployments #1098
- Add support for building projects using jib #1073
Bug Fixes:
- Fix jib artifacts in skaffold diagnose #1141
- Fix master #1133
- Delete and redeploy object upon error 'field is immutable' #940
- Fix
skaffold fix
#1123 - Lists files recursively in jib.getDependencies and other fixes. #1097
- Merge error? #1095
- Fix missing parenthesis #1089
Updates:
- Move sync code to pkg/skaffold/sync/kubectl #1138
- Add a test to check version upgrades #1103
- Add a way to unset global config values #1086
- Handles Jib build directly to registry when push=true. #1132
- Simplify Jib code #1130
- Trim the dockerfile a bit: #1128
- Pass context when listing dependencies #1108
- Remove fully qualified jib path for maven goals #1129
- Merge master into jib_skaffold feature branch. #1117
- Merge Jib feature-branch #1063
- Improves jib.getDependencies. #1125
- skipPush -> push #1114
- Support for dot files in dockerignore #1122
- remove project level skaffold.yaml #1119
- Merge master into jib_skaffold feature branch #1116
- Unify Jib command wrapper usage #1105
- Update labels when deploying to namespace other than default #1115
- Improve sync #1102
- Rename SkaffoldConfig to SkaffoldPipeline #1087
- Kaniko improvements #1101
- File Sync for skaffold dev #1039
- Implement a manual trigger for watch mode #1085
- Skaffold init asks user to write skaffold.yaml #1091
- Couple of improvements to the test phase #1080
- Merges branch 'master' into jib_skaffold. #1088
- Implements jib.GetDependenciesMaven/GetDependenciesGradle. #1058
- Add test runner #1013
- Simplify schema versioning #1067
- Changelog changes for v0.15.1 #1075
- Minor logging improvements #1142
This is a minor release to address an inconsistency in the skaffold fix
upgrade:
- Transform values files in profiles to v1alpha3 #1070
New Features:
- Added kustomize to deploy types #1027
- Basic support for watching Kustomize dependencies #1015
- Basic support for using kubectl and helm together #586
- Add support for multiple helm values files #985
- Add v1alpha3 Config #982
Bug Fixes:
- annotated.yaml: fix gcb timeout format #1040
- Catch a 409 when creating a bucket and continue. #1044
- Fix typo #1045
- Fix issues with build args replacement #1028
- prevent watcher failure if helm valuesFilePath not set #930
- Correctly parse build tags that contain port numbers #1001
- FIX kubectl should only redeploy updated manifests #1014
- Fix race conditions in TestWatch #987
Updates:
- Simpler merged PR collection for release notes #1054
- Improve kustomize deployer #1036
- kustomizePath is a folder that defaults to . #1030
- Discard output in tests #1021
- Add a test for
kubectl should only redeploy updated manifests
#1022 - Examples versioning #1019
- add nkubala to MAINTAINERS #993
- Debounce rapid file changes #1005
- Print kubectl client version #991
- Auto configure authentication helper for gcr.io #989
- Tweak the Dockerfile. #1007
- Skip kaniko-related test when running locally #990
- Extract code from GCB #986
New Features:
- Allow
skaffold dev —watch image
#925 - Port forward pods automatically during
skaffold dev
#945 - Add skaffold 'init' #919
Bug Fixes:
- Get namespace for updating objects from build artifact #951
- Remove service labeling temporarily #965
- Don't prefix pod names when port forwarding #976
Updates:
- Don’t compute onbuild triggers for images that are stage names #938
- Don't unmute logs if an error happened #928
- Exclude helm dependency chart packages from watched files #932
- Pass --recreate-pods to helm by default in dev mode #946
- Default to kubectl deploy #956
- Simplify helm tests #957
- Pull 'cache-from' images on Google Cloud Build #958
- update check respected quiet flag #964
- Fix typo in portforwarder #975
New Features:
Bug Fixes:
- fixes
skaffold version
in the released docker image #933
Updates:
- as a base for future features - global skaffold config #896
- Remove duplication in kustomize deployer #900
- update readme with documentation links #908
- Fix a typo in "annotated-skaffold.yaml" #907
- Decouple visiting manifests and replacing images #909
- Add a simple test for Watcher #898
- Add test for signal handling #917
- Add the --target flag as a parameter to the docker builder. #894
- Misc improvements #911
- Add --tail flag to stream logs with skaffold run #914
- Extract code to tail logs #924
- Improve logs #918
- Add yamltags #388
- adding wrapper script for release note generation #935
- detete -> delete #941
New Features:
- Update check #866
- Simpler and faster git tagger #846
- Support setting namespace for every deployer #852
- Improve Cloud Build builder #874
- Improve file change tracking #888
Bug Fixes:
- Run Kaniko builds in parallel #876
- Do not run kubectl if nothing has changed #877
- fix version in released docker image #878
- Fix integration tests #881
Updates:
- Run Kaniko builds in parallel #876
- Watch mode 4th edition #833
- add bazel to skaffold docker image, add integration test for bazel #879
- Add missing filename to error message #880
- Fix minor lint errors surfaced by the 'misspell' and 'unparam' lint modules #883
- Update golangci-lint to v1.9.3 and enable misspell+unparam modules #884
- add codecov to travis and repo #885
- Add test helper to handle actions on tmp dirs #893
- Use reflection to overlay profile onto config #872
New Features:
Bug Fixes:
- Substitute build args from config into parsed Dockerfile before processing deps #828
- Fix color.Fprintln bug #861
- Issue #836: Use releaseName to get release info. #855
- Switch to gcr for the kaniko builder example. #845
Updates:
- boilerplate.sh: fail if python script not found; run from any dir #827
- Revert to default grace period #815
- Skip the deployment if no manifests are defined #832
- Slightly faster git tagger #839
- Don’t tag the same images twice #842
- Faster code to get image digest #838
- Simpler code to print Kaniko logs #831
- Simpler sha256 tagger code #847
- Move builders to sub packages #830
- Shell out docker build #840
- Don’t redeploy twice the same manifest in a dev loop #843
- Remove
skaffold docker
commands #853 - Find docker deps 10x faster #837
- Simplify docker related code. #854
- add support for helm image convention vs fqn setting #826
- Update dep to v0.5.0 #862
New Features:
- kustomize: use custom path in deploy deps #766
- helm: add deploy dependency paths #765
- Use digest when the git repo has no commit #794
- GCB now builds artifacts in // #805
- Default kubectl manifests to
k8s/*.yaml
#810 - Support disk size and machine type for GCB #808
- Support additional flags for kubectl commands #807
- Try to guess GCB projectID from the image name #809
Bug Fixes:
- kustomize: cleanup custom kustomize path #781
- corrected region typo #792
- Fixed a small typo in docs #797
- Small code changes #796
Updates:
- docs: alphabetize readme peoples #764
- makefile: redirection for checksums #768
- brew: remove version from formula #763
- Add the logo #774
- ci: also push latest skaffold image on commit #773
- tests: pin golangci-lint version to v1.8.1 #780
- Remove dead code #784
- Improve GCR docs #795
- Extract code to build a single artifact locally #798
- Use dynamic client for labels #782
- Update Kaniko to v0.2.0 #803
- Upgrade k8s dependency to 1.11.0 #804
- Fix missing logs #786
- calculate version from git #814
- logs: use namespace flag when streaming pods #819
New Features:
- Print the image name that's being built #732
- Publish windows binaries on AppVeyor #738
- Add labeling for profiles #736
- Improve Git tagger #714
- Support docker build --cache-from #737
- Add custom kustomization path #749
- Use tags only in case of perfect match #755
Bug Fixes:
- fixed a bug in dirtyTag which may leave extra whitespaces in changedPath #721
- Remove duplication in code handling labels #723
- Fix: Links for D4M Edge and D4W Edge were swapped #735
- Fix bug where dirty submodules broke hash generation #711
- Remove warning for an image that’s built and used by fqn #713
- Don’t always fail if some COPY patterns don't match any file #744
- Fix dev loop #758
- Fix kaniko defaults #756
- Don’t complain when object is not found during cleanup #759
Updates:
- Deployers should only rely on their specific config #739
- Builders should only rely on their specific config #740
- e2e test for helm deployments. #743
- New code to watch file changes #620
- docs: add info about published artifacts #751
New Features
- cloudbuild: publish skaffold images on commit and tag #655
- Asciidocs and refdocs tooling #648
- Add support for skaffold.yml as a default config file fixes #225 #665
- adds helper script for release notes #662
- docs: add weekly meeting snippet #675
- Add labels to all k8s objects deployed by skaffold #644
- Implement packaging for helm deployment #682
- mv tagPolicy:env example #697
- windows: add appveyor #702
- add WSL support #694
- Add labels from options #716
- Add tests for helm deployment with `packaged' option #696
- Fix issue #404 - Allow to use bazel subtarget #689
- fix: allow environment variables to be used in helm values #707
- Improve Kaniko code and ns handling #722
- Support wildcards in Dockerfiles #712
Bug Fixes
- make: fix release path #650
- Fixing the licence #652
- typo fix #660
- Ignore missing authConfigs during docker build #664
- lint fixes #669
- Fix hack/dep.sh on travisCI #680
- Use git binary or fallback to go-git #639
- Fix git detection #683
- remove extraneous space #688
- Create and apply patch when adding labels to API objects #687
- Fix issue with 100% CPU usage in logs.go. #704
Updates
- Remove fsnotify #646
- Update go-containerregistry #651
- cloudbuild: increase timeout to 20m #658
- Update docker libraries #676
- Update apimachinery and client-go to kubernetes-1.11.0-beta2 #684
- Update release_notes.sh #710
- Remove unused imports #724
New Features
- cmd: add skaffold deploy #624
- Remove no-manifest code. #640
- Add an mtime file watcher. #549
- Add functionality to toggle the
--wait
flag on helm install/upgrade #633 - Add kustomize deployer #641
- Add datetime tagger tagpolicy #621
- Helm: add option to generate override values.yaml based on data passed into skaffold.yaml #632
- add
--output
and--quiet
toskaffold build
#606 - Add the ability to express the release name as a template #602
- Simpler code that logs containers #612
Bug Fixes
- Fix image parsing in skaffold deploy #638
- Fix flaky test #594
- fix: allow an environment variable to default the deploy namespace #497
- Add BUILD and WORKSPACE files to dependencies #636
- Misc fixes to dev mode #589
Updates
- Quick Start GKE Doc - reference change for k8s-pod deployment #615
- kaniko: pin image version to v0.1.0 #592
- Refactor the envTemplate code to make it reusable #601
- Simplify runner test #609
- Move kubernetes client creation to kubernetes package #608
- Remove unused field. #616
- Remove annoying testdata folder #614
- Dockerfile should always be sent to daemon #605
- Simplify code that resolves dependencies #610
- Switch boilerplate to The Skaffold Authors. #626
- Improve runner code #645
- Simplify helm_test #607
- Replace gometalinter with GolangCI-Lint #619
- Update go-git to v4.4.0 #634
- Remove afero #613
https://github.com/GoogleContainerTools/skaffold/compare/v0.6.1...v0.7.0
New Features
- Stricter YAML parsing #570
- Show helm's output and errors #576
- Support ~ in secret path for Kaniko #455
skaffold dev
now stops on non-build errors #540
Bug Fixes
- GCB Build fixed #579
- Show errors of kubectl and helm commands #560
- Can now run
skaffold build
without a kubernetes cluster #540
Updates
- Updated google/go-containerregistry #571
- Added a user agent to GCB calls #582
- Simplified runner code #540
- Silenced usage text on errors #449
- Skipped fully qualified names when replacing image names #566
- Improved docker dependencies code #466
https://github.com/GoogleContainerTools/skaffold/compare/v0.6.0...v0.6.1
New Features
- Improve the
docker load
output in Bazel build #475 envTemplate
now supportsDIGEST_ALGO
andDIGEST_HEX
variables #495- Perform cleanup on
SIGPIPE
signal #515 - Learnt a
skaffold build
command #476, #553 - Git tagger should use tags over commits #552
Bug Fixes
- Fixed the microservices example #451
- Don't fail if
~/.docker/config.json
doesn't exist #454 - Fix the Git Tagger name #473
- Git Tagger now handles deleted files without failing #471
- Add files to the context tarball with Unix separators #489
- Fix and improve
annotated-skaffold.yaml
#467, #520, #536, #542 - Handle private docker registries with explicit port numbers #525
- Ignore empty manifests #538
- Default values are set after a profile is applied #533
- Remove warning when building images #548
- Some logs where not printed #513
Updates
- Improvements to the documentation #452, #453, #556
- Improve
kubectl
andhelm
commands output #534 - Code improvements #485, #537, #544, #545
- Improved Git Issue template #532
https://github.com/GoogleContainerTools/skaffold/compare/v0.5.0...v0.6.0
New Features
- Added kaniko builder
- Added support for "remote-manifests" in kubectl deployer
skaffold dev
now performs a cleanup of deployed resources on exitskaffold dev
redeploys when deploy dependencies are changed (only kubectl deployer currently)
Bug Fixes
- GCB builder now uses tags correctly
- Supports multi-stage dockerfiles with onbuild commands
- Better error messages
- Fixed tagger working directory
Updates
- Switched from containers/image to google/go-containerregistry
- Integration tests now run in separate namespaces
New Features
- Added
skaffold fix
command to migrate configs from v1alpha1 to v1alpha2 - Added
skaffold completion
command to output bash completion for skaffold subcommands - Warns when an image is built but not used
- Artifacts can now be built with bazel
- Environment variable template tagger
- Support multiple document YAML files
- Helm deployer now accepts extra set values
Bug Fixes
- Logs use relative time instead of host time, which fixes issues with clock sync on local clusters
- Removed duplicate error
- Docker build args passsed to Google Container Builder
- Fixed unreliable file detection when using IntelliJ or other IDEs
- Better handling of default values
- Fixed issue with some logs being displayed twice
- Fixed .dockerignore support
Updates
- Updated go-git package
- Refactored watch package
New Features
- Logs are now colored by image deployment, different container instances will get different colors in
skaffold dev
- Better and less error prone logging
- All logs are shown for a pod with deployed containers
- Helm deployer now supports chart versions
- Helm deployer now supports custom values file path
- Logs are now muted during the build and deploy cycle
- Integration tests added
- Conditional rebuilding of changed artifacts
- Builds only triggered after a quiet period
- Duration of build and deploy is now logged
Bug Fixes
- .dockerignore now works if context is parent directory
- removed duplicate logs
- private registry authentication issues are fixed
- no logs are missed
Breaking config changes
- tagPolicy is now a struct instead of a string, to convert to the new config format
tagPolicy: gitCommit
becomes
tagPolicy:
gitCommit: {}
- kubectl deployer no longer needs templated keys in manifests. Simply just make sure the artifacts in your skaffold.yaml correspond to the images in your kubernetes manifests and they will be automatically updated.
New Features
- Added "skip-push" optimization for Docker for Desktop Kubernetes Clusters
- Examples should now be ran from their own directory
- Fixed kubernetes context for build and deploy
- Added options for GCR auth
- Set default log level to warn
- Change git commit to use short ID instead
- Helm deployer now acceptes namespace and values file
- Local builder now accepts docker build-args
- Added --tag flag for skaffold run
- Cache image configs by name
- Kubectl Generate a basic manifest if none provided
Bug fixes
- Dockerfile parsing for remote ADD file works correctly now
- Closed image config file descriptor
- Added
skaffold run
command - Added
skaffold dev
command - Added
skaffold version
command - Added
skaffold docker deps
command to parse dockerfile dependencies - Added
skaffold docker context
command to generate minimal docker context tar - Added Builders: Local Docker, Google Cloud Builder
- Added Deployers: Kubectl, Helm
- Filesystem watcher (kqueue)
- Log streaming of deploy resources
- Minikube optimizations
- Dockerfile introspection
- Added initial skaffold docker image with dependencies
- Globbing filepath config fields
- Added skaffold config
- Added initial integration test