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 UI, to add it to the ZEDEDA platform (discussed in the later part of this document).

2. Add an Edge Application using UI
- Step 1 > Click on the ‘Marketplace’ (
) icon 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 the Add (
) icon on 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 way of pointing to an existing location or uploading a file. |
VNC Connection | This option should be enabled if you want to allow 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). Alternately if enabled, the Edge Application Instance can be accessed through a Remote Console connection from within the UI. |
- 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 that is already registered with ZEDEDA by way of 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 also 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 and 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', then add the Rate value. |
Burst | If you choose 'Action' as 'Limit', then 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', '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', then add the application port number. |
Rate(*) |
If you choose 'Action' as 'Limit', then add the Rate value. |
Burst(*) |
If you choose 'Action' as 'Limit', then 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 being displayed. You can then select the variable along with the operator and appropriate value.
- Step 9 > Click on '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 on the Add button to perform the action of the Edge Application onboard.

Developer Info
Input Field |
Value |
Name(*) |
Developer name to be provided. |
Email(*) |
Developer email to be provided. |
Website(*) |
Developer website to be provided. |
Agreement |
The developer can share specific agreements with services offered or standards complied. |
Developer Description |
Details about the developer like the different types of development work carried out etc. |
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 way of 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 to allow 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). Alternately 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–
|
- 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 can be used by the Image 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 also 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 and 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
- 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', then add the Rate value. |
Burst | If you choose 'Action' as 'Limit', then 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', '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', then add the application port number. |
Rate(*) |
If you choose 'Action' as 'Limit', then add the Rate value. |
Burst(*) |
If you choose 'Action' as 'Limit', then 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 being displayed. You can then select the variable along with the operator and appropriate value.
- Step 9 > Click on '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 on the Add button to perform the action of the Edge Application onboard.

Developer Info
Input Field |
Value |
Name(*) |
Developer name to be provided. |
Email(*) |
Developer email to be provided. |
Website(*) |
Developer website to be provided. |
Agreement |
The developer can share specific agreements with services offered or standards complied. |
Developer Description |
Details about the developer like the different types of development work carried out etc. |
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. |
License |
Choose from a list of commonly used licenses by developers to release their work or provide a custom license by way of 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 |
Scope: Projects | Select the Project you need from the dropdown. |
Edge App Image(*) | Select an existing Edge Application Image that is already registered with the ZEDEDA platform by way of 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 on the Add button to perform the action of the Edge Application onboard.

Developer Info
Input Field | Value |
Name(*) | Developer name to be provided. |
Email(*) | Developer email to be provided. |
Website(*) | Developer website to be provided. |
Agreement | The developer can share specific agreements with services offered or standards complied with. |
Developer Description | Details about the developer like the different types of development work carried out etc. |
Support Description | Specific instructions or contact details for support |
3. Onboard an Edge Application using 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