VMware Cloud Community
mckennapl
Contributor
Contributor

Question on Linking Output to Input parameters for XaaS Components

Hello and happy November!

I'm relatively new to the vRA arena and have been struggling with an issue in one of our workflows for a while. We have a XaaS component that relies on the output of one of the previous XaaS components to use as an input. Before the workflow kicks off, Pool1 doesn't exist, so I can't add a member to it in the next component in the workflow. Here it is in a nutshell:

*A pool is created without any members, the pool name is Pool1

*A pool member, PoolMem1 is created and needs to be added to Pool1

The problem comes when I'm trying to specify that PoolMem1 needs to go into Pool1, because Pool1 doesn't actually exist yet; it's created during the workflow. I need to map the output of the first component (in this case Pool1), to the second component in the workflow, so that PoolMem1 has a pool to go into. This seems like such a common scenario that I feel like I'm totally missing something that should be very obvious to me.

Anyone have experience with this? I really appreciate any insight!

Thanks!

3 Replies
mhampto
VMware Employee
VMware Employee

0 Kudos
mckennapl
Contributor
Contributor

I appreciate the link. I did see this, but it's quite old (4 years), and is targeted toward vRO. This may be the road I have to head down, but was really hoping it was easier/more obvious in vRA 7.3.

0 Kudos
jasnyder
Hot Shot
Hot Shot

Can you expand on what you're trying to do here?  What have you tried that didn't work?

It kind of sounds like you have a composite blueprint.  Within that blueprint you have two XaaS components you've added to the canvas.  So you want to call XaaS component 1, which will create a pool, then XaaS blueprint 2 which will take the output of blueprint 1 and add a member to that pool?

I assume you are also provisioning one or more VMs as part of this blueprint.  So the intent is to add the VM(s) you're provisioning to the pool, after creating the pool first?

If what I describe above is the correct scenario, then I think what you should do is move your workflows to the event broker system.  You would create a subscription for workflow 1 (create pool) to happen upon machine provisioning (or maybe machine provisioned if you want it to happen after the machine is done building) for the blueprint(s) you want this behavior to happen on.  That workflow would read the information from the request and create the pool, then call the second workflow to add the machine to the pool from within the first workflow - this would be a modification of the vRO workflow.

I assume you don't want a separate pool for each VM, so perhaps you want to want to make the main workflow be "Add member to pool" taking a member and a pool name as input.  If the pool doesn't exist, create it first, then add to it, but if it does already exist, just add to it.

Alternatively, you could keep the create pool workflow as an XaaS component and make your machines dependent on it so it runs before kicking off provisioning tasks.  Then use the event broker subscription idea to grab machine info and add it to the pool after it finished provisioning.

As an aside, I'm not sure what the construct of pool is in this scenario.  Is it a logical grouping you created or something in a particular product/system you're interacting with?

0 Kudos