Automating Bamboo Agent Dedications

Good afternoon

I was wondering whether anyone had / has a secret formula for automating Bamboo agent dedications. As a Support Function, we had to restrict what the users can do due to security. Unfortunately, this means every time an Agent needs approving, it also needs dedicating. If the Agent previously had dedications, we have to manually go in and add them. With some Agents have 200+ dedications, this causes a lot of wasted time waiting for the list to populate from the search field (last time I did this it took over two hours!)

Has anyone done anything like this before? ...and if so, how did you do it?

Any help would be gratefully appreciated :)

2 answers

1 vote

There's REST endpoint to manage agent/elastic image dedication: 

I have not done this before, but it's an interesting challenge :)

To expand on @Alexey Chystoprudov's answer (+1), here's how I'd try to tackle an end to end automation based on our own (commercial) add-on (which currently requires that you have an AWS account yourself):

  1. Implement the code to dedicate the agents via the REST API, ideally in a language natively supported by AWS Lambda (currently C#, Java, Node.js, Python, though most others can be used via shims too)
  2. Once you are comfortable that you can achieve your goal via REST, convert the code into a Lambda function (there are many frameworks to help with this, most popular is Serverless)
  3. Install Atlassian Lab's Bamboo Agent Notifications add-on
  4. Install Utoolity's Automation with AWS (Bamboo) add-on
  5. Configure a global 'Notify on remote/elastic agents online status' notification to trigger an 'Automate with AWS' recipient with an Invoke Lambda Function action configured to call the function you deployed in step 2 (for more complex workflows you could also use the Start Step Functions Execution action, which e.g. allows to await another event before proceeding with an approval or dedication)


Please note one important caveat regarding 5:

Right now the 'Automate with AWS' notification recipient only provides a $notification entity variable for access to the default Bamboo templates, which implies you might need to parse the required info out of the message (e.g. the elastic instance ID), and not everything you need might be there already.

However, we are in the process of adding richer variables like '$resultSummary' or '$deploymentResult' so that you can compose a payload with the exact information you need. Similarly we should be able to provide an '$agent' variable that exposes the details available via the AgentRegisteredEvent, i.e. the fields in a PipelineDefinition - let me know if you'd be interested in this approach and I'd be happy to explore it with my team.

Suggest an answer

Log in or Join to answer
Community showcase
Renan Battaglin
Published May 18, 2017 in Bamboo

FAQ: How to Upgrade Bamboo Server

Bamboo 5.9 will no longer be supported after June 12, 2017. What does this mean? As part of our End of Life policy, Atlassian supports major versions for two years after the first major iteratio...

1,096 views 0 5
Read article

Atlassian User Groups

Connect with like-minded Atlassian users at free events near you!

Find a group

Connect with like-minded Atlassian users at free events near you!

Find my local user group

Unfortunately there are no AUG chapters near you at the moment.

Start an AUG

You're one step closer to meeting fellow Atlassian users at your local meet up. Learn more about AUGs

Groups near you
Atlassian Team Tour

Join us on the Team Tour

We're bringing product updates and pro tips on teamwork to ten cities around the world.

Save your spot