* Add pagination support for listing VM events Introduced a paginated event listing API, added support for pagination parameters in the request, and included cursor-based navigation using headers. Relevant tests and Badger store implementations were updated to support the new logic. * Remove support for ordering VM events Dropped `ListOrder` type, `order` query parameter, and related logic for ordering VM events. Updated tests, API schema, and Badger store to reflect the removal. * Remove invalid VM events ordering test Deleted a test case for invalid VM events ordering since the `order` query parameter and related functionality have been removed. * Add support for ordering VM events Implemented `order` query parameter for specifying sort order (ascending/descending) of VM events. Updated API schema, Badger store, and added related tests. * Add support for limiting and ordering VM logs Introduced `--limit` and `--order` flags for controlling the number of log lines and their sort order (ascending/descending). Updated API client to handle new options. * Update internal/controller/store/badger/badger_events.go Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com> * fix: address PR review feedback - switch logs CLI to --tail with desc ordering - reuse ParseLogsOrder in controller with helpful errors - always use ListEventsPage and scope event cursors - move events pagination coverage to integration test 🤖 Generated with [Codex](https://chatgpt.com/codex) Co-Authored-By: Codex <codex@openai.com> * refactor: simplify prefix trimming and improve error formatting - Replaced manual prefix check with `bytes.TrimPrefix` in Badger store. - Enhanced error message formatting in VM logs controller. * fix: address PR review feedback - use suggested reverse seek in badger events pagination - add events pagination client helper and use it in integration test 🤖 Generated with [Codex](https://chatgpt.com/codex) Co-Authored-By: Codex <codex@openai.com> --------- Co-authored-by: Nikolay Edigaryev <edigaryev@gmail.com> Co-authored-by: Codex <codex@openai.com> |
||
|---|---|---|
| .github | ||
| api | ||
| cmd/orchard | ||
| docs | ||
| internal | ||
| packaging | ||
| pkg | ||
| rpc | ||
| .cirrus.star | ||
| .cirrus.yml | ||
| .gitignore | ||
| .golangci.yml | ||
| .goreleaser.yml | ||
| DEVELOPMENT.md | ||
| Dockerfile | ||
| LICENSE | ||
| README.md | ||
| buf.gen.yaml | ||
| buf.work.yaml | ||
| go.mod | ||
| go.sum | ||
README.md
Orchard
[!IMPORTANT]
macOS 15 (Sequoia)
The newly introduced "Local Network" permission in macOS Sequoia requires accepting a GUI pop-up on each host machine that runs the Orchard Worker.
To work around this, upgrade your workers to Orchard 0.32.0 or newer and invoke the
orchard worker runasrootwith an additional--usercommand-line argument, which takes a name of your regular, non-privileged user on the host machine.This will cause the Orchard Worker to start a small
orchard localnetworkhelperprocess in the background and then drop the privileges to the specified user.The helper process is privileged and needed to establish network connections on behalf of the Orchard Worker without triggering a GUI pop-up.
This approach is more secure than simply running
orchard worker runasroot, because only a small part of Orchard Worker runs privileged and the only functionality that this part has is establishing new connections.
Orchard is an orchestration system for Tart. Create a cluster of bare-metal Apple Silicon machines and manage dozens of VMs with ease!
Usage
The fastest way to get started with Orchard is to use a local development mode:
brew install cirruslabs/cli/orchard
orchard dev
This will start Orchard Controller and a single Orchard Worker on your local machine.
You can interact with the newly created cluster using the orchard CLI or programmatically, through the built-in REST API server.
Please check out the official documentation for more information and/or feel free to use issues for the remaining questions.