alex
023063327f
fix(build): use host resolv.conf in os build chroot ( #153 )
...
The resolv.conf that the stage1 os script generates is fine for actual use,
but our GitHub workflows now uses the Step Security hardened runner action.
This action replaces the nameserver so that all lookups go through that,
but because the chroot calls apk add, it needs to contact the internet.
On the GitHub workflows, the OS build currently fails since the hardened
runner cannot access other nameservers.
2024-05-16 08:41:42 +00:00
alex
d46aa878af
feat(build): fetch kernels from image registry instead of building the kernel ( #156 )
...
Now that we have the kernel build infrastructure at https://github.com/edera-dev/kernels
it makes sense to drop building the kernel and download the kernel images directly.
This change introduces a ./hack/kernel/fetch.sh script which is backed by crates/build
We utilize the OCI infrastructure itself to download the kernel image. The DEV guide
has been updated to include calling the fetch script, and the OS builder now uses this
method instead. Due to the lack of need for the kernel build infra to exist here now,
it has also been removed. This should significantly speed up full builds.
This change will also enable us to turn on os build workflows for all PRs. We should
likely make the OS status checks required once this is merged.
2024-05-16 08:40:58 +00:00
alex
2462a99fdc
chore(dependabot): group some dependency updates ( #157 )
...
We have a need to ensure great security while also ensuring that dependabot
does not constantly provide multiple PRs. After all, when something becomes
too time consuming it risks not being handled with care. With grouped updates,
version bumps will get grouped together, but security updates will still be
indvidualized. This makes it safer for us to enable grouped dependency updates.
2024-05-16 08:39:50 +00:00
alex
fc18bc6a18
feat(runtime): concurrent ip allocation ( #151 )
...
Previously, krata runtime allowed a single permit when performing operations.
This was necessary because the only IP allocation storage was xenstore, and
the commit of xenstore data happens after allocation. This commit introduces
IpVendor, a service which vends IPv4 and IPv6 addresses to guests using a
linear address strategy within an IP network space. The IpVendor table is
initialized from xenstore, and from there on out, the in-memory table
is the source of truth. This implementation is not perfect, but it will allow
us to lift the single permit limit, allowing guests to start concurrently.
2024-05-14 18:29:12 +00:00
alex
485f6e8319
chore(kernel): upgrade to kernel 6.8.9 ( #143 )
2024-05-10 17:30:06 +00:00
alex
75011ef8cb
fix(oci): use mirror.gcr.io as a mirror to docker hub ( #141 )
2024-05-09 17:30:27 +00:00
alex
b4f26787d4
fix(oci): remove file size limit ( #142 )
...
the addons.squashfs file often is fairly large due to the GPU modules containing a lot of code
2024-05-08 19:09:33 +00:00
alex
51dff0361d
fix(xenclient): use a single transaction for device setup ( #130 )
2024-05-05 20:39:53 +00:00
alex
511f83bfd9
fix: dev guide should mention copying kernel addons ( fixes #125 ) ( #126 )
2024-04-30 21:46:45 +00:00
alex
84920a88ab
feat: pci passthrough ( #114 )
...
* feat: pci passthrough
* feat: guest device management
* feat: addons mounting and kernel modules support
* feat: more pci work
* fix: kernel build squashfs fixes
* fix: e820entry should be available on all platforms
2024-04-29 17:02:20 +00:00
alex
284ed8f17b
feat: implement guest exec ( #107 )
2024-04-22 20:13:43 +00:00
alex
82576df7b7
feat: implement kernel / initrd oci image support ( #103 )
...
* feat: implement kernel / initrd oci image support
* fix: implement image urls more faithfully
2024-04-22 19:48:45 +00:00
alex
38e892e249
feat: idm v2 ( #102 )
...
* feat: rebuild idm to separate transport from content
* feat: fast guest lookup table and host identification
2024-04-22 04:00:32 +00:00
alex
4e9738b959
fix: oci cache store should fallback to copy when rename won't work ( #96 )
2024-04-16 17:05:24 +00:00
alex
8135307283
feat: oci concurrency improvements ( #95 )
...
* feat: implement improved and detailed oci progress indication
* feat: implement on-disk indexes of images
* oci: utilize rw-lock for increased cache performance
2024-04-16 16:29:54 +00:00
alex
e450ebd2a2
feat: oci tar format, bit-perfect disk storage for config and manifest, concurrent image pulls ( #88 )
...
* oci: retain bit-perfect copies of manifest and config on disk
* feat: oci tar format support
* feat: concurrent image pulls
2024-04-16 08:53:44 +00:00
alex
89055ef77c
feat: oci compliance work ( #85 )
...
* chore: rework oci crate to be more composable
* feat: image pull is now internally explicit
* feat: utilize vfs for assembling oci images
* feat: rework oci to preserve permissions via a vfs
2024-04-15 17:24:14 +00:00
alex
24c71e9725
feat: oci packer can now use mksquashfs if available ( #70 )
...
* feat: oci packer can now use mksquashfs if available
* fix: use nproc in kernel build script for default jobs, and fix DEV.md guide
* feat: working erofs backend
2024-04-15 00:19:38 +00:00
alex
0a6a112133
feat: basic kratactl top command ( #72 )
...
* feat: basic kratactl top command
* fix: use magic bytes 0xff 0xff in idm to improve reliability
2024-04-14 22:32:34 +00:00
alex
1627cbcdd7
feat: idm snooping ( #71 )
...
Implement IDM snooping, a new feature that lets you snoop on messages between guests and the host. The feature exposes the IDM packets send and receives
to the API, allowing kratactl to now listen for messages and feed them to a user for debugging purposes.
2024-04-14 11:54:21 +00:00
alex
6d07112e3d
feat: implement oci image progress ( #64 )
...
* feat: oci progress events
* feat: oci progress bars on launch
2024-04-12 18:09:26 +00:00
alex
5e16f3149f
feat: guest metrics support ( #46 )
...
* feat: initial support for idm send in daemon
* feat: implement IdmClient backend support
* feat: daemon idm now uses IdmClient
* fix: implement channel destruction propagation
* feat: implement request response idm system
* feat: implement metrics support
* proto: move metrics into GuestMetrics for reusability
* fix: log level of guest agent was trace
* feat: metrics tree with process information
2024-04-12 07:34:46 +00:00
alex
7cfdb27d23
chore(workflows): fix release asset assembly for alpine/debian packages ( #40 )
2024-04-09 04:45:36 -07:00
alex
4f84dfa3c7
chore(workflows): fix release binary upload ( #38 )
2024-04-09 04:02:07 -07:00
alex
9c0597157b
fix: increase channel acquisition timeout to support lower performance hosts ( #36 )
2024-04-09 02:36:22 -07:00
alex
3f8c9e7a7c
chore(workflows): prefix all jobs with workflow name to help distinguish ( #35 )
2024-04-09 00:05:06 -07:00
alex
f2ab03711e
feat(ctl): add help and about to commands and arguments ( #25 )
2024-04-06 00:00:02 +00:00
alex
8f7e47a218
chore: release workflow fixes to improve utilization and fix checks ( #23 )
...
* chore: use edera-cultivation bot to push release changes
* chore: workflows now largely only run on pull requests or merge queues
2024-04-04 23:05:59 -07:00
alex
19683b80c1
fix: service files should have kratanet depend on kratad ( #18 )
2024-04-04 23:44:57 +00:00
alex
ae486e347f
fix: release pr trigger problem ( #21 )
2024-04-03 23:59:07 -07:00
alex
d674a69c17
ci: fix tag names and disable semver checks for low-level crates ( #17 )
2024-04-03 17:16:30 +00:00
alex
3641bc55f4
workflows: publish on release
2024-04-03 00:08:28 +00:00
alex
4b6272f49d
chore: release-plz on main branch
2024-04-02 23:52:26 +00:00
alex
7c55e63f24
chore: implement automatic releases
2024-04-02 23:50:45 +00:00
alex
2083ec0604
docs: update README
2024-04-02 20:17:34 +00:00
alex
5ad2e40a7b
krata: reimplement console to utilize channels, and provide logs support
2024-04-02 08:57:34 +00:00
alex
0fd6318c5f
xenstore: use read thread to avoid need for non-blocking I/O
2024-04-02 03:02:00 +00:00
alex
8dd3cc7692
krata: work on parallel reconciliation
2024-04-02 00:56:18 +00:00
alex
6a2f1e6517
dependabot: fix config file
2024-04-01 15:46:39 -07:00
alex
d433cd49e2
krata: unvendor dependencies
2024-04-01 15:45:43 -07:00
alex
0fd32e84cd
workflows: fix client workflow spec
2024-03-31 16:30:22 -07:00
alex
ab8941326a
workflows: client build on windows should use lf checkout
2024-03-31 16:29:00 -07:00
alex
8be75a722e
workflows: use submodules checkout everywhere
2024-03-31 16:21:25 -07:00
alex
e6f35eb3d0
cargo: fix vendor path
2024-03-31 16:09:32 -07:00
alex
58c6413ca2
workflows: checkout submodules
2024-03-31 16:07:57 -07:00
alex
e1f1f8579c
vendor dependencies using krata-vendor repository
2024-03-31 15:53:10 -07:00
alex
6bf1d3f88c
krata: implement parallel guest reconciliation
2024-03-31 10:10:06 +00:00
alex
377b837db9
guest: set hostname from launch config
2024-03-31 03:18:56 +00:00
alex
6cd8cc12db
guest: remove device restriction
2024-03-31 02:33:58 +00:00
alex
c68f367e4a
krata: log when a guest start failures occurs
2024-03-31 01:44:28 +00:00
alex
15d5ed5a45
krata: implement event stream retries
2024-03-31 01:11:50 +00:00
alex
6d6bdade87
kernel: update to 6.8.2
2024-03-31 00:28:21 +00:00
alex
693d62a41a
guest: setup loopback interface
2024-03-30 23:46:01 +00:00
alex
8ec7042ea4
guest: place running tasks in cgroup
2024-03-30 23:25:00 +00:00
alex
7e9bc4b910
krata: release v0.0.3
2024-03-30 09:37:54 +00:00
alex
71dcaa7b77
daemon: rework to not use protobuf inside the crate
2024-03-30 09:29:03 +00:00
alex
660b555be7
krata: bump to v0.0.2
2024-03-30 08:42:48 +00:00
alex
03294f2ecd
Revert "Release krata v0.0.1, krata-oci v0.0.1, krata-xenstore v0.0.1, krata-guest v0.0.1, krata-xencall v0.0.1, krata-xenclient v0.0.1, krata-xenevtchn v0.0.1, krata-xengnt v0.0.1, krata-runtime v0.0.1, krata-daemon v0.0.1, krata-network v0.0.1, krata-ctl v0.0.1"
...
This reverts commit efba8b1316 .
2024-03-30 08:32:35 +00:00
alex
efba8b1316
Release krata v0.0.1, krata-oci v0.0.1, krata-xenstore v0.0.1, krata-guest v0.0.1, krata-xencall v0.0.1, krata-xenclient v0.0.1, krata-xenevtchn v0.0.1, krata-xengnt v0.0.1, krata-runtime v0.0.1, krata-daemon v0.0.1, krata-network v0.0.1, krata-ctl v0.0.1
2024-03-30 08:27:20 +00:00
alex
ee639af2ed
krata: fix workspace version references and feature discrepancies
2024-03-30 07:56:22 +00:00
alex
b65bbff165
krata: update README.md
2024-03-30 07:41:59 +00:00
alex
2d5d819290
daemon: fix build
2024-03-30 07:33:47 +00:00
alex
6ff5a1e62f
krata: move protos back into crate directory
2024-03-30 07:20:43 +00:00
alex
b9d2dc54ea
krata: specify descriptions, licenses, repository, and homepage for crates
2024-03-30 07:11:14 +00:00
alex
eb20a4c60c
krata: use krata-advmac fork
2024-03-30 06:51:16 +00:00
alex
a9c6fa2c6a
oci: switch to krata-tokio-tar
2024-03-30 06:31:22 +00:00
alex
bdb91a6cb3
krata: restructure packages for cleanliness
2024-03-30 06:21:34 +00:00
alex
da9e6cac14
krata: fix guest destruction
2024-03-30 03:49:13 +00:00
alex
d659b3aa55
network: performance tuning using tear off buffers
2024-03-29 03:09:41 +00:00
alex
7d7da1f9ee
krata: implement idm support for guest <-> host messages
2024-03-28 22:38:21 +00:00
alex
567fcc296e
kratart: fix channels after u32::MAX worth of data
2024-03-28 08:55:59 +00:00
alex
f7267e4f5d
krata: begin work on idm channel
2024-03-28 07:36:48 +00:00
alex
63f7db6cf4
kratart: support for krata channels for two-way byte communication
2024-03-28 05:31:57 +00:00
alex
d4f1ee5521
krata: begin work on guest message channel
2024-03-27 06:28:47 +00:00
alex
66465793cd
krata: event-based network backend startup and api enhancements
2024-03-27 02:54:39 +00:00
alex
63c0feb053
krataoci: improve performance of squashify
2024-03-25 09:39:06 +00:00
alex
162579f100
xengnt: implement memory mapping support
2024-03-25 07:24:25 +00:00
alex
0a5948aa50
xen: begin work on xen grant mappings
2024-03-25 04:49:57 +00:00
alex
001409378e
chore: move kratart::image to krataoci and cleanup dependencies
2024-03-25 02:37:02 +00:00
alex
655b8029cb
krata: move api proto to /proto and version api
2024-03-24 05:52:25 +00:00
alex
cb6839b0f6
krata: api cleanup and improvements
2024-03-24 05:25:48 +00:00
alex
7543fccfaf
kratactl: make things nicer to use from a scripting standpoint
2024-03-23 10:09:00 +00:00
alex
e25cbf087d
kratactl: implement guest resolution and rename console to attach
2024-03-23 09:48:53 +00:00
alex
7b2de22320
krata: rework xenstore watch for reliability
2024-03-23 08:46:20 +00:00
alex
3d5095c78b
krata: reconcile improvements and better kratactl error experience
2024-03-23 07:00:12 +00:00
alex
df90a4d03f
kratad: filter out backhand info logging
2024-03-23 04:36:21 +00:00
alex
f679781545
krata: default log level is now info
2024-03-23 04:31:35 +00:00
alex
6c0e14da6a
kratactl: implement output formats
2024-03-23 04:07:48 +00:00
alex
3b5e3a077a
krata: improve guest reconciliation
2024-03-23 02:10:30 +00:00
alex
8b57c16f0a
krata: fix conformance to container startup
2024-03-22 23:59:02 +00:00
alex
6d6610ca2f
krata: fix support for registries with anonymous authentication
2024-03-22 19:57:56 +00:00
alex
1a6287893e
kratart: fix multiple oci layer compiler issues
2024-03-22 19:14:27 +00:00
alex
f29d7d61e1
nightly: fix build
2024-03-22 10:25:48 -07:00
alex
79ceb4851b
krata: fix console restoration
2024-03-21 22:49:37 -07:00
alex
79942fdc4d
dependabot: check daily for dependencies and update github actions
2024-03-22 05:04:24 +00:00
alex
f854dfe77a
kratactl: freebsd build
2024-03-22 04:41:38 +00:00
alex
aaf8e50c0e
workflows: rework names and split checks
2024-03-21 20:21:42 -07:00
alex
88f6edb608
nightly: fix job names
2024-03-21 20:15:09 -07:00
alex
b67b1d8340
nightly: build kratactl for all supported platforms
2024-03-21 20:12:03 -07:00
alex
901ec3b6e5
kratactl: fix windows build
2024-03-21 20:04:10 -07:00