Hannes Mehnert
65693ea188
revise the "--net=yyy" argument to (optionally) contain a service:bridge
...
it used to only contain service, and used the same string for the bridge. This
is not flexible enough to run off-the-shelf unikernels (configured for bridge
"service" and "management" on multi-homed servers). The old behaviour is the
new default (i.e. "--net=service" creates and attaches a tap device to bridge
"service", and passes "--net:service=tapYY" to the solo5 tender). But it is more
flexible now: "--net=service:other-bridge" will create a tap device attached to
"other-bridge" and pass "--net:service=tapYY" to the tender. This way, there's
no need to match bridge names on the actual server with network device names of
the unikernels.
NB: this is (mostly) backwards-compatible: the on-disk data structures are
versioned (and the version is bumped with this PR), an old albatross client can
send "create" commands to a new server. But a new client will get a parse error
from an old server - which is fine taking into consideration the deployment
base.
2020-03-25 16:09:23 +01:00
Hannes Mehnert
784429744c
versioning: revise it all, use a 'current' in Vmm_commands, all daemons reply with the received version on that particular stream
2019-11-11 23:20:03 +01:00
Hannes Mehnert
520eab879e
minor api cleanup
2019-10-12 02:06:45 +02:00
Hannes Mehnert
58c3490782
restart on failure
2019-10-12 02:06:45 +02:00
Hannes Mehnert
f81a12bc4d
initial metrics
2019-10-12 02:06:38 +02:00
Hannes Mehnert
94912c21e4
changes for solo5 0.6
...
-- this is a breaking change in the wire protocol
2019-10-12 02:06:27 +02:00
Hannes Mehnert
4787b0cf1f
remove unnecessary freebsd-specific teardown code (bhyvectl --destroy), since 0.6 reverted privdrop
2019-10-12 02:04:44 +02:00
Hannes Mehnert
a9c32d7801
vmmd: actually, first check resources, then exec VM, then insert VM
...
in case the insertion fails, raise Invalid_argument
this leads to more sane failure behaviour, and also cleans up resources in case
vmm_resources.insert_vm fails (or cpuset/open of the fifo, create_process)
2019-01-27 17:20:24 +01:00
Hannes Mehnert
16f06216ba
vmmd: fine grained output handling, gracefully handle Failure from console
2019-01-27 16:07:53 +01:00
Hannes Mehnert
943ea45e25
vmm_vmmd, vmm_unix: compute device name (/dev/vmm/solo5-PID) in vmm_unix (depending on host OS); also destroy this device on shutdown (used to be done by solo5-hvt, but that now drops privileges and is no longer able to do this)
2019-01-20 23:02:01 +01:00
Hannes Mehnert
c372c8405e
vmmd: dump state (unikernel configurations) on create+destroy, restore from state on startup
2019-01-20 22:17:59 +01:00
Hannes Mehnert
1a288d2937
vmm_vmmd: pass success reply to handle_create fully applied
2019-01-20 22:09:33 +01:00
Hannes Mehnert
4d3bb777e1
vmm_vmmd: introduce and use type 'a create
2019-01-20 22:09:33 +01:00
Hannes Mehnert
e58ab236b7
vmmd: lock self_destruct with a mutex, respect result of killall (nothing killed, nothing to do)
2019-01-20 22:09:33 +01:00
Hannes Mehnert
d4e31da27f
vmmd: setup and teardown stat by create continuation, and vmm_vmmd.handle_shutdown
2019-01-20 22:09:33 +01:00
Hannes Mehnert
fdcea94a0b
vmmd: store waiter, not tasks in Vmm_vmmd.t -- create task and waiter on demand (destroy / create --force), instead of at each unikernel creation
2019-01-20 22:09:33 +01:00
Hannes Mehnert
094922f6b0
vmmd: teardown gracefully (kill all vms), install SIGTERM handler to teardown
2019-01-18 01:14:11 +01:00
Hannes Mehnert
58bd77bc5f
stats: pass bridge device through, vmm device name as well to allow arbitrary bhyve statistics, vmmc_local: add stats_add and stats_remove subcommands
2019-01-15 00:25:59 +01:00
Hannes Mehnert
c8f1030403
rename Vm to Unikernel
2018-11-13 01:02:05 +01:00
Hannes Mehnert
85372b0c7e
rework resources: now block, vms, and policies are in separate tries
2018-11-13 00:06:43 +01:00
Hannes Mehnert
2e7f2730a2
move Vm to submodule
2018-11-11 03:24:50 +01:00
Hannes Mehnert
561ba5c5df
put Policy in a submodule
2018-11-11 03:09:37 +01:00
Hannes Mehnert
43379d6d9d
rename Vmm_core.id to Vmm_core.Name.t and make it private - also check constructors to fit into 20 chars ldh (and in Vmm_tls max depth = 10)
2018-11-11 01:44:31 +01:00
Hannes Mehnert
6dcde8eb68
block device support
2018-11-11 00:01:56 +01:00
Hannes Mehnert
79068c8abf
error logging on error in handle_command
2018-11-03 00:04:47 +01:00
Hannes Mehnert
9f674f7e6f
forgot loop on this exit in add_policy
2018-11-01 01:23:45 +01:00
Hannes Mehnert
7c34c61d43
vmmd_tls needs looping behaviour after adding a policy to start vm
2018-10-31 23:03:30 +01:00
Hannes Mehnert
c669be8e02
address most of @cfcs comments
2018-10-29 17:14:51 +01:00
Hannes Mehnert
2b85c65dd8
minor fixes from testing: do not require vm to be present for force-create, fix id generation in vmm_tls, use 32mb memory for unikernels by default
2018-10-28 23:06:15 +01:00
Hannes Mehnert
8ab37d6b3b
resources: remove_vm and remove_policy - no need to intertwine into a single remove
2018-10-28 19:50:48 +01:00
Hannes Mehnert
7b8f2cf802
add policy does nothing when received policy is equal to stored one
2018-10-28 19:41:06 +01:00
Hannes Mehnert
a60f866f70
fewer lists, read replies (to sockets) in vmmd
2018-10-26 21:30:54 +02:00
Hannes Mehnert
a064c7f58e
move more stuff around
2018-10-26 21:29:59 +02:00