Deploy a first service with the stack¶
When starting the adminembedded processus, it will take or create an apps folder
this folder is structured as followed :
use@alexa:~/$ tree apps
apps
├── admin_running_services
├── bundled_factory_apps
├── contents
├── deployed_applications
└── status
Folders :
Folder |
description |
|---|---|
admin_running_services |
contains the activated and running services configuration |
bundled_factory_apps |
this folder contains “factory” apps, ready for deployment. |
contents |
this folder contains, for each application stored files, needed for applications (applications have a read/write access to this folder) |
deployed_application |
this folder contains deployed and configured applications, ready to start |
status |
this folder contains for each application, a status file, and some logs stored by the application |
Here is below the state diagram of a service / an application :
stateDiagram
[*] --> deployed
deployed --> configured
configured --> started
started --> stopped
stopped --> started
stopped --> undeployed
undeployed --> [*]
Application definition¶
An application in nodeiot, is a folder, with files in it, with a small json descriptor. In order to be able to easily beeing resetted, redeployed, applications are designed to separate Read and Write. The “Writes” are only available in the status folder as well as the contentfolder.
Every application can ship datafiles, configuration files, during the configuration of the application, some parameters are given so configure or setup the application.
An application may have one or many executable.
Application Descriptor¶
In the application folder, a manifest.json file is placed for giving informations about the service
{
"application_id":"",
"application_name": "test_application",
"application_version": "1.0",
"application_description": "test application for the admin",
"application_commandline": "/bin/python3 t.py",
"monitoring_status_file_path": "status.json",
"running_user": "use",
"additional_properties": {},
"content_path": "content_path"
}