Today, we have released a new version of PowervRA, 4.0.0 with support for vRA Cloud and vRA on-premises version 8.0. The observant among you will notice that we’ve incremented the PowervRA version from 3.7.0 to 4.0.0. We’ve done this since there is a significant breaking change.
The API for vRA Cloud / 8.0 is completely different to that which exists for vRA 7.x and earlier. If you’ve been with the product for a while you’ll be aware of the pain challenge it has been to work with since inception due to the split brain nature of the product, more info here and here. Thankfully that has gone away with the latest release, however it left us as maintainers of PowervRA to decide whether to maintain support for both sets of APIs in the same PowervRA version.
Ultimately, we took the decision to only support the API in vRA Cloud and 8.x going forward, consequently PowervRA 4.0.0 does not support vRA 7.x and earlier.
If you wish to continue to use PowervRA with vRA 7.x and earlier it is possible by using PowervRA 3.x, currently 3.7.0. You are able to install specific versions of PowerShell modules from the PowerShell Gallery by using the RequiredVersion parameter. So for example to install PowervRA 3.7.0:
We will continue to maintain a version of PowervRA that supports vRA 7.x, however to set a fair level of expectation please remember that this is a community based project with limited resources, both in terms of developers and lab environments and our focus going forward will be on PowervRA version 4.x and later.
We’ve done our best to communicate this in advance of release via Twitter and also the VMware Code Slack channel.
If you are aware of anyone likely to be impacted by this change, then we would be very appreciative if you would communicate it to them.
Back when Craig and I first developed PowervRA for release in March 2016, it was primarily formed from our own needs since we were working on vRA projects where a lot of automation was required. Since that time, and particularly in the last couple of years, the career focus for both of us has moved away from vRA and our ability to significantly develop PowervRA and deal with logged issues has diminished somewhat. At the same time interest in PowervRA has increased, over 26k downloads currently on the PowerShell Gallery!
Acknowledging that, we recently sought out some extra assistance and that has been successful in helping us get this new version out and potentially can help support the previous version in the future. Also, by chance I happened to spend some time on a work project recently based around vRA Cloud which has meant I’ve had some hands on experience and been able to make some contributions.
TBH I think there is enough work for an individual to keep that person occupied full time on this project, for both PowervRA versions, for at least a number of months, but realistically that is not going to happen. We do of course welcome Pull Requests for either version and now have more resource on-board to have a better chance to turn them round into new releases.
With that said, here’s a few tips on getting started with the new version! Note these are all around vRA Cloud since that is what I’ve had access to. I don’t believe there should be that much difference to the on-premises version, other than around how to make the initial connection.
Install the latest version of PowervRA:
Observe the available functions, currently 36:
In order to authenticate with vRA Cloud an API token is required (for vRA on-premises it is different, check the help for Connect-vRAServer for details). To generate one, navigate into the management portal and your account profile. On the API token page, generate a new token with the appropriate access requirements:
Save the token somewhere safe so that is is available for use with PowervRA.
Using the API token, make a connection to vRA Cloud:
The Get-* functions are typically a good way to get a feel for what is available. For example to get a list of all projects in vRA Cloud:
You’ll notice above that in the initial 4.0.0 release there are 36 functions, so there is obviously a lot of the API not currently covered, particularly in comparison to the previous release which has over 100 functions for vRA 7.x. We hope to build up this coverage over time, in the meantime remeber that Invoke-vRARestMethod is your friend.
We build all of the PowervRA functions around this helper function, so if there is a part of the API that is not covered by an existing function, you can use Invoke-vRARestMethod to fill in the gaps in the meantime.
For example we currently have no function coverage around Blueprints. However, by looking at the vRA API documentation there are examples for working with Blueprints. So the following code using Invoke-vRARestMethod would get you details about Blueprints:
Thanks for your interest in PowervRA. We hope you find the new version useful and we look forward to taking it further. Providing feedback via issues and code contributions via pull requests would be a great way to help us do that.