Skip to main content

Create Resource Group

1. Navigate to Resource Group List

Click Resource Groups on the left menu. Then, click Create Resource Group in the top-right corner.

2. Fill in Resource Group Details

Type the Resource Group Name and provide a Description.

Click Add Metadata to expand the menu. Add the Tag Key and Tag Value.

2. Add Resources

With Fleet Control you can create resource groups in two ways:

  • Manually: By selecting specific resources and assigning them to a group.
  • Dynamically: Using expressions that add resources based on their properties.

This flexible grouping approach allows for automation and makes it easy to manage your resources.

tip

You can mix both methods to have a Resource Group with some resources selected manually and the rest dynamically.

Adding Resources Manually

  1. First, click Add Manually.

  2. Select the Resources. Then, click # Resources Selected.

Adding Resources Dynamically

  1. First, click Add Expression.

  2. Now change or provide the Expression — there is a guide below showing how to write an expression. Then, click Apply.

Tag-based Selection

Tag expressions are logical expressions that combine key-value pairs with logical operators. They allow to dynamically select cloud resources based on their tags and other properties. By creating complex tag expressions, you can quickly identify relevant resources and manage them more efficiently.

Dynamic selection means it happens at the time of plan execution. As a result, when a new resource is added to the Fleet Control and its tags match the selection criteria, it will be automatically included in the Resource Group, without having to manually update the group. Similarly, if a resource is removed or its tag is changed or deleted, so that the tags no longer meet the selection criteria, the resource will no longer be selected into the Resource Group.

tip

Dynamic selection result is also available in the Resource Group Details view.

Tag Expression Syntax

Consider an example tag expression:

project=analytics AND NOT environment=prod

A few components can be distinguished there:

  • project and environment are keys;
  • analytics and prod are values;
  • AND and NOT are logical operators.

Following grammar rules apply to these components:

  • Keys are limited to alphanumeric and +-._:/@ characters.
  • Values character set depend on whether they are quoted or not:
    • when unquoted, they can only contain alphanumeric characters and underscores (_);
    • when quoted, they can contain any character, including quotes, e.g., createdBy="joe@company.com".
  • Logical operators are case-insensitive and can also be written as symbols:
    • Conjunction: AND, &;
    • Disjunction: OR, |;
    • Negation: NOT, !.
  • Expressions can be grouped using brackets (( )).
  • Values can be specified as a list separated by commas, such as name=app,db. This is a shorthand syntax for a logical alternative, so the example given can also be written as name=app OR name=db. However, there is a caveat. If one of the values is quoted, all of the values must be quoted as well. Quoted values cannot be mixed with unquoted ones:
    • Incorrect syntax: name=app,"worker node";
    • Correct syntax: name="app","worker node".

Examples

  • The following tag expression will select resources that have an env tag set to dev value, or an env tag set to prod value, but at the same time, the patch tag must not be set to no:

    env=dev OR (env=prod AND NOT patch=no)

  • This is the same expression as the one above, but written using alternative operators:

    env=dev | (env=prod & !patch=no)

  • To match a tag value with spaces, you can use quotes:

    key="value with spaces"

  • Here, a shorthand OR syntax is used to match multiple values:

    importance=big,critical OR name="Important VM"

  • This example shows how to match tag value with quotation marks by escaping them with a backslash:

    key="what is a \"tag expression\"?"

Virtual Tags

Fleet Control automatically assigns virtual tags to resources based on their or user-defined properties. This is to facilitate resource filtering in tag expressions.

For example, to select AWS resources running in the eu-west-1 region, you can use the following tag expression:

NORDCLOUD-FLEET-CONTROL:PROVIDER=AWS AND NORDCLOUD-FLEET-CONTROL:REGION=eu-west-1

You can also use the ENVIRONMENT virtual tag to select only the resources that belong to particular Cloud Account(s).
First, you have to set a proper environment name in the Cloud Account configuration. The tag will be set on Fleet Control resources after the next scan. Then, you can reference the NORDCLOUD-FLEET-CONTROL:ENVIRONMENT virtual tag in a tag expression to select resources with the specified value.
For example, if you set the Environment in the Cloud Account(s) to production, including NORDCLOUD-FLEET-CONTROL:ENVIRONMENT=production in the tag expression will select only the resources from the production environment:

NORDCLOUD-FLEET-CONTROL:ENVIRONMENT=production AND role=worker