Commit Graph

95 Commits

Author SHA1 Message Date
(null)
cc10ca249e fix osstring serialize/deserialize bugs 2023-09-07 04:35:46 -04:00
(null)
f830ac9bfe cargo fmt fixes 2023-09-06 02:40:11 -04:00
(null)
c87093593f check evidence during mount 2023-09-06 02:38:55 -04:00
(null)
f42318575e refactor cli arg parsing logic 2023-09-05 17:41:59 -04:00
(null)
b40562d28e add jailed dataset support 2023-09-05 08:06:58 -04:00
(null)
4955b8a821 refactor address allocation 2023-09-03 21:57:22 -04:00
(null)
c8b4d27ebd add volume support 2023-09-02 01:44:59 -04:00
(null)
ba7b8dd0da guard against name with . in jail name, make image reference serialize to string 2023-07-31 02:44:08 -04:00
(null)
957b0a54ee add some DTrace USDT probes 2023-07-31 02:07:35 -04:00
(null)
e2290d9016 fixed some race such that the client can attach on time 2023-07-30 18:12:29 -04:00
(null)
87612d8ec2 Run supervisor loop in child process; allow setting user/group on exec
- Executables are now able to run as non-root user by name or uid/gid
- Refactored the supervisor loop to make it run in child process, still
    keeping parent side of the run loop to poll in updates and eventually,
    event streams.
- The ultimate plan is to allow the supervisor loop "detach" from the main
    process, and allow a replacement process to adopt the loop. Such that
    the daemon can be restart/update without bringing all the running containers
    with it.
2023-07-30 02:31:44 -04:00
(null)
2f5e3dc64f Merge branch 'main' into uname 2023-07-28 20:21:17 -04:00
(null)
812f450ce4 refactor configuration format, now accepts yaml; network inventory goes to its own file 2023-07-27 23:24:16 -04:00
(null)
4b779520c3 fix clippy bits 2023-07-27 02:09:04 -04:00
(null)
9c0cd35bf9 mark 2023-07-26 23:24:33 -04:00
(null)
596c79a38a mark 2023-07-26 23:23:59 -04:00
(null)
bc1d9029b4 Add AppliedInstantiateRequest to add a effectless pre-instantiate check
Previously the checks and global resource allocation all happen in one place, this commit
move out the checks that does not require resource allocation. This allows us to warn the
user ahead of time about potentially risky container creation without restore allocated
resources.
2023-07-26 20:31:24 -04:00
(null)
d2778e416d Add devfs rule parser 2023-07-26 20:30:04 -04:00
(null)
280c0d261d allow setting a default value for environment variable in spec 2023-07-26 02:21:53 -04:00
(null)
81ff56435a zfs import bug fix 2023-07-26 01:21:10 -04:00
(null)
c7c5498d49 various image push bug fixes 2023-07-26 01:10:17 -04:00
(null)
cb376b93fd fixed a jail image convertion bug, and docker, I hate you to allow empty string as working dir 2023-07-26 00:48:01 -04:00
(null)
b60c9eea7d Refactor image store to become hostname aware and digest tag aware
The old image store does not account for hostname and does not keep track
of manifests that belongs to a repo but without a tag. This is essential
as otherwise we cannot reliably implement hostname <+> name based ACL to
the images
2023-07-25 23:56:42 -04:00
(null)
f88876298c Initial work to make image format compatible with OCI spec do other container runtime can consume 2023-07-25 22:14:52 -04:00
(null)
be93b1a59b add option to force override devfs ruleset generation 2023-07-25 20:54:51 -04:00
(null)
715a387da2 Update clap to v4; allow nullfs to mount on file; image patch/import command refactor
This commit contains a few changes:
- Updated clap to version 4, which introduced quite a bit of changes
- Since we are refactoring the CLI interface, take the chance to also make
    importing and patching images easier
- Turns out we support nullfs mount files now, remove the checks to ensure
    both the source and mountpoint to be directory with checking if they
    are the same file, and only directory or file
2023-07-25 20:12:30 -04:00
(null)
8af00ae1b8 hardening control stream 2023-07-24 20:34:33 -04:00
(null)
eddc906268 Try mounting before upload to oci registry
- add a column in sqlite to store the origin of each fs layer
- on push layer, we try mount the layer from the other repo with the same name as the origin of the layer
2023-07-24 20:14:14 -04:00
(null)
ca4d77ecd2 fix purge 2023-07-24 02:09:54 -04:00
(null)
5d4e949e76 Allow configure log directory 2023-07-23 23:10:11 -04:00
Yan Ka, Chiu
794e094934 refactor lifecycle logics 2023-07-21 23:40:00 -04:00
Yan Ka, Chiu
72d21ea33d refactor 2023-07-21 21:41:25 -04:00
Yan Ka, Chiu
0d9bf93a10 refactor some container lifecycle logic 2023-07-20 13:44:41 -04:00
Yan Ka, Chiu
0bab596dc0 layer_manager is not in the tree yet 2023-07-19 03:36:17 -04:00
Yan Ka, Chiu
74beaed67a add the concept of 'netgroup', containers inside a netgroup cause the generation of /etc/hosts which contains all the hosts in all the groups the container belongs to 2023-07-18 14:29:58 -04:00
Yan Ka, Chiu
b8c7dea630 allow setting up os version strings 2023-07-18 06:59:44 -04:00
Yan Ka, Chiu
1fe329ab68 allow exec to run process that requires tty 2023-07-18 04:59:22 -04:00
Yan Ka, Chiu
5472681b1a use shell (sh -c) directly for RUN commands 2023-07-15 17:31:50 -04:00
Yan Ka, Chiu
9dd93fadc4 allow to run ad-hoc command as entry point 2023-07-15 17:20:36 -04:00
Yan Ka, Chiu
49a0658dd0 add a empty predefined image for easy testing and building 2023-07-15 17:19:07 -04:00
Yan Ka, Chiu
1f02f47127 add option to not touch any resolv.conf 2023-07-15 17:18:23 -04:00
Yan Ka, Chiu
d5555d2ee5 This commit contains multiple pretty big changes:
- Adjust how ZFS image datasets created
- Preliminary support for build layers caching by creating cache directory that
  preserves the state of the files that may change generated layers
- Implement remove image and purge ipc calls
2023-07-15 14:33:58 -04:00
Yan Ka, Chiu
ebbf75d1ab add missed file 2023-07-14 14:52:22 -04:00
Yan Ka, Chiu
e1124b0ec9 bug fixes 2023-07-14 14:41:56 -04:00
Yan Ka, Chiu
44024994a0 Add support routines to create image manifest list for multi-arch images 2023-07-14 06:36:30 -04:00
Yan Ka, Chiu
0eb1fa127b stop being nice to ZFS datasets 2023-07-14 02:12:13 -04:00
Yan Ka, Chiu
2fb0b5e23d clippy fixes 2023-07-14 02:07:31 -04:00
Yan Ka, Chiu
ba9f7aa5be Allow setting environment variables for entry point in Jailfile 2023-07-14 02:07:18 -04:00
Yan Ka, Chiu
8c8a476e3b Improve Jailfile parsing logic 2023-07-14 02:06:39 -04:00
Yan Ka, Chiu
975d077cd1 Make destination of a mount be referenced by the name of the mount, check if all required volumes are mounted before instantiation 2023-07-14 02:03:42 -04:00