Your browser was unable to load all of the resources. They may have been blocked by your firewall, proxy or browser configuration.
Press Ctrl+F5 or Ctrl+Shift+R to have your browser try again.

Azure customization & side selection #4206

pendor ·

I have some questions about the Azure cloud support in Quickbuild, currently running v9.0.29. So far testing with cloud profiles has gone quite smoothly. Thank you as always for creating such a reliable and easy to figure out system!

  1. I'd like to be able to select a size of cloud build agent based on the build I'm running. We do some security scans with Fortify that require a gargantuan amount of RAM to complete, versus other "regular" builds that could use a much less costly Azure VM. I was able to build a bit of a kludgy solution to this where I use the systemd ExecStartPre attribute to insert the total RAM and CPU core count into the agent's attributes.properties file before starting the service. I can then create resources on the Quickbuild server with expressions like:
Long.valueOf(node.getAttribute("total_ram", "0")) >= 59000000000  
  && Long.valueOf(node.getAttribute("total_ram", "0")) < 100000000000  
  && Integer.valueOf(node.getAttribute("num_cores", "0")) == 8

That gets me an 8 core box with 56GB of RAM which works out to a Standard_D13_v2. That works, but it's not super elegant. It would also be nice to select premium storage (DS versus D) type VM's in certain situations. Is there any way to name a specific cloud profile to be used for a particular build? I can't seem to find it.

  1. My Azure administrators use tags on all Azure resources to calculate billing, etc. Is there any way to specify custom tags when the Azure VM's & storage are created by QuickBuild? For example, we want to set things like "Project=CI" and "Owner=myteam@domain.com".

  2. The VM Sizes listed in QuickBuild when creating cloud profiles for Azure appear to be out of date. None of the "v3" type VM's are listed in the drop down box. The box is also unsorted which makes finding the desired size rather difficult. Would it be possible to get the newer v3 VM types added and to have that box sorted?

Thanks in advance,
Zac Bedell

  • replies 3
  • views 79
  • stars 0
robinshen ADMIN ·

For question 1:
It is possible to use different profile with different builds. To do this:

  1. define an empty user attribute node_size in server node from grid active nodes tab
  2. define a resource say "big_node" with provider set to match all nodes with attribute node_size equal "big"
  3. define a resource say "normal_node" wit provider set to match all nodes with attribute node_size equal "normal"
  4. edit appropriate step of builds requiring big nodes to run on nodes with resource "big_ndoe"
  5. edit appropriate step of builds only requiring normal nodes to run on nodes with resource "normal_node"
  6. create normal Azure profile with profile attributes node_size set to "big"
  7. create big Azure profile with profile attributes node_size set to "normal"

For question 2:
Will get this into next patch release. Please watch below issue:

For question 3:
Please upgrade to latest QB version, which allows one to specify node size instead of choosing from a pre-defined list

pendor ·

Thank you! I completely missed being able to set per-node attributes on the Cloud profile. I'd been trying to create them via scripting in the base image before the QuickBuild agent was started. That's much more straight forward.

Thank you for the enhancement to add tagging.

I can now access the v3 VM sizes in QB 9.0.38. Thank you for that as well.

One more related thing: Would it be possible to add an enhancement to use premium storage as an option when creating VM's? Some of the processes I'm running on these nodes are very IO intensive. I'd like to be able to use Azure's SSD offering on the Standar_D##s_v3 VM types to improve IOPS.

robinshen ADMIN ·