From 55a0583009bd5de08a116fec2486df0ad6b42e74 Mon Sep 17 00:00:00 2001 From: allegroai <> Date: Sat, 26 Feb 2022 13:43:31 +0200 Subject: [PATCH] Add support for IAM instance profile in autoscaler --- clearml/automation/aws_driver.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/clearml/automation/aws_driver.py b/clearml/automation/aws_driver.py index 766e05a6..0cdd0ea6 100644 --- a/clearml/automation/aws_driver.py +++ b/clearml/automation/aws_driver.py @@ -27,6 +27,7 @@ class AWSDriver(CloudDriver): aws_secret_access_key = attr.ib(validator=instance_of(str), default='') aws_region = attr.ib(validator=instance_of(str), default='') use_credentials_chain = attr.ib(validator=instance_of(bool), default=False) + use_iam_instance_profile = attr.ib(validator=instance_of(bool), default=False) @classmethod def from_config(cls, config): @@ -35,6 +36,7 @@ class AWSDriver(CloudDriver): obj.aws_secret_access_key = config['hyper_params'].get('cloud_credentials_secret') obj.aws_region = config['hyper_params'].get('cloud_credentials_region') obj.use_credentials_chain = config['hyper_params'].get('use_credentials_chain', False) + obj.use_iam_instance_profile = config['hyper_params'].get('use_iam_instance_profile', False) return obj def __attrs_post_init__(self): @@ -69,6 +71,11 @@ class AWSDriver(CloudDriver): launch_specification["SecurityGroupIds"] = resource_conf[ "security_group_ids" ] + if resource_conf.get("iam_arn", None) and resource_conf.get("iam_name", None): + launch_specification["IamInstanceProfile"] = { + 'Arn': resource_conf["iam_arn"], + 'Name': resource_conf["iam_name"] + } if resource_conf["is_spot"]: # Create a request for a spot instance in AWS