Tagging and Taxonomy in Red Hat CloudForms

Rackspace recently announced support for Red Hat CloudForms as part of our Rackspace Private Cloud Powered by Red Hat OpenStack Platform managed services offering.

To help our customers leverage the power of this enterprise hybrid cloud management platform, we are producing a series of technical content on using CloudForms. This article is focused on the importance of tagging your cloud resources.

Before we start, let’s define the terms ‘tag’ and ‘taxonomy’ as they are used in this blog post:

  • Tag (CloudForms): descriptive terms defined by a Red Hat CloudForms user or the system used to categorize a resource.
  • Taxonomy: the branch of science concerned with classification.

Why tags?

Tags allow you to create a customized and searchable index for your resources. Tags can also drive a lot of the functionality inside the product. As you create new virtual machines using CloudForms provisioning facilities, you’ll want to use tags to categorize them, using whatever taxonomy makes sense for your organization. For example, as a part of the provisioning process you can tag the new VMs by environment such as test, development or production.

If you add an existing VM infrastructure, CloudForms will discover VMs that were spawned outside of the purview of CloudForms. Once they’re discovered, tags can be applied to classify them according to the taxonomy you’ve chosen for your environment.

Smart State Analysis CloudForms can discover configuration changes to one or more entities. Once these changes are discovered you can automatically attach tags according to the Taxonomy you use. And once tagged, you can perform select actions depending on what tags are applied to the items.

How to plan, implement

Let’s say you just finished installing CloudForms into your environment and have it connected to all of your providers. Your private cloud may consist of VMware, RHEV, OpenStack and maybe containers. Your public cloud could include Amazon AWS, Microsoft Azure and Google GCE.

At this point you should start to implement your tag taxonomy. It is critically important to think about and plan your tagging taxonomy before you start the process of implementing CloudForms in your organization. A good start would be to interview stakeholders from different departments to understand what makes sense for your organization.

CloudForms comes with a number of tag categories and tags out of the box which are very useful and can be used as a starting point to tag your environment. The included tags and categories can probably provide most organizations what they need. However, you can always create custom tags and tag categories to better fit your specific environment.

How to use them

Tags can be used with almost every facility within CloudForms. Here are few examples:

  • Grouping resources when producing capacity and utilization reports and charts
  • Applying control actions and policies
  • Applying security and view scopes for the different resources in the environment
  • Within Automate for performing automation on resources that have a specific tag or tags
  • During provisioning to decide on Auto-Approval (by tagging groups)
  • Filtering items that users can see in CloudForms (Provisioning Scope filter by group)

What to watch out for

With great power comes great responsibility. Although tagging is powerful and useful, it is possible to over-tag your environment. Remember, through discovery, CloudForms is already aware of a lot of information about your environment which is stored as resource properties in the VMDB. Use these instead of creating new tag categories if the property already exists.

Also, the more tags you create, the more you have to manage. To reduce tag management overhead, use Automate or policies to apply tags. These are easier to maintain, and you minimize the risk for human error. Managing tags through Automate is outside of the scope of this paper and will be covered separately in another article.

Here are a couple real-world examples:

View Scoping: You want to allow your DBA team to view only those VMs or instances that run a Postgres DB. To do that, use Smart State Analysis results to discover which of the VMs or Instances have the Postgres DB installed. Using Policy, you can automatically tag the applicable VMs or Instances. You then set a filter on the DBA team’s group in CloudForms for this tag. This will limit the DBA team to view only the VMs or Instances that have this tag applied.

Provision Scoping: In the same way that you can limit what existing resources a group can view, you can also limit what the group can see from a provisioning standpoint. WIth the proper provisioning scope applied, a member of a group will be limited to only see specific datastores, hypervisors, clusters, and templates/images.

Creating and applying tags

CloudForms allows you to create your own set of tags and tag categories. After creating these values, you can apply them to your resources. There are two kinds of tags:

  • Company tags are under Settings → Configuration, click on Settings, select Region, then My Company Tags (Note: If you modified the Company Name, it will appear on the tab instead of My Company).
  • System tags are assigned automatically by Red Hat CloudForms.

Creating a tag category

  1. Navigate to Settings → Configuration.
  2. Click on the Settings accordion, then Region, then My Company Categories
  3. Click the first line in the table, <Click on this row to create a new category> or click Add under Actions. You will see a screen like this:

Use Name to create a short name that refers to category in the VMDB. Note that the Name and Single Value fields cannot be changed after the category has been added. You will need to delete and recreate the category.

  • Description: give a brief explanation of how the category should be used. This shows when you try to add a value to the category.
  • Long Description: add a detailed explanation of the category.
  • Show in Console: set to ON when the category is ready for use in the console. You can use OFF when you want to populate values for the category before exposing it to users.
  • Single Value: set to ON for categories that can only have a single value assigned to a resource. For example, a virtual machine can only be assigned to one location, but could belong to more than one department. This cannot be changed after the category is created.
  • Capture C & U Data by Tag: set to ON for the ability to group capacity and utilization data by this tag category. To use this, be sure to assign this tag to all the resources that you want to group by.
  • Click Add.

It’s important to note that if no values are created for a category, you will be unable to assign a value from that category nor be able to filter by that category.

Deleting a tag category

  1. Navigate to Settings → Configuration.
  2. Click on the Settings accordion, then Region, then click on the My Company Categories
  3. Click Delete under the Actions column for the category you want to delete.
  4. Click OK to confirm.

Note that when you delete a tag category, the category values are removed, and any tags from the category are unassigned from all resources.

Creating a company tag

  1. Navigate to Settings → Configuration.
  2. Click on the Settings accordion, then Region, then click on the My Company Tags
  3. In the Choose a Category area, select a category from the Category list. (Note that some categories only allow one value to be assigned to a resource.)

For some databases such as PostgreSQL, tags are case sensitive. For example, filtering by Linux in title case give you different results from filtering by linux in lower case.

Click Add under the Actions column, and type a Name and Description for your new value.

Click Add once again to add the new entry to the table.

Deleting a company tag

  1. Navigate to Settings → Configuration.
  2. Click on the Settings accordion, then Region, then click on the My Company Tags tab.
  3. Click Delete under the Actions column next to the tag to delete it (Note that when you delete a tag, the tag is also deleted from any resource to which it was assigned).
  4. Click OK to confirm.

Assigning a company tag to an OpenStack instance

Navigate to Compute → Cloud → Instances.

  1. Select the instances/instances you wish to apply the tag to.
  2. Click on the Policy button and select Edit Tags.
  3. Select the Tag Category from the left dropdown, then select the Tag from the right dropdown. After you select the values, the line will blink 3 times.
  4. Click Save to confirm.

To verify that the tag was applied, click on one of the instances you applied the tag to, and on the bottom right in the Smart Management section, you should see your tag:

Applying provisioning scope

  1. Use the Provisioning Scope category and create a tag such as DBA.
  2. In the DBA group modify the group’s filter (do not tag the group!) so Provisioning Scope DBA is selected.
  3. Click Delete under the Actions column next to the tag to delete it.
  4. Apply the DBA tag to the resources the group should see. For instance, apply Provisioning Scope DBA tag to a hypervisor, cluster and image/template.

By implementing tagging in the Rackspace Private Cloud Powered by Red Hat OpenStack platform, customers can more effectively view and manage their cloud resources.

Free strategy session

We have successfully scaled OpenStack to thousands of nodes and operate OpenStack clouds for some of the largest companies in the world. Talk to our proven experts about your business objectives and we’ll strategize with you the solutions needed to achieve them — no strings attached. SIGN UP NOW:

  • Was this article helpful ?
  • Yes   No
Asaf is the director of Specialized Solution Architects and Enablement at Rackspace, where he’s worked since September 2016. He leads a group of highly skilled solution architects who work on complex opportunities and deals. His team is also responsible for creating technical enablement material used to train and expand the knowledge of groups and individuals across the company. Before Rackspace, Asaf spent almost seven years at Red Hat as a senior manager of Infrastructure and Cloud Enablement Solution Architects, responsible for creating and delivering enablement material to employees and partners. He has strong passion for open source technologies and holds RHCA, RHCSS and OpenStack certifications from Red Hat.