Expand description
This module contains VM runtime configuration definitions.
Gevulot Network uses this configuration to setup environment inside VM before launching main application.
From VM perspective, this configuration will be mounted to /mnt/gevulot-rt-config/config.yaml
.
Then VM is responsible to process it in order to execute the main application properly.
follow_config
allows to chain multiple configurations.
It contains path to the next configuration file to process after current one is finished.
§Processing
The configuration SHOULD be processed in the following way:
- Mount default filesystems (default filesystems are defined by VM itself);
- Setup ISA debug exit port if some (specifying multiple ports is not allowed).
- Mount filesystems in order of specification in
mounts
; - Set environment variables specified in
env
; - Set working directory to
working_dir
; - Load kernel modules in order of specification in
kernel_modules
; - Run boot commands in order of specification in
bootcmd
.
If current configuration defines a command
to run, it should be updated together with its
arguments. If there is a following configuration, it should be loaded and processed in the same
way.
Finally after processing all configuration files, command
with
args
should be executed.
Because loading following configuration file happens after mounting, it may be taken from mounted directory.
§Configuration file
Runtime configurations are expected to be serialized into and deserialized from YAML files.
Every Gevulot runtime configuration YAML file MUST start with version
field.
Structs§
- EnvVar
- Environment variable definition.
- Mount
- Mount definition.
- Runtime
Config - Gevulot VM runtime configuration.
Enums§
- Debug
Exit - Debug exit method depending on ISA.
Constants§
- VERSION
- Version of runtime configuration.