793 Commits
Author SHA1 Message Date
J Logan b3eb70307a Add DNS aliases and subtree aliases for container network attachments (#2390)
- Closes #457.
- A container can now declare additional DNS names for
  a network attachment with a repeatable `alias` property
  on `--network`, including subtree aliases that match
  every name below a domain.
- With the default domain `test`, this container answers
  to `gateway.test` by its name, to `api.test` by the exact
  alias, and to `web.gateway.test`, `a.b.gateway.test`
  and every other name below `gateway.test` by the
  subtree alias. The motivating case is a gateway container
  in front of a local Kubernetes cluster that answers for
  `*.gateway.test`, with an ingress controller routing on
  the `Host` header.
- An alias is an exact name, or a name with a leading
  dot that matches every name below it. A name without
  a dot gets the default domain, as container names do.
  A subtree alias must be below a name the same
  attachment owns, and exact names are unique across
  all containers, so a container cannot claim another
  container's namespace. The rules for one attachment
  are checked when a container is created, again when
  a stored container starts, and again by the network
  helper when it registers the aliases. See
  `docs/architecture/dns.md` for the design, the
  invariants and the security considerations.
2026-10-14 10:11:00 -07:00
Kathryn Baldauf 17ea964c6c Use a custom entrypoint script for k8s container nodes (#2289)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-10-13 16:05:29 -07:00
jwhur 7749804d32 Fix minor issues in K8s plugin (#2372) 2026-10-13 15:55:47 -07:00
Dmitry Kovba c3fea8c3d9 Fix built image loading, create command output, and help text in the Kubernetes plugin (#2369) 2026-10-13 15:22:50 -07:00
Kathryn Baldauf aa8b830745 K8s image load fix fqn tagging (#2384)
- The k8s load-image CLI command will issue a
  ctr image tag command in the guest to make
  the fully qualified name of an image available
  when the image has a short name (such as
  when building and testing locally). The ordering 
  of fully qualified name and source image name
  was backwards, causing the command to
  silently fail.

Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-10-12 16:51:56 -07:00
J Logan 7f3697804f Fix container image load for sparse images. (#2385)
- Fixes #2383.
- Bumps containerization to 0.50.0 to pick up
  apple/container#961 upon which this fix depends.
2026-10-12 16:31:01 -07:00
jwhur f70ecbb926 Extract ContainerBuild logic into a library (#2370) 2026-10-09 10:20:24 -07:00
J Logan 48f902dc66 CLI test: sync disk after file remove and before clean. (#2366) 2026-10-08 11:20:36 -07:00
jwhur 763aea5bf0 Extract container build and container builder as a CLI plugin (#2298) 2026-10-08 11:14:49 -07:00
Noah Thornton 283d792ba4 Correct coverage scope for unit tests (#2356) 2026-10-07 09:33:48 -07:00
Kathryn Baldauf 6e48b323d3 Fix container k8s examples in command-reference (#2355)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-10-06 16:27:01 -07:00
Noah Thornton ddc3169cc3 Add a SWIFT_CONFIGURATION_EXTRA hook for extra swift build flags (#2354) 2026-10-06 13:05:17 -07:00
Kathryn Baldauf 6fe55561fd Add support for multi node k8s clusters (#2276)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-10-06 09:52:58 -07:00
Renlord Yang 175e493a6f Fix container system status false negative under a Seatbelt sandbox. (#2316)
- `launchctl list` does not work as expected in the sandbox.
- Probe with `launchctl print <domain>/<label>` instead,
  which launchd does allow a sandboxed process, and key
  off exit codes: 0 means registered, 113 (ENOSERVICE)
  means not registered, and anything else is an error rather
  than being mistranslated into a negative.
- The probe is advisory in `system status`, so an indeterminate
  answer falls through to the XPC health check, whose success 
  is authoritative.

Signed-off-by: Renlord Yang <renlord@apple.com>
2026-10-05 15:52:37 -07:00
Noah Thornton 8ba7e2a65a Fix coverage generation target (#2353) 2026-10-05 14:53:52 -07:00
Hokila Jan 38fe2f9a4b Skip unreadable entries in image list (#2157)
- Fixes #2149.
- `container image list` currently fails completely when
  one image record references an unreadable or missing
  content blob. Healthy images are not rendered, and
  structured output such as JSON and YAML is unavailable.
- This PR resolves each image independently:
  - healthy images remain visible;
  - unreadable images are reported as warnings;
  - warnings are written to stderr;
  - structured stdout remains valid;
  - the command exits non-zero after rendering a
    partial listing, so automation can detect it.
2026-10-02 13:18:04 -07:00
Michael Zhang 1cd4cb3115 Document build and test targets, and make local test runs self-contained by default (.test-data) (#2288) 2026-10-02 09:42:11 -07:00
J Logan 0a48a1bdbf Remove machine user extension points, update machine docs. (#2322)
- Closes #2321.
- Removes image script and ORAS resource extension
  point handling for container machine user setup.
- Replaces image script resource with hardcoded script.
- Adds more flexible user setup options to
  `container machine`.
- Updates container machine documentation to clearly
  identify convenience-isolation tradeoffs.
2026-09-30 16:57:10 -07:00
Kathryn Baldauf 2ef8aef92a K8s plugin: support no CNI on create (#2277)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-09-30 15:57:41 -07:00
Hokila Jan dbd5ca0840 Fix k8s list grouping for dual-role control-plane nodes (#2315) 2026-09-29 19:17:13 -07:00
Saehej Kang d5023f4071 [container]: add commit command (#1762)
- Closes #1399.
2026-09-29 14:40:40 -07:00
Hashim Khan f7a75fb9a8 Stop importing Testing from ContainerTestSupport (#2118) 2026-09-29 11:20:32 -07:00
Raj d265d669ec Update plugin error test (#2313) 1.5.0 2026-09-28 16:28:39 -07:00
Kathryn Baldauf 31a069a1c9 K8s Plugin: sanitize kubeconfig values from guest before merging with host kubeconfig (#2310)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-09-28 14:47:39 -07:00
jwhur 6fba624647 Remove PLUGINS section from help message (#2309) 2026-09-28 13:14:07 -07:00
Raj 2e23485f62 Better error message for unknown commands (#2311) 2026-09-28 12:09:51 -07:00
Kathryn Baldauf 4a7d861524 Update to latest containerization@0.47.0 (#2301)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-09-24 17:14:52 -07:00
Andrey Maltsev eafe6b8b31 fix(k8s): use the node's configured iptables backend for node prep (#2145) 2026-09-24 11:16:24 -07:00
Daniel Syauqi dc276ee5f3 Run commands when image entrypoint is empty (#2296) 2026-09-22 16:36:20 -07:00
rishabh b5eb9e9a25 Sync command reference with current CLI options (#2265) 2026-09-22 09:50:17 -07:00
Kathryn Baldauf be974a3ea3 Remove k8s start command for now (#2290)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-09-21 16:54:06 -07:00
jwhur 09d8e6aeea Fix Globber dropping directory contents under a symlinked ancestor (#2252) 2026-09-21 14:01:26 -07:00
Di Warachet S. 4e7dce66ad fix(k8s): correct k8s control plane components version using the user specified node image version (#2271) 2026-09-18 12:45:06 -07:00
Kathryn Baldauf 57f0b9392b K8s plugin: Support custom CNI manifest (#2254)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-09-15 09:36:17 -07:00
Saiyam Pathak 55437109ad docs: use an existing kindest/node tag in the k8s node image example (#2257) 2026-09-11 15:35:24 -07:00
Eric Ernst 33ebc8ae67 forwarder: close backend channel immediately if frontend closes (#2260)
Signed-off-by: Eric Ernst <eric_ernst@apple.com>
2026-09-11 12:08:27 -07:00
Raj b61450b6e8 Fix container egress loss after localhost DNS changes (#2256) 2026-09-10 19:00:07 -07:00
Dmitry Kovba d5c31e98a2 Fix a compilation warning (#2251) 2026-09-10 17:34:33 -07:00
Gerald VenzlandEric Ernst 8ca5c80c38 Update README as v1.0.0 has been reached (#2233)
Co-authored-by: Eric Ernst <eric_ernst@apple.com>
2026-09-09 12:24:42 -07:00
Raj 9a8917ca2d Bump CZ to 0.45.0 (#2250) 1.4.1 2026-09-08 16:46:50 -07:00
Eric Ernst 26bdf462d7 docs: Add k8s plugin reference (#2244)
Signed-off-by: Eric Ernst <eric_ernst@apple.com>
1.4.0
2026-09-08 15:48:11 -07:00
Dmitry Kovba 57ddcb34dc Fix compilation warnings (#2235) 2026-09-08 12:41:11 -07:00
Di Warachet S. d5cefbd5cb docs: remove broken troubleshooting.md link in technical overview (#2227) 2026-09-08 12:10:31 -07:00
Kathryn Baldauf 2a442151ae Remove security markdown in favor of inherited security guidelines (#2249)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2026-09-08 11:23:48 -07:00
Dmitry Kovba eee7ad0970 Fix a compilation error (#2234) 2026-09-04 13:09:24 -07:00
dependabot[bot] 025f57c6c0 ci: bump softprops/action-gh-release from 3.0.2 to 3.0.3 in the github-actions group (#2226)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-09-02 15:49:13 -07:00
Di Warachet S. c82fe3c4be fix: handle container clean failing on read-only named volume mounts (#2228)
- Skips the rootfs when the container was created with
  `--read-only`, and skips block mounts whose options
  include `ro`.
- Keeps trimming the remaining targets after a failure,
  then throws one error listing each failed path with its
  underlying error.
2026-09-02 15:46:16 -07:00
Saehej Kang b8ffd38c73 [container]: add clean command (#1949)
- Closes #1763
- `container clean` marks deallocated filesystem blocks
  in the container VM so that the host can reclaim the
  unused capacity.
2026-09-01 11:32:31 -07:00
J Logan 97a0c11a6e Updates containerization to 0.43.0. (#2208) 2026-08-31 10:21:37 -07:00
muk2andClaude Opus 4.8 d925dab865 Enhance container system status command output (#1769)
- Fixes #815.
- Relocates the API server info received from the health check
  XPC to a `server` property.
- Fixes the server `version` property in the health check result
  to contain only the version; previously it included text that was
  already in sibling properties. 
- Adds properties for host, client, paths, and resources.
- Adds these properties to the output of `container system status`,
  in a table or as JSON (`--format json`). Daemon-sourced fields
  populate only when the API server responds, so the command
  degrades gracefully to a "server not running" view when the
  daemon is stopped. System configuration values are not repeated
 here — `container system property ls` already reports them.

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-08-30 12:56:09 -07:00