This is the 19th release of Kaniko!
In this release, the highlights are:
- Cache layer size duplication regression in v0.18.0 is fixed. #1138
- Cache performance when using build-args.
build-args
are only part of cache key for a layer if it is used. - Kaniko can support a
tar.gz
context withtar://
prefix. - Users can provide registry certificates for private registries.
- Use the correct name for acr helper #1121
- remove build args from composite key and replace all build args #1085
- fix resolve link for dirs with trailing / #1113
- feat: add support of local '.tar.gz' file inside the kaniko container #1115
- Add support to
--chown
flag to ADD command (Issue #57) #1134 - executor: add --label flag #1075
- Allow user to provide registry certificate #1037
- Migrate to golang 1.14 #1098
- Make cloudbuild.yaml re-usable for anyone #1135
- fix: credential typo #1128
- Travis k8s integration test #1124
- Add more tests for Copy and some fixes. #1114
- Update README on running in Docker #1141
Huge thank you for this release towards our contributors:
- Anthony Davies
- Batuhan Apaydın
- Ben Einaudi
- Carlos Sanchez
- Cole Wippern
- cvgw
- Dani Raznikov
- DracoBlue
- James Ravn
- Jordan GOASDOUE
- Logan.Price
- Moritz Wanzenböck
- ohchang-kwon
- Or Sela
- Sam Stoelinga
- Tejal Desai
- Thomas Bonfort
- Thomas Strömberg
- tinkerborg
- Wietse Muizelaar
- xanonid
- Yoan Blanc
- Yuheng Zhang
This release fixes all the regression bugs associated with v0.17.0 and v0.17.1. This release, the team did a lot of work improving our test infrastructure, more tests cases and refactored filesystem walking.
Thank you all for your patience and supporting us throughout!
- fix home being reset to root #1072
- fix user metadata set to USER:GROUP if group string is not set #1105
- check for filepath.Walk error everywhere #1086
- fix #1092 TestRelativePaths #1093
- Resolve filepaths before scanning for changes #1069
- Fix #1020 os.Chtimes invalid arg #1074
- Fix #1067 - image no longer available #1068
- Ensure image SHA stays consistent when layer contents haven't changed #1032
- fix flake TestRun/Dockerfile_test_copy_symlink #1030
- root: add --registry-mirror flag #836
- set log format using a flag #1031
- Do not recompute layers retrieved from cache #882
- More idiomatic logging config #1040
- Split travis integration tests #1090
- Add integration tests from Issues #1054
- add integration tests with their own context #1088
- Fixed typo in README.md #1060
- test: refactor container-diff call #1077
- Refactor integration image built #1049
- separate travis into multiple jobs for parallelization #1055
- refactor copy.chown code and add more tests #1027
- Allow contributors to launch integration tests against local registry #1014
- add design proposal template #1046
- Update filesystem proposal status to Reviewed #1066
- update instructions for running integration tests #1034
- design proposal 01: filesystem resolution #1048
- Document that this tool is not officially supported by Google #1044
- Fix example pod.yml to not mount to root #1043
- fixing docker run command in README.md #1103
Huge thank you for this release towards our contributors:
- Anthony Davies
- Batuhan Apaydın
- Ben Einaudi
- Cole Wippern
- cvgw
- DracoBlue
- James Ravn
- Logan.Price
- Moritz Wanzenböck
- ohchang-kwon
- Or Sela
- Sam Stoelinga
- Tejal Desai
- Thomas Bonfort
- Thomas Strömberg
- tinkerborg
- Wietse Muizelaar
- xanonid
- Yoan Blanc
This is minor patch release to fix #1002
- Expand build argument from environment when no value specified #993
- whitelist /tmp/apt-key-gpghome.* directory #1000
- Add flag to
--whitelist-var-run
set to true to preserver default kani… #1011 - Prefer platform that is currently running for pulling remote images and kaniko binary Makefile target #980
- Fix caching to respect .dockerignore #854
- Fixes #988 run_in_docker.sh only works with gcr.io #990
- Fix Symlinks not being copied across stages #971
- Fix home and group set for user command #995
- Fix COPY or ADD to symlink destination breaks image #943
- [Caching] Fix bug with deleted files and cached run and copy commands
- [Mutistage Build] Fix bug with capital letter in stage names #983
- Fix #940 set modtime when extracting #981
- Fix Ability for ADD to unTar a file #792
- fix test flake #1016
- Upgrade go-containerregistry third-party library #957
- Remove debug tag being built for every push to master #1004
- Run integration tests in Travis CI #979
Huge thank you for this release towards our contributors:
- Anthony Davies
- Ben Einaudi
- Cole Wippern
- cvgw
- Logan.Price
- Moritz Wanzenböck
- ohchang-kwon
- Sam Stoelinga
- Tejal Desai
- Thomas Bonfort
- Wietse Muizelaar
Happy New Year 2020!
- Support for private registries in the cache warmer #941
- Fix bug with docker compatibility ArgsEscaped #964
- Clean code (Condition is always 'false' because 'err' is always 'nil' ). #967
- Fix #647 Copy dir permissions #961
- Allow setting serviceAccount in integration test #965
- Fix #926 cache warmer and method signature #927
- Fix #948 update valid license years #949
- Move hash bang to first line. #954
- Fix #944 include docker-credential-acr-linux #945
- Fix #925 broken insecure pull #932
- Push to ECR using instance roles #930
- Upgrade aws go sdk for supporting eks oidc credential chain #832
- Push image #866
- Fixes #950 integration test failing on go 1.13 #955
- Tidy dependencies #939
- changing to modules from dependencies #869
- Changing Log to trace #920
Huge thank you for this release towards our contributors:
- Adrian Mouat
- Balint Pato
- Ben Einaudi
- Benjamin EINAUDI
- Carlos Sanchez
- Cole Wippern
- Daniel Strobusch
- Eduard Laur
- Fahri Yardımcı
- Josh Soref
- lou-lan
- Nao YONASHIRO
- poy
- Prashant Arya
- priyawadhwa
- Pweetoo
- Remko van Hunen
- Sam Stoelinga
- Stijn De Haes
- Tejal Desai
- tommaso.doninelli
- Will Ripley
- Fix #899 cached copy results in inconsistent key #914
- Fix contribution issue sentence #912
- Include source stage cache key in cache key for COPY commands using --from #883
- Fix failure when using capital letters in image alias in 'FROM ... AS…' instruction #839
- Add golangci.yaml file matching current config #893
- when copying, skip files with the same name #905
- Modified error message for writing image with digest file #849
- Don't exit optimize early; record last cachekey #892
- Final cachekey for stage #891
- Update error handling and logging for cache #879
- Resolve symlink targets to abs path before copying #857
- Fix quote strip behavior for ARG values #850
- add unit tests for caching run and copy #888
- Only build required docker images for integration tests #898
- Add integration test for add url with arg #863
- Add unit tests for compositecache and stagebuilder #890
- updated readme #906
- nits in README #861
- Invalid link to missing file config.json #876
- Fix README.md anchor links #872
- Update readme known issues #874
Huge thank you for this release towards our contributors:
- Balint Pato
- Ben Einaudi
- Cole Wippern
- Eduard Laur
- Josh Soref
- Pweetoo
- Tejal Desai
- Will Ripley
- poy
- priyawadhwa
- tommaso.doninelli
- Added --image-name-with-digest flag #841
- Add support to download context file from Azure Blob Storage #816
- Add BUILD_ARGs to ease use of proxy #810
- fix tests for default home #824
- Issue #439 Strip out double quotes in ARG value #834
- Fixes caching with COPY command #773
- 828: clean up docker doc, fix context var in run cmd #829
- fix build_args in MakeFile, have Travis run make images to preven issue in future #821
- changing debug to trace #825
- Details about --tarPath usage improved #811
- Add
kaniko version
command #796 - Write data about pushed images for GCB kaniko build step if env var
BUILDER_OUTPUT
is set #602 - Support
Dockerfile.dockerignore
relative toDockerfile
#801
- fix creating abs path for urls #804
- Fix #691 - ADD does not understand ENV variables #768
- Resolve relative paths to absolute paths in command line arguments #736
- insecure flag is now honored with
--cache
flag. #685 - Reduce log level for adding file message #624
- Fix SIGSEGV on file system deletion while building #765
- add debug level info what is the layer type #805
- Update base image to golang:1.12 #648
- Add some triage notes to issue template. #794
- double help text about skip-verify-tls #782
- Add a pull request template #795
- Correct CheckPushPermission comment. #671
- feat: optimize build #694
Huge thank you for this release towards our contributors:
- alexa
- Andreas Bergmeier
- Carlos Alexandro Becker
- Carlos Sanchez
- chhsia0
- debuggy
- Deniz Zoeteman
- Don McCasland
- Fred Cox
- Herrmann Hinz
- Hugues Alary
- Jason Hall
- Johannes 'fish' Ziemke
- jonjohnsonjr
- Luke Wood
- Matthew Dawson
- Mingliang Tao
- Monard Vong
- Nao YONASHIRO
- Niels Denissen
- Prashant
- priyawadhwa
- Priya Wadhwa
- Sascha Askani
- sharifelgamal
- Sharif Elgamal
- Takeaki Matsumoto
- Taylor Barrella
- Tejal Desai
- Thao-Nguyen Do
- tralexa
- Victor Noel
- v.rul
- Warren Seymour
- xanonid
- Xueshan Feng
- Антон Костенко
- Роман Небалуев
- Added
--oci-layout-path
flag to save image in OCI layout. #744 - Add support for S3 custom endpoint #698
Huge thank you for this release towards our contributors:
- Carlos Alexandro Becker
- Carlos Sanchez
- chhsia0
- Deniz Zoeteman
- Luke Wood
- Matthew Dawson
- Niels Denissen
- Priya Wadhwa
- Sharif Elgamal
- Takeaki Matsumoto
- Taylor Barrella
- Tejal Desai
- v.rul
- Warren Seymour
- xanonid
- Xueshan Feng
- Роман Небалуев
- fix unpacking archives via ADD #717
- Reverted not including build args in cache key #739
- Create cache directory if it doesn't already exist #452
- add multiple user agents to kaniko if upstream_client_type value is set #750
- Make container layers captured using FS snapshots reproducible #714
- Include warmer in debug image #497
- Bailout when there is not enough input arguments #735
- Add checking image presence in cache prior to downloading it #723
- Document how to build from git reference #730
- Misc. small changes/refactoring #712
- Update go-containerregistry #680
- Update version of go-containerregistry #724
- feat: support specifying branch for cloning #703
Huge thank you for this release towards our contributors:
- Carlos Alexandro Becker
- Carlos Sanchez
- Deniz Zoeteman
- Luke Wood
- Matthew Dawson
- priyawadhwa
- sharifelgamal
- Sharif Elgamal
- Taylor Barrella
- Tejal Desai
- v.rul
- Warren Seymour
- Xueshan Feng
- Роман Небалуе
- Fix kaniko caching #639
- chore: fix typo #665
- Fix file mode bug #618
- Fix arg handling for multi-stage images in COPY instructions. #621
- Fix parent directory permissions #619
- Environment variables should be replaced in URLs in ADD commands. #580
- Update the cache warmer to also save manifests. #576
- Fix typo in error message #569
- Add SkipVerify support to CheckPushPermissions. #663
- Creating github Build Context #672
- Add
--digest-file
flag to output built digest to file. #655 - README.md: update BuildKit/img comparison #642
- Add documentation for --verbosity flag #634
- Optimize file copying and stage saving between stages. #605
- Add an integration test for USER unpacking. #600
- Added missing documentation for --skip-tls-verify-pull arg #593
- README.me: update Buildah description #586
- Add missing tests for bucket util #565
- Look for manifests in the local cache next to the full images. #570
- Make the run_in_docker script support caching. #564
- Refactor snapshotting #561
- Stop storing a separate cache hash. #560
- Speed up workdir by always returning an empty filelist (rather than a… #557
- Refactor whitelist handling. #559
- Refactor the build loop to fetch stagebuilders earlier. #558
- Improve changelog dates #657
- Change verbose output from info to debug #640
- Check push permissions before building images #622
- Bump go-containerregistry to 8c1640add99804503b4126abc718931a4d93c31a #609
- Update go-containerregistry #599
- Log "Skipping paths under..." to debug #571
Huge thank you for this release towards our contributors:
- Achilleas Pipinellis
- Adrian Duong
- Akihiro Suda
- Andreas Bergmeier
- Andrew Rynhard
- Anthony Weston
- Anurag Goel
- Balint Pato
- Christie Wilson
- Daisuke Taniwaki
- Dan Cecile
- Dirk Gustke
- dlorenc
- Fredrik Lönnegren
- Gijs
- Jake Shadle
- James Rawlings
- Jason Hall
- Johan Hernandez
- Johannes 'fish' Ziemke
- Kartik Verma
- linuxshokunin
- MMeent
- Myers Carpenter
- Nándor István Krácser
- Nao YONASHIRO
- Priya Wadhwa
- Sharif Elgamal
- Shuhei Kitagawa
- Valentin Rothberg
- Vincent Demeester
- Bug fix with volumes declared in base images during multi-stage builds
- Bug fix during snapshotting multi-stage builds.
- Bug fix for caching with tar output.
- Even faster snapshotting with godirwalk
- Added TTL for caching
- Change cache key calculation to be more reproducible.
- Make the Digest calculation faster for locally-cached images.
- Simplify snapshotting.
- Fix bug with USER command and unpacking base images.
- Added COPY --from=previous stage name/number validation
- Add support for COPY --from an unrelated image
- Speed up snapshotting by using filepath.SkipDir
- Improve layer cache upload performance
- Skip unpacking the base image in certain cases
- Fix bug with call loop
- Fix caching for multi-step builds
- parse arg commands at the top of dockerfiles #404
- Add buffering for large layers. #428
- Separate Insecure Pull Options #409
- Add support for .dockerignore file #394
- Support insecure pull #401
- Preserve options when doing a cache push #423
- More cache cleanups: #397
- adding documentation for base image caching #421
- Update go-containerregistry #420
- Update README #419
- Use remoteImage function when getting digest for cache #413
- adding exit 1 when there are not enough command line vars passed to `… #415
- "Container Builder" - > "Cloud Build" #414
- adding the cache warmer to the release process #412
- Persistent volume caching for base images #383
- Use only the necessary files in the cache keys. #387
- Change loglevel for copying files to debug (#303) #393
- Improve IsDestDir functionality with filesystem info #390
- Refactor the build loop. #385
- Rework cache key generation a bit. #375
- fix mispell #396
- Update go-containerregistry dependency #388
- chore: fix broken markdown (CHANGELOG.md) #382
- Don't cut everything after an equals sign #381
- Add a benchmark package to store and monitor timings. #367
- Add layer caching to kaniko #353
- Update issue templates #340
- Separate --insecure-skip-tls-verify flag into two separate flags #311
- Updated created by time for built image #328
- Add Flag to Disable Push to Container Registry #292
- Add a new flag to cleanup the filesystem at the end #370
- Update README to add information about layer caching #364
- Suppress usage upon Run error #356
- Refactor build into stageBuilder type #343
- Replace gometalinter with GolangCI-Lint #349
- Add Key() to LayeredMap and Snapshotter #337
- Add CacheCommand to DockerCommand interface #336
- Extract filesystem in order rather than in reverse #326
- Configure logs to show colors #327
- Enable shared config for s3 #321
- Update go-containerregistry. #305
- Tag latest in cloudbuild.yaml #287
- Set default home value #281
- Update deps #265
- Update go-containerregistry dep and remove unnecessary Options #376
- Add a bit more context to layer offset failures #264
- Whitelist /busybox in the debug image #369
- Check --cache-repo is provided with --cache and --no-push #374
- Fixes a whitelist issue when untarring files in ADD commands. #371
- set default HOME env properly #341
- Review config for cmd/entrypoint after building a stage #348
- Enable overwriting of links (solves #351) #360
- Only return stdout when running commands for integration tests #363
- Whitelist /etc/mtab #347
- Added a KanikoStage type for each stage of a Dockerfile #320
- Make sure paths are absolute before matching files to wildcard sources #330
- Build each kaniko image separately #324
- support multiple tags when writing to a tarfile #323
- Snapshot only specific files for COPY #319
- Remove some constraints from our Gopkg.toml. #318
- Always snapshot files in COPY and RUN commands #289
- Refactor command line arguments and the executor #306
- Fix bug in SaveStage function for multistage builds #295
- Get absolute path of file before checking whitelist #293
- Fix support for insecure registry #169
- ignore sockets when adding to tar #288
- fix add command bug when adding remote URLs #277
- Environment variables with multiple '=' are not parsed correctly #278
- Ensure cmd.SysProcAttr is set before modifying it #275
- Don't copy same files twice in copy integration tests #273
- Extract intermediate stages to filesystem #266
- Fix process group handling. #271
- Only add whiteout files once #270
- Fix handling of the volume directive #334
New Features
- Local integration testing #256
- Add --target flag for multistage builds #255
- Look for on cluster credentials using k8s chain #243
Bug Fixes
- Kill grandchildren spun up by child processes #247
- Fix bug in copy command #221
- Multi-stage errors when referencing earlier stages #233
New Features
- Support for adding different source contexts, including Amazon S3 #195
- Added --reproducible #205 and --single-snapshot #204 flags
- Documented running kaniko in gVisor #194
- Update go-containerregistry so kaniko works better with Harbor and Gitlab#227
- Push image to multiple destinations #184
New Features