Environment configuration
Eden is able to control different environments.
The environment should contain one EVE block at least and one controller block.
It may contain other blocks with other services, such as eserver, redis and any other service
Environment is launched by command
eden start
Environment can be stopped by the command
eden stop
Environment can be restarted by the command
eden restart.
It is an equivalent of eden stop/ eden start
I can have a small config.
Use case:
I want to test different eve bundles and be able to switch between them.
eden config == help
eden config add
mkdir ./conf
eden config get –-all > ./conf/config2.yml
<edit something in ./conf/config2.yml>
eden config add --name config2 --file ./conf/config2.yml (if omitted - will create default)
eden config list
--default
–-config2
eden config set --name config2
eden setup
eden start
eden test
eden stop
eden config set
eden start
eden test
eden stop
eden config delete --name config2
Config commands
About configs:
Default configs are generated by default. Default config is generated upon make build.
eden config init - generates default config and replaces it if exists
eden config add <name> - adds the new config copied from default context. Name is required.
--file option - adds from file.
If the config with <name> exists return that it already exists
--usediff If we have config.yml then we push the difference to config.
eden config delete <name> - removes the config. Name is required.
eden config set <name> - sets the config to <name>. Name is required.
eden config list - displays the config
eden config get <name> - gets the config <name>.
Omitted <name>- gets the current config
--all -gets the config from file
--key - shows the param
eden start has the option of --config <name> or --config-file <path>
On eden init:
eden config init
Now context is stored in ./eden/contexts/<name.yml>
Local tests- should be stored in context-aware directories
local files that are downloaded or used for environment/context are stored in ./eden/context-files/<context-name>/
make clean - cleans all
eden clean - cleans all except eden
eden config clean - cleans all configs (asks yes /no)
#config is generated by eden
adam:
#tag on adam container to pull
tag: 0.0.36
#location of adam
dist: adam
#port of adam
port: 3333
#domain of adam
domain: mydomain.adam
#ip of adam for EVE access
eve-ip: 192.168.0.2
#ip of adam for EDEN access
ip: 192.168.1.241
#force adam rebuild
force: true
#certificate for communication with adam
ca: adam/run/config/root-certificate.pem
#use remote adam
remote: true
#use v1 api
v1: true
eve:
#devmodel
devmodel: Qemu
#EVE arch (amd64/arm64)
arch: amd64
#EVE os (linux/darwin)
os: linux
#EVE acceleration (set to false if you have problems with qemu)
accel: true
#variant of hypervisor of EVE (kvm/xen)
hv: kvm
#serial number in SMBIOS
serial: 31415926
#onboarding certificate of EVE to put into adam
cert: certs/onboard.cert.pem
#EVE pid file
pid: eve.pid
#EVE log file
log: eve.log
#EVE firmware
firmware: eve/dist/amd64/OVMF.fd
#eve repo used in clone mode (eden.download = false)
repo: https://github.com/lf-edge/eve.git
#eve tag
tag: 5ee6043906449f7fa3447c96fd38dc9a536c5693
#eve tag for base os
base-tag: 571d94a11fa19d79805a0465030175b7257d343b
#eve version (without hv and os)
base-version: 0.0.0-snapshot-master-93c2dbb2-2020-05-08.13.15
#forward of ports in qemu [(HOST:EVE)]
hostfwd:
2222: 22
5912: 5901
5911: 5900
8027: 8027
8028: 8028
#location of eve directory
dist: eve
#location of EVE base os directory
base-dist: evebaseos
#file to save qemu config
qemu-config: /home/fleandr/.eden/qemu.conf
#uuid of EVE to use in cert
uuid: 54236a31-7ddb-4610-ba68-9d9a1db17e24
#live image of EVE
image-file: eve/dist/amd64/live.qcow2
#dtb directory of EVE
dtb-part:
#config part of EVE
config-part: adam/run/config
eden:
#root directory of eden
root: /home/fleandr/eden2/eden/dist
images:
#directory to save images
dist: images
#yml to build docker image
docker: /home/fleandr/eden2/eden/images/docker/alpine/alpine.yml
#yml to build vm image
vm: /home/fleandr/eden2/eden/images/vm/alpine/alpine.yml
#download eve instead of build
download: true
#eserver is tool for serve images
eserver:
#ip (domain name) of eserver for EVE access
ip: mydomain.adam
#port for eserver
port: 8888
#pid for eserver
pid: eserver.pid
#log of eserver
log: eserver.log
#directory to save certs
certs-dist: certs
#directory to save binaries
bin-dist: bin
#ssh-key to put into EVE
ssh-key: certs/id_rsa.pub
#observe logs in tests
logs: false
#eden binary
eden-bin: eden
#test binary
test-bin: eden.integration.test
#test script
test-script: eden.integration.tests.txt