In Cloud Assembly, capability tags enable you to define deployment capabilities for infrastructure components. Along with constraints, they function as the basis of placement logic in vRealize Automation.

You can create capability tags on compute resources, cloud zones, images and image maps, and networks and network profiles. The pages for creating these resources contain options for creating capability tags. Alternatively, you can use the Tag Management page in Cloud Assembly to create capability tags. Capability tags on cloud zones and network profiles affect all resources within those zones or profiles. Capability tags on storage or network components affect only the components on which they are applied.

Typically, capability tags might define characteristics such as location for a compute resource, adapter type for a network, or tier level for a storage resource. They can also define environment location or type and any other business considerations. As with your overall tagging strategy, you should organize your capability tags in a logical manner for your business needs.

Cloud Assembly matches capability tags from cloud zones with constraints on cloud templates at deployment time. So, when creating and using capability tags, you must understand and plan to create appropriate cloud template constraints so that matching will occur as expected.

For example, the cloud zone section in the WordPress infrastructure example included with the documentation describes how to create dev and test tags for the OurCo-AWS-US-East and OurCo AWS-US-West cloud zones. In this tutorial, these tags indicate that the OurCo-AWS-US-East zone is a development environment, and the OurCo-AWS-US_West zone is a test environment. If you create analogous constraint tags in cloud templates, these capability tags enable you to direct deployments to the desired environments.

Tag inheritance

Cloud Assembly uses tag inheritance to selectively propagate tags on cloud accounts to other related resource. Specifically when you create tags on a cloud account, they also become effective on all storage profiles and compute resources that correspond to that cloud account.

Note: Tag propagation behavior does not apply to storage profiles. vRealize Automation will not automatically select the constraint for storage profiles, so users must manually add the required constraint tag for it to be selected and applied to storage profiles.

The following example illustrates how tag inheritance works.

Compute resources

  • Cluster1 with tag cluster-1
  • Cluster2 with tag cluster-2
  • Cluster3 with tag cluster-3
Vm resoruce:
  properties:
    constraints:
      - tag: 'cluster-01'

Storage profiles

  • Profile 1 for Datastorecluster1 with tag storage-01
  • Profile 2 for Datastorecluster2 with tag storage-02
  • Profile 3 for Datastorecluster3 with tag storage-03
vm-resource:
  properties:
    storage:
      constraints:
        - tag: 'storage-01'

Cloud Account

vSphere cloud account with all three of the tags: cluster-1, cluster-2, and cluster-3

While consolidating tags on storage profiles and compute resources, Cloud Assembly also takes into account the cloud account level tags. Hence, the effective tags on all the storage profiles and computes are cluster-1, cluster-2 and cluster-3 and this is why when we provide any of these tags as shown in the preceding example, all the storage profiles and computes become eligible for placement and the machine can land on any of the compute hosts.

As a best practice, to minimize unexpected results and tag clutter, any given tag should be applied only at the cloud account level if that tag is an appropriate capability for all subordinate compute and storage resources.