18772: arvados-dispatch-cloud: add IamInstanceProfile field to the ec2
[arvados.git] / lib / cloud / ec2 / ec2.go
index 269a7d8def59a1e38603633691d657aef29d8e81..2cbe4cf290c1b0e7a9dcaaeb1b701242c0da1cd3 100644 (file)
@@ -40,13 +40,14 @@ const (
 )
 
 type ec2InstanceSetConfig struct {
-       AccessKeyID      string
-       SecretAccessKey  string
-       Region           string
-       SecurityGroupIDs arvados.StringSet
-       SubnetID         string
-       AdminUsername    string
-       EBSVolumeType    string
+       AccessKeyID        string
+       SecretAccessKey    string
+       Region             string
+       SecurityGroupIDs   arvados.StringSet
+       SubnetID           string
+       AdminUsername      string
+       EBSVolumeType      string
+       IamInstanceProfile string
 }
 
 type ec2Interface interface {
@@ -230,6 +231,12 @@ func (instanceSet *ec2InstanceSet) Create(
                        }}
        }
 
+       if instanceSet.ec2config.IamInstanceProfile != "" {
+               rii.IamInstanceProfile = &ec2.IamInstanceProfileSpecification{
+                       Name: aws.String(instanceSet.ec2config.IamInstanceProfile),
+               }
+       }
+
        rsv, err := instanceSet.client.RunInstances(&rii)
        err = wrapError(err, &instanceSet.throttleDelayCreate)
        if err != nil {