Update Notice
⚠️ The
slimimage no longer authenticates to GCR/GAR, ECR and ACR, and drops thegs://,s3://and azure build contexts, git build contexts and OpenTelemetry export. If you use any of them, switch tolatest, which is now about the same size asslimused to be.
In this Release we activated these feature-flags:
- FF_KANIKO_ADD_CHECKSUM
- FF_KANIKO_ADD_UNPACK
- FF_KANIKO_CACHE_HASH_BLAKE3
- FF_KANIKO_CACHE_LOOKAHEAD
- FF_KANIKO_COPY_SKIP_SPECIAL_FILES
- FF_KANIKO_CROSS_REPO_MOUNT
- FF_KANIKO_DEPRECATE_LAYERLESS_CACHE_ENTRIES
- FF_KANIKO_EXPAND_HEREDOC
- FF_KANIKO_HASH_DIR_FRAMING
- FF_KANIKO_IMAGE_STAGES
- FF_KANIKO_INFER_CROSS_STAGE_CACHE_KEY
- FF_KANIKO_LAYER_HINTS
- FF_KANIKO_NATIVE_COPY
- FF_KANIKO_PATH_SCOPED_REGISTRY_AUTH
- FF_KANIKO_PEEK_ARCHIVE_HEADER
- FF_KANIKO_PLATFORM_CACHE_KEY
- FF_KANIKO_POOL_REGISTRY_CONNECTIONS
- FF_KANIKO_PRECOMPILE_DOCKERIGNORE
- FF_KANIKO_PRESERVE_MOUNTED_SYMLINKS
- FF_KANIKO_REPRODUCIBLE_PRESERVE_BASE_LAYERS
- FF_KANIKO_REPRODUCIBLE_PRESERVE_FORMAT
- FF_KANIKO_RESOLVE_CACHE_KEY
- FF_KANIKO_ROLLING_CACHE_KEY
- FF_KANIKO_RUN_HONOR_GROUP
- FF_KANIKO_SHARED_BASE_CACHE
- FF_KANIKO_SKIP_CACHED_STAGES
- FF_KANIKO_SKIP_RELABEL_RECOMPRESS
- FF_KANIKO_SKIP_WRITE_WHITEOUTS
- FF_KANIKO_UNPACK_ZSTD
- FF_KANIKO_UNTAR_SKIP_ROOT
⚠️ Several of these flags change how cache keys are computed. Existing cache entries are invalidated, so the first build after upgrading is a full rebuild that repopulates the cache.
⚠️
--reproduciblenow leaves base layers untouched and keeps the requested image format, so the digest of a reproducible build changes once. A reproducible build from an OCI base is now pushed as OCI instead of docker, pass--image-format=dockerto keep the old format.
FF_KANIKO_ADD_CHECKSUM verifies ADD --checksum. A wrong checksum used to pass silently and now fails the build, so update it to the digest of the download.
FF_KANIKO_EXPAND_HEREDOC expands variables in unquoted COPY and ADD heredoc bodies. If a body needs a literal $, quote the delimiter:
COPY <<'EOF' /etc/motd
costs $5
EOFFF_KANIKO_PATH_SCOPED_REGISTRY_AUTH matches an auths entry against the repository namespace, so one entry for registry.example.com/org-a covers every repository below it and you can merge your per-repository entries. It is no longer sent to sibling namespaces like registry.example.com/org-b, which now need their own entry.
FF_KANIKO_SHARED_BASE_CACHE keeps downloaded bases in /kaniko/bases after the build, --cleanup does not remove them. If you reuse an executor for many builds, clean that directory yourself.
You can roll-back any of those changes by overriding them in the environment ie.
job:
variables:
FF_KANIKO_PLATFORM_CACHE_KEY: "0"
FF_KANIKO_CROSS_REPO_MOUNT: "0"Please also notify us by filing a new issue.
We further removed these feature-flags:
FF_KANIKO_RUN_MOUNT_BINDFF_KANIKO_NO_PROPAGATE_ANNOTATIONSFF_KANIKO_VOLUME_SKIP_MKDIRFF_KANIKO_PRESERVE_HARDLINKSFF_KANIKO_BUILDKIT_ARG_ENV_PRECEDENCEFF_KANIKO_PRESERVE_MOUNTED_PATHSFF_KANIKO_DEPRECATE_INTER_STAGE_RESTOREFF_KANIKO_SECUREJOIN_EXTRACTIONFF_KANIKO_WARMER_CACHE_LOCKFF_KANIKO_CLEAN_KANIKO_DIRFF_KANIKO_RELATIVE_LINK_TARGETSFF_KANIKO_OCI_WARMERFF_KANIKO_IGNORE_CACHED_MANIFEST
Their behavior is now unconditional, they have no effect and can be removed.
⚠️ The warmer only reads and writes the OCI layout now. Tarballs left in a warmer cache from before
v1.28.0are no longer used, re-run the warmer to populate the cache.
Community Update
@gary-wall made their first contribution in #1205. The warmer now also caches the image index, so builds from a base pinned by index digest work air-gapped.
@gary-wall also joined us as a maintainer, welcome aboard!
Also many thanks to @philou-078 and @hanbyeol for reporting issues fixed in this release.
To get an overview over our feature flags you can check the schedule on https://osscontainertools.org/kaniko/flags/
What's Changed
Security
- go stdlib v1.26.9: CVE-2026-111943 (eMudhra)
Bugfixes
- warmer pulls
scratchfrom the registry: by @gary-wall in #1205 FF_KANIKO_ISOLATE_CACHE_PUSH=falseevery cache push also writes the build outputs: #1223- warmer leaves nested
ARGdefaults unexpanded: #1209 FF_KANIKO_WARMER_BUILD_ARGS=falsewarmer lets anARGdefault win over--build-arg: #1207- warmer pulls stage references that differ in case: #1208
FF_KANIKO_WARMER_PREDEFINED_ARGS=falsewarmer leavesTARGETARCHempty inFROM: #1210
Standardization
FF_KANIKO_RUN_HEREDOC_SCRIPT=falserun a loneRUNheredoc body as the script: #1216FF_KANIKO_COPY_KEEP_DEST_OWNER=falseCOPY --chownkeeps the owner of an existing destination directory: #1257FF_KANIKO_COPY_SUBDIR_MODE=falsedirectoryCOPYapplies the source mode to existing subdirectories: #1259
Caching
FF_KANIKO_CACHE_IMAGE_INDEX=falsewarmer caches the image index of index-pinned bases: by @gary-wall in #1225FF_KANIKO_FORMAT_INDEPENDENT_CACHE_KEY=falsekeep--image-formatout of cache keys: #1276
Performance
- relabel cached layers without downloading them: #1275
Usability
- warmer
--dryrunprints which bases it would fetch: #1206 - graduate feature flags for v1.29.0 release: #870 #1235
--predefined-annotationssets the OCI source, revision, version and base image annotations: #1227--provenanceattaches a SLSA provenance attestation: #1230FF_KANIKO_NATIVE_INIT=falsekaniko acts as its own init process: #1222
Telemetry
- trace the push, planning and the
--reproduciblerewrite: #1217
Packaging
- make the kaniko images reproducible: #1231
- ship licenses in the images: #1247
- ship credential helpers as hardlinks to the executor: #1224
- add busybox and tini sources to the SBOM: #1246
- reproducible go build of executor and warmer: by @gary-wall in #1269
slimimage drops the cloud SDKs, go-git and OpenTelemetry: #1279 #1265
Maintenance
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/ecr from 1.66.3 to 1.66.6: #1215 #1255 #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/ecrpublic from 1.47.3 to 1.47.6: #1215 #1255 #1274
- build(deps): bump github.com/klauspost/compress from 1.20.1 to 1.20.3: #1226
- build(deps): bump github.com/klauspost/cpuid/v2 from 2.4.0 to 2.4.1: #1228
- build(deps): bump google.golang.org/api from 0.301.0 to 0.308.0: #1229 #1245 #1256 #1264 #1283
- build(deps): bump go from 1.26.9 to 1.27.3: #1034 #1271
- build(deps): bump github.com/Azure/azure-sdk-for-go/sdk/azidentity from 1.14.1 to 1.15.0: #1244
- build(deps): bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.31.0 to 2.32.0: #1243
- build(deps): bump github.com/docker/cli from 29.9.0 to 29.9.2: #1242 #1255
- build(deps): bump github.com/Microsoft/go-winio from 0.6.3 to 0.6.4: #1242
- build(deps): bump github.com/moby/buildkit from 0.34.0 to 0.34.1: #1249
- build(deps): bump step-security/harden-runner from 2.22.1 to 2.22.2: #1253
- build(deps): bump github.com/aws/aws-sdk-go-v2/feature/s3/transfermanager from 0.4.16 to 0.4.19: #1255 #1274
- build(deps): bump anchore/grype from 0.111.1 to 0.121.0: #1261
- build(deps): bump k3s-io/k3s from v1.36.2+k3s1 to v1.37.1+k3s1: #1262 #1286
- build(deps): bump docker engine from 29.7.0 to 29.9.2: #1260
- build(deps): bump alpine from 3.24.2 to 3.24.3: #1270
- build(deps): bump docker/login-action from 4.6.0 to 4.7.0: #1272
- build(deps): bump docker/setup-docker-action from 5.5.0 to 5.6.0: #1272
- build(deps): bump github.com/aws/aws-sdk-go-v2 from 1.47.3 to 1.47.4: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/config from 1.33.9 to 1.33.10: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/s3 from 1.114.3 to 1.114.5: #1274
- build(deps): bump github.com/docker/docker-credential-helpers from 0.9.10 to 0.9.12: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/aws/protocol/eventstream from 1.7.22 to 1.7.24: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/credentials from 1.20.9 to 1.20.10: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/feature/ec2/imds from 1.20.3 to 1.20.4: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/internal/configsources from 1.5.6 to 1.5.7: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 from 2.8.6 to 2.8.7: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/internal/v4a from 1.5.6 to 1.5.7: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding from 1.13.21 to 1.13.22: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/internal/checksum from 1.11.7 to 1.11.8: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/internal/presigned-url from 1.14.6 to 1.14.7: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/internal/s3shared from 1.20.6 to 1.20.7: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/signin from 1.10.4 to 1.10.5: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/sso from 1.38.4 to 1.38.5: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/ssooidc from 1.43.4 to 1.43.5: #1274
- build(deps): bump github.com/aws/aws-sdk-go-v2/service/sts from 1.51.4 to 1.51.5: #1274
- build(deps): bump github.com/aws/smithy-go from 1.28.5 to 1.28.6: #1274
- build(deps): bump github.com/googleapis/enterprise-certificate-proxy from 0.3.23 to 0.3.24: #1274
- build(deps): bump github.com/ProtonMail/go-crypto from 1.4.1 to 1.5.2: #1184
- build(deps): bump github.com/googleapis/gax-go/v2 from 2.26.2 to 2.27.0: #1282
- build(deps): bump github.com/dimchansky/utfbom from 1.1.1 to 1.2.0: #1281
- build(deps): bump github.com/osscontainertools/docker-credential-acr from 0.9.2 to 1.0.0: #1284
- build(deps): bump registry from 2 to 3: #1288
- build(deps): bump google/cloud-sdk from 256.0.0-alpine to 590.0.1-alpine: #1297
- build(deps): bump ubi from ubi8 8.2 to ubi9 9.8: #1295
- build(deps): bump rabbitmq from 3.7.11 to 4.4.0: #1296
Fork Related
- drop unused dependencies and upstream leftovers: #1237 #1239 #1240 #1278
- test improvements: #1238 #1273 #1289 #1290 #1293 #1292 #1299 #1294 #1298 #1291
--dryrunplan printsSTREAMforFROM scratch: #1211KANIKO_NO_PUSH=truewithout--destinationfails flag validation: #1232- disable the dependabot cooldown: #1267
- add @gary-wall to maintainers: #1277