Commit graph

168 commits

Author SHA1 Message Date
Reynir Björnsson 472e42717e Implement killall waiting 2020-11-30 15:26:29 +01:00
Reynir Björnsson 91ba8be8ab
Merge pull request #47 from reynir/query-manifest
Verify devices with manifest
2020-11-30 12:15:39 +01:00
Reynir Björnsson 353284bd49 Reword bridge detection error message 2020-11-30 11:54:42 +01:00
Reynir Björnsson b4a4a28634 Use ip link show to detect bridge
ip tuntap show lists all tuntap devices and ignores the rest of the
arguments, annoyingly. It will always return with exit code 0.

We do not detect if the interface is a bridge.
2020-11-30 11:37:34 +01:00
Hannes Mehnert bc71e26756 check that bridges with the provided names exist before creating tap devices 2020-11-27 22:40:15 +01:00
Hannes Mehnert 466e2d52b8 check manifest with provided device arguments 2020-11-27 22:24:52 +01:00
Reynir Björnsson 5cad5b00ea Verify devices with manifest 2020-11-26 15:28:57 +01:00
Hannes Mehnert c91ce00030 This repository moved to roburio organization
Adapt CI: use GitHub actions instead of travis for Linux testing, only a single
cirrus runner
2020-11-26 13:16:15 +01:00
Reynir Björnsson 33f7b6bcee
Systemd socket activation (#43)
* Use systemd socket activation
* Pass a new command line argument --systemd-socket-activation to the daemons if running on Linux
* Install .socket files
* Systemd services depend on their sockets
* Implement sd_listen_fds in OCaml
* Set FD_CLOEXEC in sd_listen_fds
* README: add comment about socket paths
* Linux systemd scripts: Rename albatross_stat -> albatross_stats
2020-11-26 12:06:28 +01:00
Reynir Björnsson f7e7c63c6f Fix pretty printing of time 2020-11-25 20:04:06 +01:00
Reynir Björnsson f954955dd0
Ergonomics (#41)
The info subcommands for {unikernel,block,policy} never error

Before, running the commands block, info or policy when no block
devices, unikernels or policies respectively were set up the command
would report an error and give the user a dangerous-looking WARNING
saying the command failed:

    $ albatross-client-local block
    albatross-client-local: [WARNING] host [vm: ]: command failed block: not found

Now instead the commands will report success with a message stating
there are no objects.

Co-authored-by: Hannes Mehnert <hannes@mehnert.org>
2020-11-14 22:27:55 +01:00
Hannes Mehnert a5265c9a44 albatross_log: skip unknown entries 2020-07-29 15:22:05 +02:00
Hannes Mehnert c7ee9dd908 vmm_asn: document versioning 2020-07-14 18:32:25 +02:00
Hannes Mehnert c7b468fe09 new command: get which downloads a unikernel and dumps it into a file 2020-07-05 21:27:44 +02:00
Hannes Mehnert 5adc2f0a8a vmm_asn: instead of potentially losing information, be honest and fail if requested to encode older versions of unikernel configuration 2020-07-05 20:53:57 +02:00
Hannes Mehnert 125711ac6d further rng cleanups (remove deps from dune); albatross-client-inspect-dump which reads a state file (for cautious upgrades) 2020-07-05 20:39:29 +02:00
Hannes Mehnert 604f3ec52e Bos.OS.Cmd.run_out needs to check the exit status (using Bos.OS.Cmd.success) 2020-05-11 13:26:35 +02:00
Hannes Mehnert 7cad9bd08d on linux, be a bit smarter which network device name to use 2020-04-25 19:59:19 +02:00
Hannes Mehnert 0c5af23848 vmmd: unikernel_info no longer transfers the unikernel image
regression introduced in dfd22be62b
(which prepared dumping to a file, and restart-on-failure)
this is not desired from a bandwidth point of view, if it is
considered to be a useful feature, there should be a separate
command for it
2020-04-25 17:12:41 +02:00
Hannes Mehnert b7747a2547 linux tap device discovery: redirect stderr of run to /dev/null 2020-04-21 11:07:57 +02:00
Hannes Mehnert 03c9948526 avoid brctl on Linux, use ip instead 2020-04-09 17:02:17 +02:00
Hannes Mehnert be83686a22 Vmm_unix: fix ip tuntap command (provide tap name earlier), also set link up 2020-04-03 17:44:21 +02:00
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 eccdaeafda set umask in mkfifo 2019-11-27 11:27:55 +01:00
Hannes Mehnert 34817a2090 notes about brctl, could potentially be replaced by ip 2019-11-27 11:27:55 +01:00
Hannes Mehnert 6206e8681a make dbdir and tmpdir platform-specific and overwritable by all command line utilities 2019-11-27 11:27:55 +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 057dbbf147 revise naming freedom: multiple labels are allowed in certificate common names
influx may drop topmost label (if --drop-label provided)
2019-11-09 20:36:32 +01:00
Hannes Mehnert ec9f00b39a vmm_ring revise implementation 2019-10-29 20:42:51 +01:00
Hannes Mehnert 8a113e5ce0 revise log and console subscription protocol, require either since or count 2019-10-29 20:17:50 +01:00
Hannes Mehnert 82782363b8 Vmm_unix.check_commands : unit -> (unit, [> `Msg of string ]) result - which
checks (platform-dependent) all required executables
Vmm_unix.prepare/exec execute solo5-{spt/hvt} depending on the image type
 (solo5-elftool figures that out), use jsonm to parse output
Vmm_unix: use ip on linux, no longer ifconfig
2019-10-27 21:31:37 +01:00
Hannes Mehnert 01f6983325 cosmetics 2019-10-27 19:47:37 +01:00
Hannes Mehnert 1d33c17b53 use a variant for uname result, not strings 2019-10-27 19:43:54 +01:00
Hannes Mehnert 47fef438e0 preserve backwards data compatibility 2019-10-15 00:49:58 +02:00
Hannes Mehnert 5b187999f1 restart: range 60..64 no restart, document all the exits 2019-10-14 11:05:22 +02:00
Hannes Mehnert a579a8e143 root name is "." instead of "" 2019-10-13 13:40:17 +02:00
Hannes Mehnert 249796ce6f minor 2019-10-12 02:30:21 +02:00
Hannes Mehnert 866cd9041a move conn_metrics to Vmm_core 2019-10-12 02:15:44 +02:00
Hannes Mehnert 13edb22db3 bump wire version 2019-10-12 02:06:45 +02:00
Hannes Mehnert c9820f3106 deterministic mac addresses! 2019-10-12 02:06:45 +02:00
Hannes Mehnert 0808c20583 restart on failure: add optional integer set which exit codes to restart on 2019-10-12 02:06:45 +02:00
Hannes Mehnert 6be9ebbc8b revise tag and compression in unikernel config 2019-10-12 02:06:45 +02: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 4ce52daea8 gather more statistics from kinfo_user (sys/user.h) on FreeBSD
- real time runtime information (in microsecs) ki_runtime
- start timeval ki_start
- count of copy-on-write fauls ki_cow
2019-10-12 02:04:44 +02:00
Mindy bf59b7b930 update to ipaddr 4.0.0 & decompress 0.9.0 2019-07-16 15:11:41 -05:00
Hannes Mehnert 45f37389aa move to dune, rename executables 2019-03-28 00:11:43 +01:00