1. Introduction
- You need to store the application details in a location where the application can be retrieved. (refer to Data Stores–Data Store captures the location from where you want the edge node to retrieve the application images)
- You need to upload or uplink the application in GUI to add it to the ZEDEDA platform (discussed in the later part of this document).

2. Add an Edge Application using ZEDEDA UI
- Step 1 > Click on the ‘Marketplace’ from the left navigation. By default, you land on the 'Edge Apps' screen, where you see the available Edge Applications added/imported into your Enterprise.
- Step 2 > Click on Add in the top right corner.
- Type A: Container
- Type B: Virtual Machine
- Type C: Modules
Type A: Container
- Step 1 > Populate the input field values for the 'Identity' section, as instructed in the table.
Identity section
Input Field |
Value |
Logo | You can upload the logo as per the suggested recommendations and formats. |
Name(*) | This is unique across the enterprise and cannot be changed. |
Title(*) | This is user-defined and can be changed. |
Description | A detailed explanation of what the Edge Application is used for. Not mandatory. |
Category(*) | Classification of the Edge Application can be one of Cloud Gateway, End Application, Infrastructure, Network Gateway, Operating System, Runtime, or Others. |
Version | You can provide the version for your Edge Application. |
Deployment Type(*) |
You can choose the deployment type from the available dropdown options:
|
License | Choose from a list of commonly used licenses by developers to release their work or provide a custom license by pointing to an existing location or uploading a file. |
VNC Connection | This option should be enabled if you want end-users of the Edge Application to access the instance directly through a VNC connection (users will have to be in the same network as the Edge Node). The Edge Application Instance can be accessed through a Remote Console connection from within the UI if enabled. |
Enable CPU Pinning | CPU Pinning is one technique used to improve the application VM process efficiency. ZEDEDA VM and Container Applications support this. |
- Step 2 > Populate the input field values for the 'Resources' section, as instructed in the table.
- Step 3 > Populate the input field values for the 'Drives' section, as instructed in the table.
Resources
Input Field | Value |
Resource(*) | Specify the resource requirements by choosing readily available size classifications or specify all custom values for CPU, Memory & Storage requirements. |
CPU(*) | Specify the number of virtual CPUs required by the Edge Application to function. |
Memory(*) | Specify the virtual memory requirements of the Edge Application. |
Drives
Input Field | Value |
Scope: Projects | Choose the Project you need from the dropdown. |
Edge App Image(*) | Choose an existing Edge App Image already registered with ZEDEDA by uploading the actual file or uplinking it to an existing location. |
Tag | This is an optional identifier used to choose preferred volume instances for deployments. Volume tags can contain alphabets, numbers, and special characters only. |
Mount Path | The mount path provided in the application manifest is mounted on that directory and created under the '/eve/volumes/uuid' path inside the application instance. Generally, the mount path is not provided for the root disc. It is specified for the data disc. If a path is specified, the volume gets mounted on that path inside the application instance. All volumes are created inside the 'persist/vault/' directory or 'persist/clear/' directory. The mount points specified by the user in the application specify where the user needs the volume inside the instance. |
Encrypted | If this checkbox is checked, the data is encrypted and stored under the 'persist/vault/' path and/or the path provided. If data encryption is not required, then no need to check the checkbox. Note that EVE-OS supports per-folder encryption. |
Purge |
Purge is a method of discarding accumulated information. An application bundle has a root disc and may have multiple volumes. Generally, only the root disc is purged, when the data needs to be preserved and not discarded.
If the purge checkbox is checked, the next time when user purges their application instance, the root disc is purged along with the specified volumes.
|
-
Step 4 > Populate the input field values for the 'Environments' section, as instructed in the table.
- Step 4a > Click 'Yes' if you want to enable direct attachment of a hardware resource.
- Step 4b > Select the appropriate adapter type from the dropdown list.
Environments
Input Field | Value |
Name(*) | Name of the environment. |
Direct Attach | Check the checkbox if you want to use the hardware resource directly. |
Adapter Type | Select the adapter type from the dropdown list. |
- Step 5 > Populate the input field values for the 'Outbound Rules' section, as instructed in the table.
Input Field | Value |
Outbound Host or IP | Hostname or valid IP Address. |
Protocol | You can choose from 'Any,' 'TCP,' or 'UDP.' |
Port | You can choose from 'Any' or can be customized. |
Action | You can choose from 'Allow' or 'Limit.' |
Rate | If you choose 'Action' as 'Limit,' add the Rate value. |
Burst | If you choose 'Action' as 'Limit,' add the Burst value. |
- Step 6 > Populate the input field values for the 'Inbound Rules' section, as instructed in the table.
Input Field | Value |
Protocol(*) |
You can choose from 'TCP' or 'UDP.' |
Edge Node Port(*) |
You can choose from 'Any' or can be customized. |
Action |
You can choose from 'Map' or 'Limit.' |
Edge App Port(*) |
If you choose 'Action' as 'Map,' add the application port number. |
Rate(*) |
If you choose 'Action' as 'Limit,' add the Rate value. |
Burst(*) |
If you choose 'Action' as 'Limit,' add the Burst value. |
Inbound IP Address |
Valid IP Address |
- Step 7 > Populate the input field values for the 'Configuration' section, as instructed in the table.
Configuration
Input Field |
Value |
Add Custom Config Template |
Check the checkbox if you want to add a template. |
Configuration Name(*) |
Specify an alphanumeric name. |
Allow Edge App Instances to override entire config |
Check the checkbox accordingly. |
Variable Delimiter(*) |
Specify a sequence of characters that helps identify variables in the template. |
Configuration Template(*) |
Paste the configuration template in the box. |
- Step 8 > Show the variable group name if this checkbox is checked. You can uncheck the checkbox to see the 'Show If' parameter displayed. You can then select the variable along with the operator and appropriate value.
- Step 9 > Click 'Add Variable' to add a custom variable.
Input Field |
Value |
Variable Group Name(*) |
Provide a suitable name for the variable group. |
Show Always |
The 'Show Always'checkbox is checked by default. |
Show If(*) |
This parameter needs to have details of the rendering group variables accordingly. |
- Step 10 > Select the 'Variable Type' from the list.
Input Field |
Value |
Variable Name(*) |
Specify the variable name. Has to be alphanumeric without space. |
Display Title(*) |
Specify the title you want to be displayed. |
Variable Type(*) |
Choose one of the types from:
|
- Step 11 > Populate the input field values for the 'Developer Info' section, as instructed in the table.
- Step 12 > Click the Add button to onboard the Edge Application.
Developer Info
Input Field |
Value |
Name(*) |
Developer name to be provided. |
Email(*) |
Developer email to be provided. |
Website(*) |
Developer website to be provided. |
Company |
Company name to be provided. |
Agreement |
The developer can share specific agreements with services offered, or standards complied. |
Support Description |
Specific instructions or contact details for support |
Type B: Virtual Machine
- Step 1 > Populate the input field values for the 'Identity' section, as instructed in the table.
Identity section
Input Field |
Value |
Logo |
You can upload the logo as per the suggested recommendations and formats. |
Name(*) |
This is unique across the enterprise and cannot be changed. |
Title(*) |
This is user-defined and can be changed. |
Description |
A detailed explanation of what the Edge Application is used for. Not mandatory. |
Category(*) |
Classification of the Edge Application can be one of Cloud Gateway, End Application, Infrastructure, Network Gateway, Operating System, Runtime, or Others. |
License |
Choose from a list of commonly used licenses by developers to release their work or provide a custom license by pointing to an existing location or uploading a file. |
Version |
You can provide the version for your Edge Application. |
Deployment Type(*) |
You can choose the deployment type from the available dropdown options:
|
VNC Connection |
This option should be enabled if you want end-users of the Edge Application to access the instance directly through a VNC connection (users will have to be in the same network as the Edge Node). If enabled, the Edge Application Instance can be accessed through a Remote Console connection from within the UI. |
VM Mode(*) |
Choose one of the supported virtualization modes
|
Enable CPU Pinning |
CPU Pinning is one technique used to improve the application VM process efficiency. ZEDEDA VM and Container Applications support this. |
- Step 2 > Populate the input field values for the 'Resources' section, as instructed in the table.
- Step 3 > Populate the input field values for the 'Drives' section, as instructed in the table.
Resources
Input Field |
Value |
Resource(*) |
Specify the resource requirements by choosing readily available size classifications or specify all custom values for CPU, Memory & Storage requirements. |
CPU(*) |
Specify the number of virtual CPUs required by the edge App to function. |
Memory(*) |
Specify the virtual memory requirements of the Edge Application. |
Storage(*) |
Specify the virtual storage requirements of the Edge Application. |
Drives
Input Field |
Value |
Scope: Projects | Choose the Project you need from the dropdown. |
Drive Type(*) |
The drive can be any HDD, CD-ROM, or NET. |
Target(*) |
Specify the target usage - Disk, Kernel, Initrd, Ramdisk. |
App Image(*) |
Choose an existing App Image that is already registered with the ZEDEDA platform by way of uploading the actual file or uplinking it to an existing location. |
Max Size(*) |
Specify the maximum storage that the Image can use once it is deployed. |
Tag |
This is an optional identifier used to choose preferred volume instances for deployments. Volume tags can contain alphabets, numbers, and special characters only. |
Mount Path |
The mount path provided in the application manifest is mounted on that directory and created under the '/eve/volumes/uuid' path inside the application instance. Generally, the mount path is not provided for the root disc. It is specified for the data disc. If a path is specified, the volume gets mounted on that path inside the application instance. All volumes are created inside the 'persist/vault/' directory or 'persist/clear/' directory. The mount points specified by the user in the application specify where the user needs the volume inside the instance. |
Encrypted |
If this checkbox is checked, the data is encrypted and stored under the 'persist/vault/' path and/or the path provided. If data encryption is not required, then no need to check the checkbox. Note that EVE-OS supports per-folder encryption. |
Purge |
Purge is a method of discarding accumulated information. An application bundle has a root disc and may have multiple volumes. Generally, only the root disc is purged when the data needs to be preserved and not discarded. If the purge checkbox is checked, the next time users purge their application instance, the root disc is purged along with the specified volumes. |
-
Step 4 > Populate the input field values for the 'Environments' section, as instructed in the table.
- Step 4a > Click 'Yes' to enable direct attachment of a hardware resource.
- Step 4b > Select the appropriate adapter type from the dropdown list.
Environments
- Step 5 > Populate the input field values for the 'Outbound Rules' section, as instructed in the table.
Input Field | Value |
Outbound Host or IP | Hostname or valid IP Address. |
Protocol | You can choose from 'Any,' 'TCP,' or 'UDP.' |
Port | You can choose from 'Any' or can be customized. |
Action | You can choose from 'Allow' or 'Limit.' |
Rate | If you choose 'Action' as 'Limit,' add the Rate value. |
Burst | If you choose 'Action' as 'Limit,' add the Burst value. |
- Step 6 > Populate the input field values for the 'Inbound Rules' section, as instructed in the table.
Input Field | Value |
Protocol(*) |
You can choose from 'TCP' and 'UDP.' |
Edge Node Port(*) |
You can choose from 'Any' or can be customized. |
Action |
You can choose from 'Map' or 'Limit.' |
Edge App Port(*) |
If you choose 'Action' as 'Map,' add the application port number. |
Rate(*) |
If you choose 'Action' as 'Limit,' add the Rate value. |
Burst(*) |
If you choose 'Action' as 'Limit,' add the Burst value. |
Inbound IP Address |
Valid IP Address |
- Step 7 > Populate the input field values for the 'Configuration' section, as instructed in the table.
Configuration
Input Field |
Value |
Add Custom Config Template |
Check the checkbox if you want to add a template. |
Configuration Name(*) |
Specify an alphanumeric name. |
Allow Edge App Instances to override entire config |
Check the checkbox accordingly. |
Allow Storage Resize |
Check the checkbox accordingly. |
Variable Delimiter(*) |
Specify a sequence of characters that helps identify variables in the template. |
Configuration Template(*) |
Paste the configuration template in the box. |
- Step 8 > Show the variable group name if this checkbox is checked. You can uncheck the checkbox to see the 'Show If' parameter displayed. You can then select the variable along with the operator and appropriate value.
- Step 9 > Click 'Add Variable' to add a custom variable.
Input Field |
Value |
Variable Group Name(*) |
Provide a suitable name for the variable group. |
Show Always |
The 'Show Always'checkbox is checked by default. |
Show If(*) |
This parameter needs to have details of the rendering group variables accordingly. |
- Step 10 > Select the 'Variable Type' from the list.
Input Field |
Value |
Variable Name(*) |
Specify the variable name. Has to be alphanumeric without space. |
Display Title(*) |
Specify the title you want to be displayed. |
Variable Type(*) |
Choose one of the types from:
|
- Step 11 > Populate the input field values for the 'Developer Info' section, as instructed in the table.
- Step 12 > Click the Add button to onboard the Edge Application.
Developer Info
Input Field |
Value |
Name(*) |
Developer name to be provided. |
Email(*) |
Developer email to be provided. |
Website(*) |
Developer website to be provided. |
Company |
Company name to be provided. |
Agreement |
The developer can share specific agreements with services offered, or standards complied. |
Support Description |
Specific instructions or contact details for support |
Type C: Module
- Step 1 > Populate the input field values for the 'Identity' section, as instructed in the table.
Identity section
Input Field |
Value |
Logo |
You can upload the logo as per the suggested recommendations and formats. |
Name(*) |
This is unique across the enterprise and cannot be changed. |
Title(*) |
This is user-defined and can be changed. |
Description |
A detailed explanation of what the Edge Application is used for. Not mandatory. |
Category(*) |
Classification of the Edge Application can be one of Cloud Gateway, End Application, Infrastructure, Network Gateway, Operating System, Runtime, or Others. |
Version |
You can provide the version for your Edge Application. |
Enable CPU Pinning |
Click yes to enable. |
Azure Runtime Module |
Click yes to enable. |
License |
Choose from a list of commonly used licenses by developers to release their work or provide a custom license by pointing to an existing location or uploading a file. |
- Step 2 > Populate the input field values for the 'Drives' section, as instructed in the table.
- Step 3 > Populate the input field values for the 'Container Options' section, as instructed in the table.
Drives
Input Field | Value |
Edge App Image(*) | Select an existing Edge Application Image already registered with the ZEDEDA platform by uploading the actual file or uplinking it to an existing location. |
Container Options
- Step 4 > Populate the input field values for the 'Module Deployment Details' section, as instructed in the table.
Module Deployment Details
Module Twin settings
Routes
Environment Variables
- Step 5 > Populate the input field values for the 'Developer Info' section, as instructed in the table.
- Step 6 > Click the Add button to onboard the Edge Application.
Developer Info
Input Field | Value |
Name(*) | Developer name to be provided. |
Email(*) | Developer email to be provided. |
Website(*) | Developer website to be provided. |
Company | Company name to be provided. |
Agreement | The developer can share specific agreements with services offered or standards complied with. |
Support Description | Specific instructions or contact details for support |
3. Onboard an Edge Application using ZEDEDA CLI
zcli> zcli datastore create <name> [--title=<title>] --dstype=<dstype> [--fqdn=<fqdn>] [--region=<region>] [--apikey=<apikey>] [--apipass=<password>] [--dpath=<dpath>]
zcli> zcli image create <name> --datastore-name=<datastore> --arch=[AMD64|ARM64] --image-format=[raw|qcow|qcow2|vhd|vmdk|ova|vhdx|container] [--image-url=<rel_url>] [--title=<title>] [--type=[Eve|Application|EvePrivate]]
Options:
--image-format=[raw|qcow|qcow2|vhd|vmdk|ova|vhdx|container] Image format(supported formats: raw, qcow, qcow2, vhd, vmdk, ova, vhdx, container )
--type=[EveImage|AppImage|EveImagePrivate] Image type(supported types:EveImage, AppImage, EveImagePrivate)
--arch=[AMD64|ARM64] Image architecture
--status=<status> Image status
--title=<title> Title of the image
--description=<description> Description of the image
--detail Show details of the image
-f Delete image without asking user confirmation
zcli> zcli image uplink <name> [--datastore-name=<datastore>] [--image-sha=<Sha256> --image-size=<size>] [--signature=<signature> --signer-url=<url>] [--intermediate-url=<url>] [--image-url=<rel_url>]
zcli> zcli image upload <name> --path=<path> [--chunked]
zcli> zcli edge-app create <name> --manifest=<manifest> [--title=<title>] [--description=<description>]
Options:
--manifest=<manifest> edge-app manifest file
--title=<title> Title of the application edge-app
--description=<description> Description of the application edge-app
--detail Show details of the application edge-app
-f Delete edge-app without asking user confirmation