One of the things that we are often asked by our customers that are using vRealize Automation 8 (vRA8) in their environments is how can OneFuse help influence Deployment names in vRA8.
Out of the box, vRA8 requires that every request that is submitted have a deployment name entered as part of the request form. This name has to be unique, and as far as we have been able to identify there isn’t an easy way to standardize this deployment name, even with custom code. This approach can be problematic in that allowing end users to specify names for deployments can often lead to resources that aren’t named in a standardized fashion and that makes identifying certain aspects of the deployment immediately identifiable.
With the release of OneFuse 1.2 in January of 2021, however, this problem is easily solved by leveraging the new custom resources feature available as part of the OneFuse Upstream Provider Package for vRA8. As part of the 1.2 release we have included the ability to consume any of the OneFuse policy driven modules natively from the vRA8 canvas (note that this is a beta feature as of the time of this writing).
Create the Deployment Naming Policy in OneFuse
Create a Naming Sequence
With the OneFuse Naming module, you are capable of creating unique sequences based on the policy that you define. These sequences are capable of leveraging decimal, hexadecimal, octal and pattern sequences.
We need to first define our naming sequence that will then be used in our naming standard defined in the next section.
- In OneFuse, navigate to Modules > Naming
- Under the Naming Sequences section, select the + Create button
Create a Naming Policy
Set Up Deployment Name in the Cloud Template Canvas
Now that we have defined the OneFuse Naming Policy for deployment names, we can head over to vRA8 to consume the naming policy.
- Login to vRA8 and navigate to Cloud Assembly > Design > Cloud Templates
- For this particular example I am going to create a blueprint from scratch, but this logic can be used for ANY vRA8 blueprint that you want to standardize the output deployment names for.
- Name the blueprint and assign it to a project.
- In the left hand menu, scroll all the way to the bottom and under Custom Resources select the OneFuse:DeploymentName element and drag and drop it onto the canvas.
- When you first drop one of the OneFuse custom resources on to your canvas, the required properties will show up. Here is what the yaml editor should look like to start:
- But we also need to be able to feed in the values that the deployment naming sequence is expecting. To do that, we can add the optional templateProperties property.
- The templateProperties property will allow you to specify single properties that you want to pass to OneFuse for invoking policies, but it also allows you to leverage Static Property Sets and the OneFuse Property Toolkit for this as well, but we are going to keep this post fairly straightforward and just pass the properties in as expected.
- I am going to define the deployNameRequestSource and deployNameApp properties statically, but pull in the value for the deployNameEnv property from my blueprint inputs. All said and done, here is what the yaml now looks like:
Submit a Request
Now all that is left to do is submit a request and test that everything works as expected. You will notice that even though the Deployment Name is still requested (as far as I can tell this is always a mandatory field in vRA8) that I am just mashing a few keys for the deployment name. In this example, I don’t care what the name is input as because the OneFuse Deployment Name policy will overwrite the requested deployment name with the standardized name that I have defined in my policy.
Finally, I select my test environment and then submit the request
We see within a few seconds that the new deployment name has been generated and has overwritten the meaningless deployment name that was originally entered and is now standardized to tell me something about the actual deployment while guaranteeing that it is a unique value.
From the OneFuse console, we can also see that a managed object was created in OneFuse to track the deployment name and to give us an audit trail of everything that we created.
There you have it. A simple and easily consumable method to add standardization to your vRA8 deployment names.
Want to try out OneFuse with vRA for yourself? Check out the WWT Hands on Lab Accelerating vRealize Automation 8.x with OneFuse.