Overview to install apps on a gateway
Fog apps are Cisco IOx applications that run on a Cisco GMM gateway and transmit data from devices to the Cisco GMM cloud or other data destinations. Apps are deployed and managed with the Cisco Gateway Management Module (GMM).
As part of the new changes, the application management on the gateways are controlled by the following (and not by actions in the gateway settings):
- Application Templates that define the app settings.
- Deployment Policies that determine the apps and associated templates that are installed and run on a gateway.
- Note: The Deployment Policy includes custom field definition(s). Any gateway that has the same Custom Field definition(s) will receive the policy's apps and template.

In this example:
- An IOx app was added to GMM and includes application-specific settings.
- Multiple app templates are created to define different app configurations.
- App templates can be used by more than one deployment policy.
- The Deployment Policy also includes one or more Custom Field definitions.
- The gateways that match a policy's Custom Field definitions will receive the policy's apps and associated templates.
Prerequisites
- A fog application that meets the IOx requirements.
- See for more information.
- A Cisco GMM gateway claimed for your organization.
- A device connected to the gateway (sending data over the MQTT protocol).
- A Cisco GMM Cloud Application account with admin privileges.
Manage applications
Add Applications
Download the IOx fog app to a local or network drive, such as:
Add the fog application.
- Log in to the Cisco GMM Cloud Application.
- Select Applications > Applications and then Add Application.
- In the popup window, click Choose file from your computer or drag and drop the file from your local drive.
- Click Import.
- Wait for the process to complete and the status to change to "Available".

View application details
- Go to Applications > Applications.
- Click on the name of the application.
- The Summary tab information about the app such as the description, version number, and default configuration.
- The Instances tab displays the gateways where the app is installed, and allows you to start or stop the app on the device. The applications' parameters are also be displayed, and you can edit the application settings for specific gateways.
Delete applications
- Go to Applications > Applications.
- Select the application to delete.
- Click
.
Manage application templates
Add application templates
- Go to Applications > Application Template.
- Click Add Application Template.
- Enter the Template Name.
- Select an application from the Application dropdown.
- The recommended profile for the application is preselected. A different profile can be selected, if required. If a custom profile is selected, enter values for Memory Threshold and CPU Threshold.
- Provide the network details for the interface(s) used by the application.
- Update the details for the Application Specific Parameters.
Note: For the Network Name, select NAT0 if you want your app to have a fixed IP address that will be constant across reboots. If you select Bridge0, a new IP address will be assigned when the gateway reboots.

Best practices
- To deploy a new version of your app, upgrade the current deployment to ensure the app data is retained.
- To upgrade an app, add the newer version to GMM and then use the deployment policies to deploy it on the gateways.
- If you uninstall and reinstall the app, the existing data might be deleted. The App will also get a different IP. If apps are reinstalled too frequently, the router may run out of dynamic IPs allocated for App.
- In the app specific parameters for a template, select the Network Name "NAT0" if you want your app to have a fixed IP address that will be constant across reboots. If you select "Bridge0", a new IP address will be assigned when the gateway reboots.
View and Edit application templates
- Go to Applications > Application Template.
- Click on the name of the application template.
- View or edit details for the application template. Click Save.
Duplicate application templates
- Go to Applications > Application Template.
- Select the application template to duplicate.
- Click

- Enter a name for the application template.
- Complete the remaining fields as required. Click Save.
Delete application templates
- Go to Applications > Application Template.
- Click on the name of the application template to delete.
- Click
.
Manage deployment policies
Add deployment policies
Go to Applications > Deployment Policy.
Click Add Deployment Policy.
Enter the Policy Name.
Select a Policy Priority.
Note: When multiple policies are applicable for a gateway, the policies will be applied based on the order of priority.
Select a Policy State.
- Activated policy state implies that the application as specified by this policy will be installed on the applicable gateways.
- Paused policy state implies that the application as specified by this policy will not be installed on new gateways and existing gateways will not be impacted.
- Deactivated policy state implies that the application as specified by this policy will be uninstalled from existing gateways and will not be installed on new gateways.
Select the Application Template.
Enter the group and values for the deployment policy. For example, if a custom field called color is enabled for the organization, with possible values of red, blue or green, the color will be available as an option under Group and red, blue or green will be available under Value.
- Group: select Color.
- Value: select Red.
Repeat the previous step for multiple combinations of Group and Value as required.
Click Preview to view the list of gateways that will be matched by this policy. The gateways are matched based on the Group/Value specified in the deployment policy. In the above example, all gateways that have Color red will be matched. If multiple Group/Value pairs are specified in the policy, the operation to match the gateways is an 'AND' operation.

Verify the details on the Preview page and click Submit.
The application specified by this deployment policy and application template will be installed on all the applicable gateways.
Note: The deployment policies will be automatically applied on gateways that will be claimed in the future and when custom fields on existing gateways are updated.
View and Edit deployment policies
- Go to Applications > Deployment Policy.
- Click on the name of the deployment policy.
- View or edit details for the deployment policy. Click Preview to view the list of gateways that will be matched by this updated policy.
- Verify the details on the Preview page and click Submit.
Change deployment policy state
- Go to Applications > Deployment Policy.
- Select the deployment policy to change the policy state.
- Click
, or
, or
.
- Activated policy state implies that the application as specified by this policy will be installed on the applicable gateways.
- Paused policy state implies that the application as specified by this policy will not be installed on new gateways and existing gateways will not be impacted.
- Deactivated policy state implies that the application as specified by this policy will be uninstalled from existing gateways and will not be installed on new gateways.
Duplicate deployment policies
- Go to Applications > Deployment Policy.
- Select the deployment policy to duplicate.
- Click

- Enter a name for the deployment policy.
- Complete the remaining fields as required. Click Save.
Delete deployment policies
- Go to Applications > Deployment Policy.
- Select the deployment policy to delete.
- Click

Impact on existing organizations that are already managing IOx applications
- Existing orgs will not be impacted until the new changes are enabled for that org.
- When the new enhancements are made available, the existing apps will not be impacted immediately.
- When new application templates and policies are created that match the existing gateways, then the policy will be enforced on those gateways.
- To seamlessly introduce the new enhancements without impacting existing apps, create templates and policies that match existing applications on the gateways. For example, if a gateway is running App1 with a config X, create a new template with App 1 and config X. Create a policy for this template so that a custom field on the gateway matches the policy. This will result in the policy being applied to the gateway with the same app and configuration.