Hey,
Just some notes on that, if you are using remote agents for ARM they do work, but when it comes to elastic agents for Bamboo they do not.
Bamboo Elastic Agents for ARM are not configurable due to error
Unable to contact AWS to get AMI details: java.lang.IllegalArgumentException: Unable to translate [arm64] to enum class [Lcom.atlassian.aws.ec2.awssdk.AwsSupportConstants$Architecture;
I have reverse engineered the code of Bamboo to discover that this is because the enum does not contain arm entry, and that is because Bamboo once it is given AMI ID it makes request to AWS to acknowledge the AMI Architecture, that is later on used to check whether this is 32 or 64 bit system.
Enum right now contains x86_64 and i386 architectures, so simply adding arm should solve the issue, but no.
I do not know if I should post here a piece of code which is relevant for this, but it can be found in
package com.atlassian.bamboo.ww2.actions.admin.elastic;
One way to workaround this is to add new entry with AMI that is for x86_64, and then updating database with the AMI ID of your choice that is ARM. (Note that you need to pick the instance type relevant for ARM architecture)
Database table that is responsible for this is called
One more note, since the UI is no more usable for this record that was updated to AMI ID with ARM, you need to update your AMI ID only via database.
Hope that solves the issue for you.
Workaround
- Add new entry for elastic agents with AMI ID that is x86_64 (at this point you already can choose instance type that works for ARM)
- Configure all of the settings for your new entry, scripts etc.
- Update database table (elastic_image) entry for this elastic agent at column (ami_image_id)
- Enjoy
Kind Regards,
Tomasz
Hey,
Just some notes on that, if you are using remote agents for ARM they do work, but when it comes to elastic agents for Bamboo they do not.
Bamboo Elastic Agents for ARM are not configurable due to error
Unable to contact AWS to get AMI details: java.lang.IllegalArgumentException: Unable to translate [arm64] to enum class [Lcom.atlassian.aws.ec2.awssdk.AwsSupportConstants$Architecture;
I have reverse engineered the code of Bamboo to discover that this is because the enum does not contain arm entry, and that is because Bamboo once it is given AMI ID it makes request to AWS to acknowledge the AMI Architecture, that is later on used to check whether this is 32 or 64 bit system.
Enum right now contains x86_64 and i386 architectures, so simply adding arm should solve the issue, but no.
I do not know if I should post here a piece of code which is relevant for this, but it can be found in
package com.atlassian.bamboo.ww2.actions.admin.elastic;
One way to workaround this is to add new entry with AMI that is for x86_64, and then updating database with the AMI ID of your choice that is ARM. (Note that you need to pick the instance type relevant for ARM architecture)
Database table that is responsible for this is called
One more note, since the UI is no more usable for this record that was updated to AMI ID with ARM, you need to update your AMI ID only via database.
Hope that solves the issue for you.
Workaround
Kind Regards,
Tomasz