mod-ServiceWrapper
The ServiceWrapper
is a special utility that allows any binary to run as a registered service, with full service.yaml
support, service discovery, and dependency resolution. However, it does not support OTA live updates from the Web-UI. This allows developers to create a binary or script in any language they want, start it with the ServiceWrapper
and then use all benefits of the ASE software framework.
Runs on Rover1 Debix
Precompiled binary available here
Adheres to Makefile spec
Source code is confidentially available using your Github token
Uses service.yaml
Registers with SystemManager
Functionalities
- Write code in any language you like, run it using the ServiceWrapper and benefit of all ASE software stack benefits (service discovery, dependency resolution, tuning parameter listing)
- Automatic restarts of your binary, in case your code exits with a nonzero exit code
- Dependency information injected through environment variables
- New tuning state broadcasts injected through stdin
- Full support for
service.yaml
configurations
Running this module
- Precompiled
- From source
- Download this module from the ASE Download Manager to your current working directory using
curl
curl https://downloads.ase.vu.nl/api/mod-ServiceWrapper/latest -JL -o mod-ServiceWrapper.zip
- Unzip the downloaded zip file. This will deflate the precompiled binary and its service yaml
unzip mod-ServiceWrapper.zip
- Execute a binary using the ServiceWrapper
./mod-ServiceWrapper 'python3 test.py'
- Clone the source code using your private ASE token. Make sure to replace
<YOUR_TOKEN>
with the token you received by email.
git clone https://<YOUR-TOKEN>@github.com/VU-ASE/mod-ServiceWrapper.git
- Enter the source code directory
cd mod-ServiceWrapper
- Build and start from source, running a binary of your choice
make start runargs="'python3 test.py'"
Runtime arguments
The last argument you pass should always be the path your binary or script. The ServiceWrapper binary also exposes all flags created by the pkg-ServiceRunner
package. View its docs to understand how to use these flags. Some examples are highlighted below.