In Cloud Assembly, tags determine how and where resources are allocated to provisioned deployments based on capabilities on resources and constraints on blueprints. These capabilities and constraints are expressed through tags, and Cloud Assembly resolves them during the provisioning process. This process is known as the provisioning funnel.

The Cloud Assembly provisioning funnel uses a specific order and hierarchy in resolving tags to create provisioned deployments. You need to understand the basics of this funnel so that you can reliably understand and predict how your deployments will occur.

The following list summarizes the basic functionality of the provisioning funnel:

  • Cloud zones are filtered by several criteria, including availability and profiles; tags in profiles for the region the zone belongs to are matched at this point.

  • Zone and compute capability tags are used to filter the remaining cloud zones by hard constraints.

  • Out of the filtered zones, priority is used to select a cloud zone. If there are several cloud zones with the same priority, they are sorted by matching soft constraints, using a combination of the cloud zone and compute capabilities.

  • After a cloud zone is selected, a host is selected by matching a series of filters, including hard & soft constraints as expressed in blueprints.

The following table shows a more detailed sequential description of the provisioning funnel.

Table 1.

Stage

Provisioning Steps

Notes

1

Load all cloud zones per project.

Filter our all cloud zones that are not in the project

2

Filtering cloud zones

Done in parallel for all cloud zones.

2.1

Filter by their hosts/availability zones power state.

Zones that contains no powered on hosts are filtered out.

2.2

Filter by capacity

Zone with full memory or instances are filtered out.

2.3

Filter by profile: image, flavor, or storage

Tags in storage are accounted for.

3

Filtering hosts

Filter hosts from the remaining cloud zones.

3.1

Filter out powered-off hosts

3.2

Filter by hard constraints

This operation evaluates host capability tags and zone capability tags as a union. They should meet all hard constraints set in the request.

3.3

Filter hosts by machine to machine affinity filters

Constraint if a machine should be together with another machine on the same host.

3.4

Filter hosts by machine to machine anti affinity filters

Constraint if a machine should NOT be together with another machine on the same host.

3.5

Filter and sort hosts by capability of provisioning clustered machine.

Applies if cluster is specified.

3.6

Filter hosts by ability to satisfy network requirements.

3.7

Filter hosts by ability to satisfy storage requirements.

3.8

Select host by cloud zone provisioning strategy.

  • Binpack - Select the most busy host.

  • Spread - Select the least used host.

  • Random - Select the host randomly.

4

Out of all zones that have computes remaining after the host filters as described above, select the one with highest priority

4.1

If multiple zones have the same priority, sort by matching soft constraints.

If there are multiple zones with the highest priority and matching soft constraints, one is chosen at random.

5

For the selected cloud zone, select a host according to the host filter rules as described above.