Adding GCP Services to the Catalog

Access through:

Configuration menu > Self-Service > Catalog tab

Available to:

Commander Role of Superuser, Enterprise Admin

GCP published services can include deployment configurations as well as custom components. Through deployments, you can use Commander to provision any resource supported by Google Cloud Deployment Manager.

Notes:

  • Specifying parameter values for a deployment configuration isn't yet supported; in this release, all parameter values must be specified in the configuration itself.
  • Multi-cloud services aren't yet supported for GCP.

See also:

To add a new service:

  • On the Catalog tab, click Add Service.

    You can also copy an existing service as a shortcut.

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.

Components page

On this page, you can add GCP deployment configurations and custom components to the service.

The maximum number of components in a service is 15.

To add a GCP deployment configuration to the service:

  1. Click Add and select GCP Deployment Configuration.
  2. In the Add GCP Deployment Configuration dialog, browse to a YAML configuration file or a ZIP file.

    The maximum uncompressed size of a deployment configuration is 1 MB.

    If you upload a YAML file, it must not import external files.

    If you upload a ZIP file:

    • The ZIP file must include:
      • one YAML configuration file, at the root level. If your ZIP file contains multiple YAML files, Commander uses the YAML file whose name matches the name of the ZIP file.
      • all Jinja or Python template files imported by the YAML configuration file
      • any schema files for the templates, in JSON format
    • File and directory names must include only simple ASCII characters.
    • The ZIP file must use relative paths, not absolute paths (for example, network/firewall.py, not C:/network/firewall.py).
    • You must replace all backslashes in references and imports with forward slashes. Commander doesn't support the use of backslash as path separator when uploading a ZIP file. For example, a YAML file with the following imports will generate the error "GCP deployment configurations must use forward slash as path separator":

      imports:
      - path: network\network-template.jinja
      - path: network\firewall-template.jinja

      When the imports section is edited as follows, validation is successful:

      imports:
      - path: network/network-template.jinja
      - path: network/firewall-template.jinja

  3. Click OK.

    The YAML file and any schema files are parsed, and basic validation for size and schema imports is performed. Commander displays an error if any files imported by the YAML and schema files are missing.

    The new Deployment Configuration component appears on the Component Blueprints page.

  4. Add more deployment configurations or custom components to the service as required.

Component-specific pages

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

On each subpage, you see tabs allowing you to customize options for each component in the service.

Blueprint button bar

Adding elements to the Form tab allows requesters to change the default settings you configure on the other tabs. If a requester changes your configured defaults, the changes are displayed in approval emails, on the approval landing page, and in the Request Details dialog.

Specifying parameter values for a GCP deployment configuration is not yet supported; in this release, all parameter values must be specified in the configuration.

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).

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 this deployment when it's provisioned.

Select Use default naming format to use the default global naming convention for virtual services, or enter a customized name.

To prevent deployment failure, your naming convention must adhere to GCP's strict naming rules. GCP mandates that deployment names comply with RFC 1035. Names must contain between 1 and 63 characters and must match the following regular expression:

[a-z]([-a-z0-9]*[a-z0-9])

Names must start with a letter, end with a letter or digit, and have as interior characters only letters, digits and hyphen.

If you don't want to edit your global naming convention to adhere to GCP's strict rules, we recommend customizing the name in the service catalog entry instead. The name specified in the service catalog takes precedence over the global naming convention.

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

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're especially recommended for 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.

Completion workflows don't act on a GCP Deployment's resources (that is, its child VMs). Completion workflows act only on the GCP Deployment component itself.

Annual Deployment Cost

Enter an estimated annual cost for the entire deployment. See How Commander calculates costs for deployment configurations to learn more.

You can click Google Cost Calculator to go to GCP and calculate the cost of all resources in the deployment.

The GCP cost calculator provides a monthly cost, while Commander requires an annual cost.

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.

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.

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 be entering 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.

Component Name

Allows the requester to specify the name of the deployment. 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 doesn't validate that the name entered by a requester complies with GCP naming restrictions. To prevent provisioning failure, if you add this element to the request form, we recommend also adding a Text form element to explain GCP's naming restrictions. Here's some text you can copy/paste into the Text form element:

Names must contain between 1 and 63 characters, start with a letter, end with a letter or digit, and have as interior characters only letters, digits and hyphen.

Attributes

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

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

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.

Deployment page

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

Field

Description

Deployment Type

Specify the policy for creating the resources in this deployment.

With the default selection, Create Or Acquire, the deployment acquires any existing resources in the target project and creates the rest.

Select Acquire if you have a number of resources already in your project, and you want to manage them together, as a single deployment.

Notes:

  • Commander does not support the Create policy, which GCP has released as a Beta feature.
  • GCP best practices dictate that a deployment should not acquire resources from other deployments.

Deployment Order

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

Within each group, components are sorted in alphabetical order. Components are deployed serially, not in parallel.

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

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 is displayed in the Service Catalog List View or Table View.

What's next?

Users with visibility of the service can now submit a service request.

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