Provide the Bamboo Admin the ability to lock or freeze the available capabilities on an agent. In the Admin Agent page, if I click Edit link next to an agent I can edit name and description. I would also like to have a checkbox that says something like "Lock Capabilities". If checked, then the capabilities cannot be changed on that agent.
Per my understanding and testing of Bamboo 3.2, I create an agent on a remote machine. It reads environment variables to determine capabilities such as MSBuild.exe's, Ant, Maven, JDKs, etc. and then displays those as the capabilities for that Agent in the Admin Agent section.
If as an admin I delete/remove those capabilities in the Admin > Agents > View (for a specific agent) page, then if the Agent Server gets rebooted (due to power loss, maintenance, patching, etc) it makes the original capabilities available once again for Plans to use.
Use Case For Why This Feature is Needed :
If I have 2 agents, Agent A and Agent B both running on separate OSes/Servers, I may want Agent A to be configured with Java build tools (Ant, JDK, Maven, etc). I may want Agent B configured with Microsoft build tools. Due to a variety of reasons it may be true that Agent A and Agent B both have other tools on the actual OS, but they shouldn't necessarily be shared as capabilities in the Agent.
Say a development shop does 50 Java build projects and 4 Microsoft build projects. It's true that both Agent A and Agent B could be configured to support the same capabilities, but an IT owner of Bamboo may want to ensure that the Microsoft build teams have a Bamboo Agent available and it is not constantly being utilized by the vastly larger numbers of Java teams. Thus, the Bamboo admin could strip Java-related capabilities from the Admin >Agents >View page so Plans cannot use Agent B for Java builds. However if the Agent needed to restart for above mentioned reasons then the 50 Java Plans could overtake Agent B and monopolize the Agent B. (Obviously the IT owner could strip environment variables off the server running Agent B, but the tools may actually be needed for other reasons by people directly accessing those servers, but not through Bamboo).
Based on the description the Agent itself does not need to be modified and can function as it does, however the main Bamboo server would need the "lock" feature implemented.