Adding Azure Services to the Catalog

Access through:

Configuration > Self-Service > Catalog tab

Available to:

Commander Role of Superuser, Enterprise Admin

To add Azure services to the catalog, your Azure subscription must first be added to Commander as a managed system. For information on how to do this, see Managing Azure.

We recommend the use of multi-cloud templates for all services in your catalog, for easier maintainability and greater flexibility. See Adding Multi-Cloud Services to the Catalog to learn more. Note that multi-cloud services don't yet support ARM templates.

To add a new service:

  • On the Catalog tab, click Add Service.

    You can also copy an existing service as a shortcut.

To edit an existing service:

  • On the Catalog tab, locate a service and click Edit.

Continue to the next section for information on the wizard pages.

See Managing the Service Catalog for general information on the service catalog.

Service Description page

Customize display options for this service.

Field

Description

Name

The display name for this service in the Service Catalog (maximum 100 characters).

This name is used as the label for the Service section of the Request New Service form. Choose a distinctive Service Name to help requesters fill out the form.

Description

Optional; up to 1000 characters.

Along with the Name field, the Description field is used in Service Catalog searches, so adding a description can help users find service catalog entries.

Icon

Choose an icon from those available, or click Manage Icons to add an icon. See Managing icons for the service catalog for more details.

Categories

To help users find this service in a long list, choose one or more categories from those available, or click Manage Categories to add a category. See Managing categories for the service catalog for more details.

If the service-level form elements such as Quantity and Expiry Date don't make sense for this service, you can hide the service portion of the service request form by clearing the Display service form when this service is requested checkbox.

Components page

On this page, you can add private or public images and custom components to the service.

If you want to replace a template with a newer version, see Replacing a template in the service catalog.

To add a VM image to the service:

  1. Click Add and choose VM Template, Image or AMI.
  2. In the dialog that appears, select an image.
  3. Use the tree or enter text in the search field to narrow the component list. Popular public images are available in the Public Images folder. The search field searches the Name and Guest OS properties for VMs.

  4. Optional: Use the Name field to customize the display name for this component in the Service Catalog (maximum 100 characters).
  5. This is the component name that a user sees when completing a service request form.

  6. Click Add to Service.

To add an ARM template to the service:

  1. Click Add and choose ARM Template.
  2. In the Add ARM Template dialog, choose one of the following:
    • In the URL field, enter a URL that points to a valid ARM template. The URL must be accessible by the Azure account. The URL is stored in the Commander database and is supplied to Azure at deployment time, so that the most recent version of the template at that URL is always used.
    • Select Upload File and click Add. Browse to a template file. The file must be a text file whose format complies with the JSON standard. Commander validates that the template is in JSON format, but doesn't make a call to Azure to validate the template contents.
  3. Click OK.

    The component is automatically assigned the display name "ArmTemplate" for the request form, but you can customize the name as well as the description in a later step.

To add a new custom component type to the service:

  1. Click Add > New Component Type.
  2. Provide a name, optional description and the annual cost.

    See also Managing component types for the service catalog.

To add an existing custom component type to the service:

  1. Click Add and select the component type from the drop-down menu.
  2. If more than five custom component types already exist, you need to instead select Custom Type from the drop-down menu, and in the Select Custom Component Type dialog, select a component from the list.

When you have finished adding components, click Close to return to the wizard.

The maximum number of components in a service is 15.

If you upgraded from release 5.2 or earlier, you can choose whether to use the Blueprint model or the Legacy model:

  • If you choose the Blueprint model (recommended), you customize the Component form within the service catalog entry itself; the Form Designer is used only to customize the Service form. Component forms customized in the Form Designer are ignored for Blueprint service catalog entries.
  • If you continue to use the Legacy model, you can still customize both Service and Component forms in the Form Designer. See Adding Services to the Catalog with the Legacy Model for details on the rest of the wizard when using the legacy model. Note that the Legacy model is deprecated and will be removed in a future release.

At this point, you can click Finish and continue editing the service catalog entry later if you wish. Or, click Next to customize the service.

Component-specific pages

A subpage is added to the Add Service wizard for each component you added to the service.

On each subpage, you see tabs allowing you to customize options for each component in the service. At minimum, you see Infrastructure, Resources, Attributes and Form tabs. If you have integrated with external systems such as Puppet or Chef, additional tabs allow further customization.

Blueprint button bar

Adding elements to the Form tab allows requesters to change the default settings you configure on the other tabs.

If a user requests changes from the default settings configured in the service catalog, these changes are displayed in approval emails, on the approval landing page, and in the Request Details dialog.

Infrastructure tab

Set infrastructure options for this specific component.

Field

Description

Name

Optional: Customize the display name for this component in the Service Catalog (maximum 100 characters). A user sees the component name when viewing service details and when completing a service request form.

This name is used as the label for the Component section of the Request New Service form. Choose a distinctive component name to help requesters fill out the form.

Description

Optional: Customize the description for this component in the Service Catalog (maximum 1000 characters). A user sees the component description when viewing service details and when completing a service request form.

Deployed Name

Specify the name for deployed instances of this component.

Select Use default naming format to use the default naming convention, or specify a customized deployed name.

Important: To prevent deployment failures, VM names must adhere to Azure's strict naming convention. VM names must be between 3 and 15 characters, must contain only letters, numbers and hyphens, must start and end with a letter or a number, and must not contain spaces.

Click Configure global text replacement rules to shorten your component names. See also Setting up text replacement rules for service names.

Annual Cost
(Custom components only)

The preconfigured annual cost is displayed. You can change it in the Managing component types for the service catalog.

Completion Workflow

If you have set up one or more component-level completion workflows, you can select one from the drop-down menu.

Completion workflows allow you to specify actions to be carried out after deployment.

You can click Add Workflow to create a new workflow.

You can click Edit Workflow to edit the workflow that's currently selected in the drop-down list. Note that when you edit the workflow using this link, you're editing the workflow for all of the components or services it's assigned to.

While it's possible to create completion workflows for all component types, they are especially recommended for all custom components. If no completion workflow is assigned, a custom component moves immediately to the Completed state once approved. A completion workflow allows for provisioning steps to be carried out before the component moves to Completed. The completion workflow for a database instance, for example, could include a script to create the database.

Availability Set
(Azure VM images only)

Enter an availability set name. If the availability set you specify doesn't exist in the target location, it will be created. Availability set names are case-insensitive, must contain from 1 to 80 characters, and may contain letters, numbers, underscores and hyphens.

Annual ARM Template Cost
(ARM Templates only)

Enter an estimated annual cost for the entire resource group. Commander is unable to determine the cost of the ARM template until it's deployed, so it's important to enter an estimated cost to be displayed in the service catalog. See How Commander displays costs for ARM templates and resources to learn more.

Monitor Memory Usage
(VM templates only)

To enable memory usage monitoring, enable the option Send guest OS memory usage statistics to a storage account.

Memory usage monitoring requires additional configuration, such as specifying a diagnostic account on the deployment destination where the VM will be deployed. To learn more, see Monitoring Memory Metrics for Azure Instances.

Resources tab

This tab is shown only for VM components and allows you to set default resource values for this specific VM template. The source image disk settings are displayed in a box on the right for your reference. You can click Reset to image defaults to revert your changes.

Field

Description

Instance Type

Set the default instance type for this specific component. Only instance types compatible with the source AMI's instance type are available for selection.

Click Details to view more properties for the selected instance type.

Storage
(Azure VM images only)

Set the default storage resources for this service.

Select Managed Storage or Unmanaged Storage, as required.

Edit the suggested device name if required. Managed disk names must be unique in the target resource group. Unmanaged disk names must unique within the VM. The name must contain from 1 to 64 characters, must contain only letters, numbers, hyphens, dots and underscores, and must start with a letter or number.

Limitation: Even though you can edit the name for a managed disk, the suggested name will be used.

Specify the disk capacity in GB. Note that you can't shrink existing disks, and you can't resize existing unmanaged disks.

If you selected Unmanaged Storage for the Storage Type, choose a storage tier from the drop-down list. If you selected Managed Storage for the Storage Type, Select one of the following types from the drop-down list:

  • SSD: Premium disks (SSD) are backed by solid-state drives and offer consistent, low-latency performance. They provide the best balance between price and performance, and are ideal for I/O-intensive applications and production workloads. Premium disks are not supported for all instance types.
  • HDD: Standard disks (HDD) are backed by magnetic drives and are preferable for applications where data is accessed infrequently.

Each Azure instance type has limitations for the number and type of disks that can be added.

Subnet

Set the default network zone for this component's adapters. The component will be deployed with the same number of adapters as the source AMI. If you don't specify a network zone, a network zone is assigned during provisioning.

If a network zone assigned to a service catalog component is deleted, the service is marked as corrupt and can't be requested.

Allocation Method
(Azure VM images only)

Specify whether this service will have a public IP address.

By default, Create Public IP Address is selected. You can select either Static or Dynamic from the drop-down menu. If you don't want a public IP address to be assigned, select No Public IP Address.

Credentials

If this is a Generalized (or prepared) Azure template, you can select credentials that will allow users to access VMs deployed from this service. Generalized templates contain no built-in authentication information, as opposed to Specialized templates, which have preconfigured credentials.

Notes:

  • The use of Generalized templates is highly recommended by Microsoft.
  • If credentials are not supplied for a generalized template, either on this tab or on the Form tab, credentials must be specified during manual deployment. To prevent automated deployment failures, ensure that credentials are specified.
  • Public images are always generalized (prepared), and always require credentials.

Clicking Add Credentials allows you to create new Guest OS credentials for VMs deployed from this service. The password must be between 8 and 123 characters and must contain three of the following: a lowercase character, an uppercase character, a number and a special character.

Caution: Don't lose this user name and password, or the VM will be inaccessible.

If credentials assigned to a service catalog component are deleted, the service is marked as corrupt and can't be requested.

Attributes tab: Custom Attributes

Set custom attributes and their default values for this specific component. On the Form tab, you can allow requesters to set values for custom attributes. If you don't specify a default value, no default is set for the component. If you add an attribute on the Form tab, the default value you set on the Attributes tab is presented to the requester as the default value.

To be able to add a custom attribute for this component on the request form, you must add the custom attribute on the Attributes tab first.

If custom attributes were defined for the source VM template, they are prepopulated here. Click Delete Attribute if you don't want this attribute to apply to this service component.

Custom attributes defined for source VM templates are not displayed for multi-cloud services.

Click Add Attributes to select from the list of existing custom attributes. In the Add Attributes dialog, Form attributes and custom attributes applicable to the current component type are displayed.

To edit existing custom attributes, click Manage Attributes. On the Custom Attributes page, you can add and edit custom attributes. Click the browser's Back button to return to the Attributes tab.

If you add list-type custom attributes that are interrelated, the attributes are displayed in the order of parent to child to grandchild (if applicable). Your selection of a default value for the parent affects the selectable values for the sublist attribute. To learn more, see Creating relationships between custom attributes.

Attributes tab: Groups

Set the default groups for this component. To learn about groups, including other methods for assigning groups to new services, see Managing Service Groups.

If this component is a VM or VM template, groups assigned to the source template or VM aren't prepopulated on the Attributes tab.

Click Add Groups to select one or more group types and click OK. On the Attributes tab, select a group from the relevant drop-down menu.

To add, edit, or delete groups, click Manage Groups; when finished, click your browser's Back button to return to the Attributes tab.

Puppet tab

If you have integrated a Puppet server with Commander, Puppet environments, classes and groups are displayed on the Puppet tab for service components. Select an environment for the VM component. Once you select an environment, only those classes and groups found in that environment are available for selection.

You can select one or more default classes and groups. Ctrl-click to select multiple classes and groups.

Best Practice: Assign classes to nodes indirectly by assigning groups to nodes, rather than directly assigning classes to nodes. If you use the Configure Puppet workflow step to assign classes and variables to a node, Commander creates a group with the same name as the node and pins the node to the group. A parent group named "vCommander" is also created to contain these groups.

You can also allow users to select classes and/or groups on the Form tab. You can then use variables to return the requested values through a completion workflow. See Configure Puppet information for service catalog components for more information.

Chef tab

If you have integrated one or more Chef servers or organizations with Commander, Chef information is displayed on the Chef tab for service components.

If you have added multiple Chef servers or organizations, choose a server or organization from the Chef Organization menu. Otherwise, the Chef organization is displayed as a read-only value.

Choose an environment from the Chef Environment menu. The roles and recipes for the selected environment are displayed.

Choose one or more default roles and recipes from the Available Roles and Recipes pick-list. Ctrl-click to select multiple roles and recipes. Use the arrow buttons between the lists to move your selections into the Current Run-List. Then order the roles and recipes properly.

If you don't select default roles and recipes, no defaults are applied.

You can then use variables to return your selections through a completion workflow. See Integrating Chef with Commander for more information.

Parameters tab

This tab is shown for ARM template components only and allows you to set default ARM parameter values. The parameters and initial values displayed are retrieved from the ARM template. Parameter values are encrypted when saved in the Commander database. Parameters can be added to the request form and can also be customized during manual deployment.

Commander allows you to add ARM parameters to the request form with a combination of list-type custom attributes and variables. See Commander support for ARM template parameters: Example for more information and an example.

You can enter:

  • a literal (non-variable) value
  • a variable

Clicking vars-20x20 in any text field that supports variables opens the Variable Assistant, which allows you to select variables for the current context and provides help for each variable.

You can click Reset to template defaults to discard all changes.

Form tab

On this tab, you customize the form users see when they request this specific component. Adding elements to the Form tab allows requesters to change the default settings you configured on the other tabs.

If you leave the Form tab blank, requesters won't see a Component form; they will see only the Service-level form that's configured in the Form Designer.

Form Element

Description

Header

Adds heading text to the form.

Text

Adds explanatory text to the form.

Input Text Field

Allows the requester to enter a value, such as a note or a password.

Important: If users will enter a password on the request form, enable Hide User Input. When Hide User Input is enabled:

  • Asterisks (*) are displayed for this field value in the Request Details dialog, emails and landing pages.
  • The password is stored, encrypted, in the Commander database.
  • The plain-text password can be accessed through the approval workflow variable #{request.services[x].components[x].settings.inputField['field name']}. For example, if you set the Display Label for the Input Text Field to "Password", you would access the password in an approval workflow script with the variable #{request.services[1].components[1].settings.inputField['Password']}.
  • If a request containing a password is copied, the password is blanked out.

Dynamic List

Allows the requester to select options from one or more lists that are updated in real time. Items from an external source are retrieved using a script to populate the list items. The lists can be dependent on other form elements, so the selection of one form element can dictate the choices that are available for another list. For more information, see Adding dynamic lists to forms.

File Upload

Allows the requester to upload files during the service request process. Uploaded files are added to the VM's local directory as configured in the completion workflow using the Copy Uploaded File workflow step. This allows for more flexibility when scripting unattended installations and additional VM configurations. The file upload functionality can be used with Chef or Puppet for enhanced VM deployment and orchestration. For more information about integrating with Chef or Puppet, see Integrating Chef with Commander or Integrating Puppet with Commander.

Instance Type

Allows the requester to specify the instance type for the VM.

Select the instance types that users requesting this service will be able to choose from. Only instance types compatible with the source template's instance type are available for selection.

Note that if you have configured automated deployment, the instance types you select must be available in the target region.

Storage - Azure
(Azure VM images only)

Allows the requester to specify storage requirements for a VM component.

The Storage - Azure form element works together with the Destination form element on the Service form. If you add the Destination element to the Service form and enable the Limit Selections option, the storage tiers and network zones configured for the selected deployment destination are shown on the form, rather than those you configured for the Storage-Azure element and the Network element. The Limit Selections option ensures that users don't select a storage tier or network zone that's unavailable on the target destination.

Storage Types: Select Managed and/or Unmanaged as required. Note that due to an Azure limitation, it's only possible to change this value if you're configuring the form for a custom image with unmanaged storage.

Selectable Disk Types: If you selected Managed in the Storage Types list, you can select one or both of the following disk types:

  • SSD: Premium disks (SSD) are backed by solid-state drives and offer consistent, low-latency performance. They provide the best balance between price and performance, and are ideal for I/O-intensive applications and production workloads. Premium disks are not supported for all instance types.
  • HDD: Standard disks (HDD) are backed by magnetic drives and are preferable for applications where data is accessed infrequently.

Display Storage Tier: If you selected Unmanaged in the Storage Types list, you can specify whether the user can select a storage tier.

Selectable Tiers: If you selected Unmanaged in the Storage Types list, and you enabled Display Storage Tier, select storage tiers to make them available on the form.

Allowed Actions: Specify whether the requester can Add disks, Change disks, and Remove disks.

If you specify that the user can add disks, specify the Maximum Disk Size and Maximum Extra Disks.

If you specify that the user can change disks, specify the Maximum Disk Size.

Network

Allows the requester to change or add network adapters for a VM component by choosing a network zone. The number of network adapters shown on the form matches the number of NICs on the source template.

When this element is on the form:

  • automatically deployed VMs can only be assigned to networks in the listed network zones, so you must assign network zones
  • if multiple destinations are available to a user, with different networks configured for each destination, you must also add the Destination form element to the Service form. If a requester wants to select a network zone that's not available on the default destination, they need to be able to select another destination.

Selectable Zones: Choose one or more network zones that users may select.

Credentials

Allows the requester to specify credentials for a generalized Azure image. Generalized templates contain no built-in authentication information, as opposed to Specialized templates, which have preconfigured credentials.

If credentials are not supplied for a generalized template, either on the Resources tab or through this form element, credentials must be specified during manual deployment. To prevent automated deployment failures, ensure that credentials are specified.

The password must be between 8 and 123 characters and must contain three of the following: a lowercase character, an uppercase character, a number and a special character.

Requesters can override the credentials you specify.

If credentials assigned to a service catalog component are deleted, the service is marked as corrupt and can't be requested.

Component Name

Allows the requester to specify the name of the deployed component. The Maximum Length field allows you to change the maximum number of characters (default: 50). See also Order of precedence for deployed service names.

Important: Commander does not validate that the name entered by a requester complies with Azure's naming restrictions.

Attributes

Allows the requester to specify custom attribute values for this component.

If you added custom attributes on the Attributes tab, or if custom attributes were assigned to the source template or VM, these attributes appear under Attributes.

Click a custom attribute to add it to the form.

If the attribute is a list-type attribute and configured to apply only to forms, you can enable Select Multiple to allow users to select multiple values for this attribute.

If you add a custom attribute to the Form tab and add the same attribute to the Service form using the Form Designer, the value specified on the Service form takes precedence.

Puppet Classes

Allows the requester to specify Puppet classes for a VM component. This form element appears only if a Puppet server is integrated with Commander. If a Puppet environment was selected on the Puppet tab, only classes found in the specified environment can be selected on the form. See Optional: Allow users to specify Puppet groups on the request form for details.

Best Practice: Assign classes to nodes indirectly by assigning groups to nodes, rather than directly assigning classes to nodes. If you use the Configure Puppet workflow step to assign classes and variables to a node, Commander creates a group with the same name as the node and pins the node to the group. A parent group named "Commander" is also created to contain these groups.

Puppet Groups

Allows the requester to specify Puppet groups for a VM component. This form element appears only if a Puppet server is integrated with Commander. If a Puppet environment was selected on the Puppet tab, only groups found in the specified environment can be selected on the form. See Optional: Allow users to specify Puppet groups on the request form for details.

Chef Run-List

Allows the requester to configure a Chef run-list for a VM component. This form element appears only if a Chef server is integrated with Commander. See Integrating Chef with Commander for details.

The Chef Run-List form element can't co-exist with either the Chef Recipes or the Chef Roles form element.

Chef Recipes

Allows the requester to specify Chef recipes for a VM component. This form element appears only if a Chef server is integrated with Commander. See Optional: Allow users to set a Chef run-list on the request form for details.

The Chef Run-List form element can't co-exist with either the Chef Recipes or the Chef Roles form element.

Chef Roles

Allows the requester to specify Chef roles for a VM component. This form element appears only if a Chef server is integrated with Commander. See Optional: Allow users to set a Chef run-list on the request form for details.

The Chef Run-List form element can't co-exist with either the Chef Recipes or the Chef Roles form element.

Deployment page

When you've finished setting options for each component in the service, specify deployment options for the entire service.

Field

Description

Deploy Service Into
(ARM templates)

Select Existing Resource Group to deploy the ARM template into an existing resource group. Select New Resource Group to have Commander create a new resource group.

Deployed Name

or

Resource Group Name

(ARM templates)

When you choose to deploy the service as a virtual service, or into a new resource group, you can specify a customized name for deployed instances of this service. Select Use default naming format to use the default virtual service naming convention, or specify a customized deployed name.

Resource group names must be unique in the target region and subscription, and must contain from 1 to 64 characters, including letters, numbers, underscores, parentheses, hyphens, and periods (except at the end).

When you choose to deploy as Individual Components or into an existing resource group, it's not possible to specify a deployed name for the service.

Click Configure global text replacement rules to shorten your service names. See also Setting up text replacement rules for service names.

Deploy Type
(ARM templates only)

Select Incremental to add to an existing resource group, or Complete to replace all resources in a resource group. If you specify that the service will be deployed into a new resource group, this option has no effect.

Deployment/Startup Order

or

Deployment Order

Applies only to VM and virtual service components. Some components in a multi-tier service may require other components to be started and running before they can start.

If you choose to deploy the service as a virtual service, you specify both the order in which the components are deployed and the order in which the components are started.

If you choose to deploy the service as individual components, you specify the order in which the components are deployed.

Within each group, components are sorted in alphabetical order.

The reverse order is used for shutdown.

There is a 120 second delay between startup and shutdown of each component. There is no delay for deployment, but components are deployed serially, not in parallel.

An administrator can override this deployment order by manually deploying components in a different order.

Commander and Service Portal users with permissions can edit the start order for a deployed vApp.

Completion Workflow

If you have set up one or more service-level completion workflows, you can select one from the drop-down menu.

Completion workflows allow you to specify actions to be carried out after deployment.

You can click Add Workflow to create a new workflow.

You can click Edit Workflow to edit the workflow that's currently selected in the drop-down list. Note that when you edit the workflow using this link, you're editing the workflow for all of the components or services it's assigned to.

Placement page

When you assign a placement attribute value to a published service, you're identifying the requirements of that published service to help ensure that services are deployed to the best destination.

  1. Click Edit Placement Attributes.
  2. In the Edit Placement Attributes dialog, in the Not Required pane, select an attribute value that's provided by this destination and click Add to move it to the Required pane.
  3. Click OK to close the Edit Placement Attributes dialog.
  4. The placement attribute values you've assigned to this service are displayed on the Placement page.
  5. For a placement attribute with selectable values, use the Up and Down arrow buttons to order the attribute values by preference. For example, if a service can be deployed on either private or public cloud, but private cloud is preferable, make sure the Private Cloud attribute value is first in the list.

To learn more, see Configuring Attributes for Intelligent Placement.

Visibility page

Specify which users and groups can request this service.

Field

Description

Do not publish

The service is in the catalog but is not available for selection (temporarily disabled).

See also Permanently removing a service from the service catalog.

Publish - Global

The service is available to all organizations, users and groups.

Publish - Specific organizations, users and groups

The service is available to the specified organizations, users and groups.

Under Organizations, select an organization from the drop-down menu and click Add. Under Users/Groups, enter the login or email address for one or more users or groups and click Add. You can assign a service to both organizations and users/groups.

When an organization member requests this service, the deployed service will automatically be assigned to the organization, with the requester as primary owner.

Summary page

Review the details and click Finish.

The service that you added or changed is displayed in the Service Catalog List View or Table View.

What's next?

You can edit the service at any time by selecting it in the list and clicking Edit.

When viewing a Service Catalog entry's details, a View Source link takes you to the source template in the Applications view, or the source VM in the Infrastructure view.