What’s New in Purity 6.0: Tagging

Ah yes. Tagging. The one above them all. A simple feature, but nonetheless powerful.

We have actually had tagging in Purity for quite some time. But it was hidden–we initially used it only for Virtual Volume metadata. Though there are a ton of use cases for tags beyond vVols–use cases I know customers need, and use cases that I need.

So in Purity 6.0 we added tagging–the ability to assign key value tags to a volume or a snapshot. As of Purity 6.0, these tags are available in the CLI or the REST API–GUI support is upcoming. For this post I will walk through using the CLI to demonstrate the tags, stay tuned for information on using the REST and specific scripting tools.

Tags involve a few parts:

  • Key–the name of the tag
  • Value–the data of the tag
  • Namespace–allowing for different groups/integrations to create tags without name collisions
  • Copyable–is the tag copied when you create a copy of that volume?

Creating a Tag

Okay step one is to create a tag. But let’s create a volume first.

To then create a tag you need to at least specify the volume name, the key and the value:

purevol tag codytagVol-01 --key owner --value cody

By default, it will go into what is called the default namespace. You can also specify a new namespace. A namespace is created the first time that namespace is specified:

purevol tag codytagVol-01 --key owner --value cody --namespace cody-tags

Listing Tags

How does one list tags? Well a few ways.

First just listing the tags in the default namespace.

purevol list --tags

If you don’t list a namespace, you will only see tags in the default namespace. If you want to see a specific namespace you can add it to the query (case sensitive for namespaces):

purevol list --tags --namespace Geography

You can comma separate namespaces

purevol list --tags --namespace Geography,default

Or use wildcards:

purevol list --tags --namespace *

You can query by key name:

purevol list --tags --filter "key='owner'"

Or value:

purevol list --tags --filter "value='cody'"

Or both:

purevol list --tags --filter "key='owner' and value='cody'"

If you want to list tags on snapshots, add the –snap switch

purevol list --tags --snap

Copyable

There is the copyable flag–this means that when you copy the volume the tags will go with it (or not).

By default tags are copyable. By adding the the –non-copyable switch it will make it not copyable:

If you create a snapshot, all tags (copyable or not) are inherited by the snapshot:

But if you copy a volume (or snapshot) to a new volume, the tags with copyable set to false, will not be copied:

Editing Tags

How do you edit a tag? You can change the value, but not the namespace or key. To change the value just basically rerun the tag operation with a new value:

To change a key, remove the tag, then create it new. See below for removing a tag.

Removing Tags

To remove a tag, specify the volume and the key (and optionally namespace)

purevol untag codytagVol-04 --key app

You can also remove tags from a snapshot, but you do not need to add –snap for the untag operation:

Replication

Yes tags are supported with all forms of replication! ActiveCluster, ActiveDR, Protection Group, Offload to NFS/Object. You tag the source volume the snapshots will inherit them and be replicated to whereever. For ActiveCluster they will be immediately there on both arrays for that volume or snapshot. For ActiveDR they will be replicated to the target in seconds and will appear on their DR target volumes in a matter of minutes.