Gustavo
Gustavo is a container orchestration framework constructed for Demo A3 under Research Thrust 2 of NASA HOME STRI Project. Gustavo is designed to be a one stop shop for administering applications in an autonomous, self aware fashion. Gustavo is available in a Command Line Interface and can be run on Linux/Mac Environments as well as under Windows with the help of Windows Subsystem for Linux (WSL).
Usage: gustavo [OPTIONS] COMMAND [ARGS]...
Manage gustavo from a simple CLI.
Options:
--version Show the version and exit.
--help Show this message and exit.
Commands:
apps Manage applications
cache obtain status of various workers on the platform
device-group Manage device groups.
manager Administer the manager.
ping check nebula api responds
prune prune images.
registry Manage local registry.
utils utility commands
worker Manage worker.
gustavo apps -n test_linreg -f sample.yaml
The following files are essential:
- The environment file contains the list of environment variables needed for running the manager and its allied services.
A sample manager.env file is as follows:
REGISTRY_HOST=127.0.0.1
REGISTRY_PORT=5000
DREGSY_CONFIG_FILE_PATH=./.config/gustavo/dregsy_conf.yml
DREGSY_MAPPING_FILE_PATH=./.config/gustavo/mappings_list.yml
REDIS_HOST=127.0.0.1
REDIS_PORT=6379
REDIS_AUTH_TOKEN="teentakle1212"
MANAGER_HOST=127.0.0.1
MANAGER_PORT=80
MONGO_HOST=127.0.0.1
MONGO_PORT=27017
MONGO_USERNAME=nebula
MONGO_PASSWORD=nebula
MONGO_CERTIFICATE_FOLDER_PATH=/tmp/
NEBULA_USERNAME=nebula
NEBULA_PASSWORD=nebula
NEBULA_AUTH_TOKEN="teentakle1212"
dregsy_conf.ymlcontains configuration for dregsy. Needs to be edited according to .env file.mappings_list.ymlcontains which images to sync. This file is dynamically read. Feel free to change the entries during run time to pause or start sync of new/existing images.
The docker daemon requires registries to be running http. However, the current version only supports http. To turn off https, follow the steps outlined in the link
This needs to be done at each host where a docker daemon might be running. Be careful to set the myregistrydomain:5000 to the REGISTRY_HOST:REGISTRY_PORT.
Common Gotchas
If using podman, you must login using podman login docker.io prior to launching this tool. Else there will be authentication errors.
Development and Maintenance
Gustavo was conceived and developed by researchers at Oklahoma State University and Georgia Tech.
Documentation
To run documentation using pdoc3, run
pdoc3 -o ../docs-internal/ --html .
For pdf version
First run pdoc3, then you can run for eg:
pdoc3 -o <location> --pdf gustavo.md > <location>/gustavo.md
Add to the top of .md file
---
mainfont: DejaVuSerif.ttf
sansfont: DejaVuSans.ttf
monofont: DejaVuSansMono.ttf
mathfont: texgyredejavu-math.otf
---
To run pandoc:
pandoc --metadata=title:"Project Gustavo: A nifty CLI to orchestrate container images in a distributed manner" --from=markdown+abbreviations+tex_math_single_backslash --pdf-engine=xelatex --variable=mainfont:"DejaVuSerif.ttf" --toc --toc-depth=4 --output=gustavo.pdf <location>/gustavo.md