47 Commits

Author SHA1 Message Date
Michael Crosby 0fd869231e add NOTE on default registry (#53)
Signed-off-by: crosbymichael <michael_crosby@apple.com>
0.1.0
2025-06-09 11:56:37 -07:00
J Logan fc13f55b23 Fine-tune build requirements. (#52)
Co-authored-by: Aditya Ramani <a_ramani@apple.com>
2025-06-09 11:21:40 -07:00
Aditya Ramani 523cfe4f52 Bump to using Containerization 0.1.0 (#50)
Also update the `container-builder-shim` image to 0.1.0

Signed-off-by: Aditya Ramani <a_ramani@apple.com>
2025-06-09 11:18:49 -07:00
Eric Ernst 9e3d32e08c update code comments for consistent macOS descriptions (#51) 2025-06-09 11:12:03 -07:00
Madhu Venugopal e933ff3c53 Updating latest macOS and Xcode versions (#49)
Co-authored-by: madhu <mvenugopal@apple.com>
2025-06-09 10:33:51 -07:00
J Logan e6c49b4176 Update HTML output in tutorial, how-to. (#47) 2025-06-09 09:43:31 -07:00
Eric Ernst cba7534065 docs: add initial contributors file (#48) 2025-06-09 09:42:10 -07:00
J Logan 5a43b0abac Use python:alpine for tutorial. (#46) 2025-06-09 07:52:52 -07:00
Eric Ernst 1ef655eb96 docs: improve instructions for building with local containerization (#43)
If they're just pulling containerization, suggest following build env
setup directions from containerization repo so they get a cross-platform
SDK setup.
2025-06-08 22:33:55 -07:00
Aditya Ramani 33782141fb Bump to using Containerization 0.0.4 (#45)
- Includes updates for setting MTU to 1280
- Also includes bug fixes for LinuxContainer IO streams
2025-06-08 21:34:31 -07:00
Eric Ernst 8fcbd01678 docs: update version description (#42)
Updating version descriptions so we're consistent across repos.

Signed-off-by: Eric Ernst <eric_ernst@apple.com>
2025-06-08 18:02:44 -07:00
J Logan ff59bb38e8 Use bookworm in tutorial, disable console block copy. (#39)
- Switched to use bookworm Python image as `curl` is not in slim.
- Use `pre` tags for console blocks. We lose syntax highlighting, but
get rid of the copy button.
- Fix `dockerfile` tag in tutorial.
- Fix GitHub typo in README.
2025-06-08 17:30:40 -07:00
Eric Ernst 50557aa786 docs: let's drop contributors (#41)
We'll have original authors on first commit, let's skip having a
contributors file for now.

Signed-off-by: Eric Ernst <eric_ernst@apple.com>
2025-06-08 16:25:46 -07:00
J Logan e8b34033e8 Clarify signed installer package file for download. (#38) 2025-06-07 21:14:16 -07:00
J Logan 6690f6d076 Corrections and refinements for user documentation. (#35) 2025-06-07 21:00:47 -07:00
Sidhartha Mani 7020082723 [Build] purely-lexical URL operations for resolving symlinks (#31)
`BuildFSSync.walk` relied on an implementation detail to skip traversing
the path ".", relative to the build context dir.

Specifically, it assumed that:
- `URL.parentOf()` would return false when the parent argument was
relative.
- `URL.path(percentEncoded: false)` would preserve the relativity of an
input path.
These assumptions held on earlier macOS releases, so the context
directory silently remained untouched.

In some versions of macOS , `URL.path(percentEncoded: false)` always
returns an absolute path, regardless of how the URL was created. Because
of this change, `URL.parentOf()` now returns true for ".", and
BuildFSSync.walk begins descending into the context directory—something
it was never meant to do.

This solution:
- Remove the hidden dependency on `URL.parentOf()` for context‑directory
detection.
- Add an explicit check for "." inside BuildFSSync.walk and bail out
early.

Replace fragile calls to `URL.path(percentEncoded: false`) with the
stable, documented `URL.relativePath`, which preserves relativity when
the original path was relative.
2025-06-07 15:32:06 -07:00
Aditya Ramani f86dcefb04 Add make target to fetch the default kernel (#33)
Replaces the `--install-dependencies` flag with the
`(enable/disable)-kernel-install` flag. If the flag is not passed - the
default behavior is prompting the user for a response.

Also adds a make target `install-kernel`

```
➜ bin/container system start
Verifying apiserver is running...
Installing base container filesystem...
No default kernel configured.
Install the recommended default kernel from [https://github.com/kata-containers/kata-containers/releases/download/3.17.0/kata-static-3.17.0-arm64.tar.xz]? [Y/n]: n
Please use the `container system kernel set --recommended` command to configure the default kernel

➜ bin/container system start --disable-kernel-install
Verifying apiserver is running...

➜ bin/container system start --enable-kernel-install
Verifying apiserver is running...
Installing kernel...

➜ bin/container system start --help

USAGE: container system start ... [--enable-kernel-install] [--disable-kernel-install]
...
  --enable-kernel-install/--disable-kernel-install
                          Specify if the default kernel should be installed or not.

```

---------

Signed-off-by: Aditya Ramani <a_ramani@apple.com>
2025-06-07 12:45:45 -07:00
Madhu Venugopal 9a42c224f6 Update README.md (#34)
Fixed minor typo
2025-06-07 12:13:19 -07:00
Kathryn Baldauf d4e01c6579 Only allow publishing docs on release branch or tags (#30)
This removes the ability to deploy docs on the main branch and instead
only allows docs deployment on either a tag or a release branch. Docs
are also built (but not deployed) in the common job run by the build and
release pipelines.

Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2025-06-06 21:49:49 -07:00
J Logan 6fe813a9da Bulk up docc for ContainerSandboxService. (#32) 2025-06-06 16:36:49 -07:00
Joseph Heck 7c51835c1b moves intro image to beneath the intro text (#25)
Moves the introductory animation/image to beneath a title for the README
and the initial introductory text. Explains what you're seeing a bit
better, while still keeping the image "above the fold" to make it
prominent and encourage people to see and understand what this project
does.
2025-06-06 14:48:51 -07:00
Kathryn Baldauf 7523d68251 Update to containerization 0.0.3 (#21)
Update containerization to take new breaking changes
https://github.com/apple/containerization/pull/22

Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2025-06-06 14:39:51 -07:00
Patrice Jaton 210227e14c Remove local CoC and MD updates (#29)
* Remove local `CODE-OF-CONDUCT.md` as we are now using the organization
one.
* Update `SECURITY.md`'s title to 
  ```diff
  - # Security process
  + # Security disclosure process
  ```
* Remove extra space in `CONTRIBUTING.md` title
* Add contribution section in `README.md`
2025-06-06 14:02:47 -07:00
Aditya Ramani 5d80ca8d40 Extend NSLock to accept a closure (#28)
Signed-off-by: Aditya Ramani <a_ramani@apple.com>
2025-06-06 12:08:47 -07:00
J Logan bc9865bb81 Removes docc targets we currently do not need. (#27) 2025-06-06 12:08:03 -07:00
Dmitry Kovba 8ad99efdbc Allow printed output to flush to prevent a race between progress updates and other output (#23)
This PR also improves clearing the last progress update after moving to
a new task using `setDescription()`.
2025-06-06 11:48:22 -07:00
Arnav Reddy cd94337f27 Truncate container log files to remove logging delay on restarted container (#26)
When a container that was writing stdout/stderr to its dedicated
container log file was stopped and started, there was a ~20 second - 1
minute delay from when the init process was restarted and when the
output of the process was written to the log file. This also meant there
was a delay when streaming those logs using `container logs -f`. The
logs from that delay period were lost.

This change forces the container log file to update state after a
container restart which fixes the delays to the container log file. And
the` container logs -f` stream resets its position in the file on a
container restart as well.

---------

Co-authored-by: Arnav Reddy <areddy23@apple.com>
2025-06-06 11:27:34 -07:00
J Logan 94e06e28a0 Refine user documentation. (#24)
- Extract README sections into BUILDING and CONTRIBUTING documents. This
should work better than sections in README as it keeps the README short,
and the BUILDING and CONTRIBUTING files will stand out in the file list.
- Merged localdev document into BUILDING.
- Fixed broken links.
- Changed DNS setup so later DNS-dependent steps should work.
- Added h1 and link to SECURITY document.
2025-06-05 18:50:40 -07:00
Aditya Ramani 007f9a41f7 Update kernel install UX (#22)
This change updates the UX when we install required dependencies at
first launch


### Fresh install - respond `y` to prompt
```
➜ bin/container system start
Verifying apiserver is running...
Installing base container filesystem...
No default kernel configured.
Install the recommended default kernel from [https://github.com/kata-containers/kata-containers/releases/download/3.17.0/kata-static-3.17.0-arm64.tar.xz]? [Y/n]: y
Installing kernel...
```


### Fresh install - respond `n` to prompt and then run the provided
command
```
➜ bin/container system start
Verifying apiserver is running...
Installing base container filesystem...
No default kernel configured.
Install the recommended default kernel from [https://github.com/kata-containers/kata-containers/releases/download/3.17.0/kata-static-3.17.0-arm64.tar.xz]? [Y/n]: n
Please use the `container system kernel set --recommended` command to configure the default kernel

➜ bin/container system kernel set --recommended
Installing the recommended kernel from https://github.com/kata-containers/kata-containers/releases/download/3.17.0/kata-static-3.17.0-arm64.tar.xz...
```


### Fresh install - respond `n` to prompt and then run a container
```
➜ bin/container system start
Verifying apiserver is running...
Installing base container filesystem...
No default kernel configured.
Install the recommended default kernel from [https://github.com/kata-containers/kata-containers/releases/download/3.17.0/kata-static-3.17.0-arm64.tar.xz]? [Y/n]: n
Please use the `container system kernel set --recommended` command to configure the default kernel

➜ bin/container run alpine uname
Error: notFound: "Default kernel not configured for architecture arm64. Please use the `container system kernel set` command to configure it
```

---------

Signed-off-by: Aditya Ramani <a_ramani@apple.com>
2025-06-05 18:09:36 -07:00
Paris 0a71d8e95e Update README.md (#20)
added link to main guide and cleaned up local copy reference
2025-06-05 15:53:54 -07:00
Joseph Heck f17c2f216c README updates (#17)
- break up readme into separate files
- rework hedaings on Code of Conduct
- Add a CONTRIBUTORS.txt
2025-06-05 15:53:50 -07:00
Dmitry Kovba 27df947172 Clear a line with spaces to prevent a race between stderr and stdout (#18)
This PR resolves a race with `\u{001B}[2K`, but not with `\r`, which
will be addressed in a separate PR by moving progress updates to
`stdout`. Please test it in a small window in your terminal application
on the `users/a_ramani/install-ux` branch using commands:
```
bin/container system stop
make cleancontent
bin/container system start
```
You should see the prompt:
> Install the recommended default kernel from
[https://github.com/kata-containers/kata-containers/releases/download/3.17.0/kata-static-3.17.0-arm64.tar.xz]?
[Y/n]:
2025-06-05 15:53:45 -07:00
Aditya Ramani e5aceaaff1 Cleanup output from --version (#16)
The output now looks like the following

#### When build against a tagged HEAD in `RELEASE` mode
```
container --version
container CLI version 0.0.2 (build: release, commit: ed4a4cb)
```
2025-06-05 15:53:40 -07:00
Kathryn Baldauf 7e0567cece Fix typo in release branch name (#14)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2025-06-05 15:53:35 -07:00
Kathryn Baldauf 7ce2585531 Add token to allow deploying github pages (#13)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2025-06-05 15:53:24 -07:00
J Logan fdb57ca60e Fix typo in default subnet setting. (#12) 2025-06-05 15:53:19 -07:00
Kathryn Baldauf ec4185fcc7 Publish docs github action (#9)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2025-06-05 15:53:13 -07:00
Aditya Ramani 0846bb6640 Create RequestScheme type to handle registry interactions (#6)
Its a bit weird to have to pass `--http` when pulling / pushing images
if we are trying to do so from a local registry

This PR adds a `RequestScheme` enum type which tries to detect if the
connection to the registry should be over http or https. This auto
detection is the default behavior and can be overridden by passing the
`--scheme http/https` flag to the `run` ,`pull`, `push` `login` and
`registry default` command

The auto detection works by looking at the hostname / IP. HTTP is used
in the following cases
 - If the hostname starts with `localhost` or  is `127.x.x.x`
 - if the host looks like an IP from the private address space
 - If the host ends with the current default dns domain name

Also in this PR:
- Removing some used CLI flag groups and TODOs
- Better error messages when registry credentials are not found for a
host

Signed-off-by: Aditya Ramani <a_ramani@apple.com>
2025-06-05 15:53:01 -07:00
Dmitry Kovba 52bc5998d2 Ignore API docs that are for local preview only (#10)
The added lines mirror the ones in containerization.
2025-06-05 15:52:46 -07:00
Dmitry Kovba 70deb1ba1e Update swift-docc-plugin to fix a non-sendable warning (#8)
This PR resolves warnings:
```
…/.build/checkouts/swift-docc-plugin/Plugins/Swift-DocC Preview/Symbolic Links/SwiftDocCPluginUtilities/BuildGraph/DocumentationBuildGraph.swift:106:17: warning: capture of non-sendable type 'Target.Type' in an isolated closure
104 |             // Copy the closure and the target into a block operation object
105 |             let new = BlockOperation { [work, task] in
106 |                 work(task)
    |                 `- warning: capture of non-sendable type 'Target.Type' in an isolated closure
107 |             }
108 |             operationsByID[task.id] = new

…/.build/checkouts/swift-docc-plugin/Plugins/Swift-DocC Preview/Symbolic Links/SwiftDocCPluginUtilities/BuildGraph/DocumentationBuildGraph.swift:105:41: warning: capture of non-sendable type 'Target.Type' in an isolated closure
103 |             }
104 |             // Copy the closure and the target into a block operation object
105 |             let new = BlockOperation { [work, task] in
    |                                         `- warning: capture of non-sendable type 'Target.Type' in an isolated closure
106 |                 work(task)
107 |             }
```
2025-06-05 15:52:42 -07:00
Aditya Ramani 8a6a593eee Selectively uncompress kernel binary from archive (#7) 2025-06-05 15:52:39 -07:00
Aditya Ramani f12593c3c2 Register existing runtime plugin launch units on boot (#5) 2025-06-05 15:52:35 -07:00
J Logan d9e7b71cb3 Addresses remaining TODO items in user documentation. (#4)
* Addresses remaining TODO items in user documentation.

* Add functional model diagram.
2025-06-05 15:52:31 -07:00
Kathryn Baldauf 3a6d7ae676 Cherry pick additional changes (#3)
* Format the codebase (#50)

Signed-off-by: Aditya Ramani <a_ramani@apple.com>

* Update packages before going public (#48)

---------

Signed-off-by: Aditya Ramani <a_ramani@apple.com>
Co-authored-by: Aditya Ramani <a_ramani@apple.com>
Co-authored-by: dkovba <dkovba@apple.com>
2025-06-05 15:52:26 -07:00
Kathryn Baldauf c0fccc0ef6 Update broken test (#2)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2025-06-05 15:52:20 -07:00
Kathryn Baldauf 31a0cb2f4e Update alpine images used (#1)
Signed-off-by: Kathryn Baldauf <k_baldauf@apple.com>
2025-06-05 15:52:13 -07:00
Kathryn Baldauf 8e9670c8f8 Initial commit
Co-authored-by: Aditya Ramani <a_ramani@apple.com>
Co-authored-by: Agam Dua <agam_dua@apple.com>
Co-authored-by: Danny Canter <danny_canter@apple.com>
Co-authored-by: Dmitry Kovba <dkovba@apple.com>
Co-authored-by: Eric Ernst <eric_ernst@apple.com>
Co-authored-by: Evan Hazlett <ehazlett@apple.com>
Co-authored-by: Gilbert Song <gilbertsong@apple.com>
Co-authored-by: Hugh Bussell <hbussell@apple.com>
Co-authored-by: John Logan <john_logan@apple.com>
Co-authored-by: Kathryn Baldauf <k_baldauf@apple.com>
Co-authored-by: Madhu Venugopal <mvenugopal@apple.com>
Co-authored-by: Michael Crosby <michael_crosby@apple.com>
Co-authored-by: Sidhartha Mani <sidhartha_mani@apple.com>
Co-authored-by: Tanweer Noor <tnoor@apple.com>
Co-authored-by: Ximena Perez Diaz <xperez528@gmail.com>
Co-authored-by: Yibo Zhuang <yzhuang@apple.com>
2025-06-05 15:51:55 -07:00