Repository navigation
Releases
1.7.1
Highlights
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Core
- Networking
- Build
- Kubernetes
- ⌨️ New
--shared-image-storeoption oncontainer cluster runto use thecontainerimage store from cluster nodes; removed theload-imagesubcommand - ⌨️
container cluster lsnow shows one row per cluster; use--nodesfor the per-node view - ⌨️ Container lifecycle commands no longer operate on cluster nodes
- Worker node CPU and memory can now be set with
--workers count=<n>,cpus=<n>,memory=<size>
- ⌨️ New
What's Changed
- Send an :authority on the builder gRPC connection by @jglogan in #2428
- Adds
container clusterexample. by @jglogan in #2433 - Update container-builder-shim to 0.13.3. by @jglogan in #2434
- use macos 27 runners by @madrob in #2436
- Fix empty followpaths handling in BuildFSSync by @onlyarnav in #2414
- Document container clean in the reclaim disk space guide by @lucasbrito-wdt in #2413
- Bump to use containerization 0.54.0 by @adityaramani in #2443
- feat(stats): report cpuUtilization in the machine-readable formats by @guanchzhou in #2146
- [k8s plugin] Create a cluster bootstrapper by @katiewasnothere in #2416
- Update recommended kernel to kata 4.3.1 release vmlinux-6.18.56-208-debug by @katiewasnothere in #2447
- Add TOML configuration for default DNS nameservers, search, options by @0xMH in #1614
- Add the ability to share container's image store with container cluster by @crosbymichael in #2437
- Reduce install package size and install footprint. by @jglogan in #2458
- Add reference to apple/container-examples and remove examples/ out of this repo by @michaelzhang114 in #2457
- Create container-core-clusters XPC service by @adityaramani in #2451
- Exclude recreatable container data from Time Machine by @abdullahtas0 in #2412
- Clean the
cluster-shimbuild files withmake cleanby @dkovba in #2463 - Quiet the
cluster-shimbuild output and show the swift progress in place by @dkovba in #2461 - Do not allow high level container lifecycle commands to operate on cluster nodes by @katiewasnothere in #2462
- Switch to copy blobs by @crosbymichael in #2470
- Add option to set cpus and memory resources for worker nodes of cluster by @katiewasnothere in #2448
- Removed bug-report-how-to.md as this info is now consolidated in CONTRIBUTING.md by @michaelzhang114 in #2459
- Move HostStoreServer into a library so tests don't link the executable by @katiewasnothere in #2477
New Contributors
- @madrob made their first contribution in #2436
- @onlyarnav made their first contribution in #2414
- @lucasbrito-wdt made their first contribution in #2413
- @abdullahtas0 made their first contribution in #2412
Full Changelog: 1.6.1...1.7.1
1.6.1
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Core
- Kubernetes
What's Changed
- Fix host port conflicts and leftover failed nodes during cluster creation by @dkovba in #2399
- Fix forwarded process signal encoding by @vincent-peng in #1778
- Remove SIGWINCH from signal kill set by @ArasanDev in #1854
- Infer platform and runtime from OCI image by @noah-thor in #2422
- rename to container cluster by @crosbymichael in #2427
New Contributors
- @vincent-peng made their first contribution in #1778
- @ArasanDev made their first contribution in #1854
Full Changelog: 1.6.0...1.6.1
1.6.0
Highlights
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Security
- GHSA-vgrw-36j7-r93w - Pulling an image by digest does not verify that the registry returned the pinned digest
- GHSA-fqxg-rrf3-358v -
container buildmay serve files outside the build context when a symlink is swapped during a read
- Core
- Networking
- Build
- Kubernetes
What's Changed
- Stop importing Testing from ContainerTestSupport by @Hashim1999164 in #2118
- [container]: add commit command by @saehejkang in #1762
- Fix k8s list grouping for dual-role control-plane nodes by @Hokila in #2315
- K8s plugin: support no CNI on create by @katiewasnothere in #2277
- Remove machine user extension points, update machine docs. by @jglogan in #2322
- Document build and test targets, and make local test runs self-contained by default (.test-data) by @michaelzhang114 in #2288
- Skip unreadable entries in image list by @Hokila in #2157
- Fix coverage generation target by @noah-thor in #2353
- Fix
container system statusfalse negative under a Seatbelt sandbox. by @renlord in #2316 - Add support for multi node k8s clusters by @katiewasnothere in #2276
- Add a SWIFT_CONFIGURATION_EXTRA hook for extra swift build flags by @noah-thor in #2354
- Fix container k8s examples in command-reference by @katiewasnothere in #2355
- Correct coverage scope for unit tests by @noah-thor in #2356
- Extract
container buildandcontainer builderas a CLI plugin by @JaewonHur in #2298 - CLI test: sync disk after file remove and before clean. by @jglogan in #2366
- Extract ContainerBuild logic into a library by @JaewonHur in #2370
- Fix
container image loadfor sparse images. by @jglogan in #2385 - K8s image load fix fqn tagging by @katiewasnothere in #2384
- Fix built image loading, create command output, and help text in the Kubernetes plugin by @dkovba in #2369
- Fix minor issues in K8s plugin by @JaewonHur in #2372
- Use a custom entrypoint script for k8s container nodes by @katiewasnothere in #2289
- Add DNS aliases and subtree aliases for container network attachments by @jglogan in #2390
- ci: bump the github-actions group with 2 updates by @dependabot[bot] in #2391
- Update container-builder-shim to 0.13.2. by @jglogan in #2394
- Treat a missing log file as empty in container logs by @bryanmosley in #2393
- Fix container log following when the log is empty by @i098 in #2377
- Bump to use containerization 0.51.0 by @adityaramani in #2396
- Fix the cluster delete command when node containers are missing by @dkovba in #2397
- Update to latest containerization dependency 0.52.0 by @katiewasnothere in #2407
- Build context fix, bump to containerization 0.52.1. by @jglogan in #2415
New Contributors
- @Hashim1999164 made their first contribution in #2118
- @Hokila made their first contribution in #2315
- @michaelzhang114 made their first contribution in #2288
- @renlord made their first contribution in #2316
- @bryanmosley made their first contribution in #2393
- @i098 made their first contribution in #2377
Full Changelog: 1.5.0...1.6.0
1.5.0
Highlights
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Security
- GHSA-44v5-vx46-ghv6 - K8s Plugin: sanitize kubeconfig values from guest before merging with host kubeconfig
- Core
- Kubernetes
What's Changed
- Update README as v1.0.0 has been reached by @gvenzl in #2233
- Fix a compilation warning by @dkovba in #2251
- Fix container egress loss after localhost DNS changes by @realrajaryan in #2256
- forwarder: close backend channel immediately if frontend closes by @egernst in #2260
- docs: use an existing kindest/node tag in the k8s node image example by @saiyam1814 in #2257
- K8s plugin: Support custom CNI manifest by @katiewasnothere in #2254
- fix(k8s): correct k8s control plane components version using the user specified node image version by @zdk in #2271
- Fix Globber dropping directory contents under a symlinked ancestor by @JaewonHur in #2252
- Remove k8s start command for now by @katiewasnothere in #2290
- Sync command reference with current CLI options by @rishabhsai in #2265
- Run commands when image entrypoint is empty by @danielsyauqi in #2296
- fix(k8s): use the node's configured iptables backend for node prep by @guanchzhou in #2145
- Update to latest containerization@0.47.0 by @katiewasnothere in #2301
- Better error message for unknown commands by @realrajaryan in #2311
- Remove PLUGINS section from help message by @JaewonHur in #2309
- K8s Plugin: sanitize kubeconfig values from guest before merging with host kubeconfig by @katiewasnothere in #2310
- Update plugin error test by @realrajaryan in #2313
New Contributors
- @gvenzl made their first contribution in #2233
- @saiyam1814 made their first contribution in #2257
- @rishabhsai made their first contribution in #2265
- @danielsyauqi made their first contribution in #2296
- @guanchzhou made their first contribution in #2145
Full Changelog: 1.4.1...1.5.0
1.4.1
This release addresses two security issues in the Containerization package:
- GHSA-4587-w9mm-xxvh - OCI image load follows symlinks for
oci-layoutandindex.jsonoutside the extraction directory - GHSA-rgqp-277h-gcwj -
UnixType.init(path:)uses a macOS length limit longer than thesockaddr_un.sun_pathbuffer it copies into
There was no 1.4.0 release, we had to discard that tag so this release contains every change since 1.3.1.
Highlights
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Core
What's Changed
- Avoid escaping slashes in JSON output by @taljeon in #2205
- Enhance
container system statuscommand output by @muk2 in #1769 - Updates containerization to 0.43.0. by @jglogan in #2208
- [container]: add clean command by @saehejkang in #1949
- fix: handle container clean failing on read-only named volume mounts by @zdk in #2228
- ci: bump softprops/action-gh-release from 3.0.2 to 3.0.3 in the github-actions group by @dependabot[bot] in #2226
- Fix a compilation error by @dkovba in #2234
- Remove security markdown in favor of inherited security guidelines by @katiewasnothere in #2249
- docs: remove broken troubleshooting.md link in technical overview by @zdk in #2227
- Fix compilation warnings by @dkovba in #2235
- docs: Add k8s plugin reference by @egernst in #2244
- Bump CZ to 0.45.0 by @realrajaryan in #2250
New Contributors
Full Changelog: 1.3.1...1.4.1
1.3.1
This patch release addresses a number of security issues in the Containerization package:
- GHSA-x7pf-2jmj-pgcq - Creating a container or executing a container process can delete files outside its bundle through an unchecked id
- GHSA-f689-h8m7-3jp2 -
ContainerizationOCIaccepts unvalidated OCI descriptor digests, enabling path traversal in the local content store - GHSA-r3h2-rgqf-9hv9 - Loading an OCI image layout can read host files through a symlink
- GHSA-mx96-5vvg-x2mg - CVE-2026-65388 -
RegistryClientfollows theWWW-Authenticaterealm without validating its host or scheme - GHSA-697p-8837-37h3 - Unpacking a crafted image layer with a long(invalid) file name crashes the unpacking process
- GHSA-g3rx-2m58-rr63 - Unpacking a crafted image layer with an invalid length extended-attribute name crashes the unpacking process
What's Changed
- Add container skill by @crosbymichael in #2154
- Fix tmpfs mount source field left empty for --mount type=tmpfs by @sivasath16 in #2138
- Update to containerization 0.42.0 by @katiewasnothere in #2207
New Contributors
- @sivasath16 made their first contribution in #2138
Full Changelog: 1.3.0...1.3.1
1.3.0
Highlights
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Core
- Images
What's Changed
- Update sudoers file to not include dots by @tumd in #2080
- Refactor tmpfsMounts() to process tmpfs path correctly by @LevelVoid in #2103
- Remove
autoregistry scheme. by @jglogan in #2100 - Validate volume name in volume disk usage call by @katiewasnothere in #2107
- Topic/docs refactor by @egernst in #2032
- Integration test: fix k8s test with scoped domain. by @jglogan in #2104
- Extracts createPluginLoader() for use by container k8s. by @jglogan in #2115
- Fix a compilation error by @dkovba in #2119
- Split K8sHelper, add WorkerProvisioner protocol, and add LinuxWorker … by @jshi991 in #2110
- Do not set default maskedPaths and readonlyPaths for container machines by @katiewasnothere in #2137
- Remove AsyncParsableCommand conformance from ContainerCLI by @noah-thor in #2140
- Add identifier validation tests for the disk-usage routes by @realrajaryan in #2136
- Update default kernel to Kata Containers 3.32.0 debug build by @agamdua in #2143
New Contributors
- @tumd made their first contribution in #2080
- @LevelVoid made their first contribution in #2103
- @agamdua made their first contribution in #2143
Full Changelog: 1.2.2...1.3.0
1.2.2
This release fixes a glitch that prevented container k8s working when installed from the release package.
What's Changed
- Integration test: fix username/uid flake. by @jglogan in #2086
- refactor: extract K8s logic into ContainerK8s library target by @jshi991 in #2079
- Refactor
container k8sto use plugin resource management. by @jglogan in #2097 - Migrate ProgressBarTests to Swift Testing by @VictorPuga in #2085
New Contributors
- @VictorPuga made their first contribution in #2085
Full Changelog: 1.2.1...1.2.2
1.2.1
Highlights
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- Core
What's Changed
- [container]: add
container exportfor live containers by @saehejkang in #1630 - Adjust overcommit and max_map_count vm defaults in guest VMs by @adityabagchi24 in #2055
- [package]: bump container-builder-shim to 0.13.1 by @saehejkang in #2056
- [builder]: enable ssh forwarding for container build by @saehejkang in #1508
- Move SSH builder test to Serialized tests by @JaewonHur in #2061
- Increase testExecDetachProcessRunning sleep margin to avoid CI flake by @jglogan in #2063
- Add readiness signal to DirectoryWatcher, fix DirectoryWatcherTest. by @jglogan in #2066
- Log core counts in CI for perf analysis. by @jglogan in #2070
- Add
--read-only-pathand--masked-pathoption to container run / create by @adityaramani in #2069 - Simplify correlation of test prefix to test ID. by @jglogan in #2071
- Integration test: cache warmup image tarfiles. by @jglogan in #2074
- K8s plugin by @jshi991 in #2044
New Contributors
Full Changelog: 1.2.0...1.2.1
1.2.0
Highlights
⌨️ denotes breaking CLI changes.
👩💻 denotes breaking API changes.
- SECURITY FIXES
- GHSA-xwgf-4rc5-p4m4 - CVE-2026-64786 - bare-name image
Config.Enventries should not inherit values from the launching process's environment - GHSA-wg28-286f-56v6 - CVE-2026-64773 - TCP port forwarder buffers unbounded pre-connect data from published container ports
- GHSA-2v2q-4q35-h585 - CVE-2026-64777 - Build filesystem sync discloses host files outside the build context via symlinks
- GHSA-g57j-434g-5xj2 -
BuildFSSync.walk()'s JSON response mode reports the resolved host path of build-context symlinks that point outside the context. - GHSA-5h49-6pr7-9mv4 - reset special permission bits when extracting archives onto the host.
- GHSA-xwgf-4rc5-p4m4 - CVE-2026-64786 - bare-name image
- Core
What's Changed
- Add TestCLISystemLogs and TestCLITermIO integration tests in new integration test suite by @katiewasnothere in #1879
- Restore reverted migrations, migrate last tests. by @jglogan in #1880
- Removes obsolete CLITests directory. by @jglogan in #1886
- Integration coverage xpc helpers by @noah-thor in #1551
- Upgrade grpc-swift-nio-transport to 2.9.0 and remove HTTP2ConnectBuff… by @adityabagchi24 in #1790
- Updates containerization to 0.36.0. by @jglogan in #1912
- Use containerization version 0.37.0 by @adityaramani in #1932
- Verify kernel archive integrity by @haoruilee in #1703
- Add commit/issue alert to PR template. by @jglogan in #1945
- Remove
--skip-buildfrom test Makefile target. by @jglogan in #1951 - Restore
--skip-build, enableimport testablefor release builds. by @jglogan in #1955 - [package]: bump container-builder-shim to 0.13.0 by @saehejkang in #1953
- Validate container ID from XPC requests by @katiewasnothere in #1956
- Remove force unwraps on XPC error set/get by @katiewasnothere in #1958
- Do not follow destination symlink when copying user configuration by @katiewasnothere in #1957
- Fix machine ID length test. by @jglogan in #1971
- Address flaky TestCLIKernelSetSerial suite. by @jglogan in #1976
- [gitignore]: ignore vscode workspace files by @saehejkang in #1966
- Update containerization dependency with new EXT4Unpacker func definition by @katiewasnothere in #1973
- Periodic dependency updates. by @jglogan in #1981
- Use ordered journal mode for unpacked images. by @jglogan in #1974
- Reword DNS container name resolution doc information by @katiewasnothere in #1960
- ci: bump the github-actions group across 1 directory with 3 updates by @dependabot[bot] in #1983
- Pass build config in when building protoc dependencies by @katiewasnothere in #1972
- Container test fixture package by @katiewasnothere in #1887
- Downgrade swift-collections to 1.5.1. by @jglogan in #1984
- Use
enumfor warmup images. by @jglogan in #1990 - Add missing dependencies to new ContainerTestSupport package by @katiewasnothere in #1994
- Add OCI maskedPaths and readonlyPaths support to Container API. by @jglogan in #1996
- Integration test - miscellaneous fixture and test refinements. by @jglogan in #1993
- Use log instead of print for system start status messages by @adityabagchi24 in #1889
- Fix BuilderStart race, parallelize
container buildtests. by @jglogan in #2002 - Allow custom kernel boot args via --kernel-arg by @arirubinstein in #1744
- fix: Increase XPC timeout for Machine API operations by @dev-kvt in #2006
- Update containerization import to latest 0.40.0 by @katiewasnothere in #2028
- Fix image env vars, build context checks, TCP/UDP port forward buffer, and validate plugin name by @katiewasnothere in #2027
- Update containerization import to 0.40.1 by @katiewasnothere in #2038
New Contributors
- @haoruilee made their first contribution in #1703
- @arirubinstein made their first contribution in #1744
- @dev-kvt made their first contribution in #2006
Full Changelog: 1.1.0...1.2.0