VMware cloud plugin - different sizing of agents images

Hello,

Our scenario: we have a VM template and a number of different jobs - lets say  Job A is a small linter so it requires lets say 2 CPUs and 4 GB RAM. Job B is a big test job that requires 16 CPUs and 32 GB RAM.

Our reality: we have two separate VM templates with different hardware specifications (as stated above) with "small" and "large" in their names. We “assign” each job to proper agent using agent requirements, for example “teamcity.agent.name” contains “small” or “large”.

We know that TC cloud plugin uses vSphere SDK to start up new VMs. It would be really nice so that in the cloud profile we could set for example a custom script with set of SDK commands (for each "Agent image") to change some properties of the new VM before its started. That would save us from having two or more templates that are exactly the same but differ in HW specifications.

We could then have a really fine grade control of the spawned agents without a need of x amount of templates in Content Library.

Is that something that could be requested as a feature?

Jakub

 

0
5 comments
Hi Jakub,

Thank you for reaching out and sharing such a detailed overview of your current workflow.

You have hit on a very common pain point often referred to as "Template Sprawl." Maintaining multiple identical VM templates just to accommodate different CPU and RAM requirements is indeed inefficient and adds significant overhead to your infrastructure management.

However, we recommend submitting feature request directly to the TeamCity development team via YouTrack(https://youtrack.jetbrains.com/issues/TW).


0

Hi again,

I can see that “VMware vSphere” is actually a plugin listed under “Bundled plugins” in plugins overview. Is there any possibility that we could actually edit that code and load the altered plugin instead of the bundled one?

The reason is that we would also like to add more logging and some other “features” and be more in control.
 

Edit: Is this actually this one https://github.com/JetBrains/teamcity-vmware-plugin

0

Hi, 

Yes, the bundled VMware vSphere plugin appears to correspond to this repository: https://github.com/JetBrains/teamcity-vmware-plugin 

However, since the plugin has been bundled with TeamCity since 10.0, replacing or overriding the bundled version with a modified one is not something I would recommend or consider a supported setup. It may work in some cases, but it can easily lead to compatibility issues, especially after TeamCity upgrades.

The repository README also notes that the current version is not buildable standalone, and suggests using the 9.0.x branch for customization. 

So even if you want to experiment with a modified plugin, it should be treated as a custom plugin rather than a supported way to extend the bundled plugin. 

0

We could potentially live with non-supported way or at least test how is that working out. Anyway I've tried compiling the 9.0.x but it seems like that's not possible anymore, for example some dependencies are at https://repository.jetbrains.com/ which is archived. Would it be possible to get some help starting out with this?

Edit: Got the repo to work, needed change was http → https. Still struggling with other dependencies, but that's mostly because I'm not a Java developer :)

0
Hello Jakub,

  Thanks for your patience. I confirm that the bundled version of TeamCity plugin is https://github.com/JetBrains/teamcity-vmware-plugin, but it is supposed to be built as a part of the whole TeamCity distribution. 
  
   I suppose it may be possible to build the plugin standalone, but it requires noticeable efforts. 

   What I would try having this task at hand is to ask some LLM model to move the build process to a standalone one and see how it goes. 

   LLMs are aware of the structure of TeamCity plugins and may solve this task. So you'll be able to make such modifications in a branch.
  Also, you may tell us what specific features you need, probably they may be migrated to the main version of the plugin.

  If there are some specific issues (like missing maven artifacts in the OpenAPI) - let us know and we'll try to help wit that.

  Hope, this helps,
  KIR
0

Please sign in to leave a comment.