Skip to content

Commit

Permalink
Set priority for capacity-optimized-prioritized
Browse files Browse the repository at this point in the history
  • Loading branch information
cristim committed Sep 16, 2021
1 parent dedb0c8 commit 6a0d2e5
Show file tree
Hide file tree
Showing 2 changed files with 55 additions and 2 deletions.
5 changes: 4 additions & 1 deletion core/instance_conversion.go
Original file line number Diff line number Diff line change
Expand Up @@ -423,10 +423,13 @@ func (i *instance) createFleetInput(ltName *string, instanceTypes []*string) *ec

var overrides []*ec2.FleetLaunchTemplateOverridesRequest

for _, inst := range instanceTypes {
for p, inst := range instanceTypes {
override := ec2.FleetLaunchTemplateOverridesRequest{
InstanceType: inst,
}
if i.asg.config.SpotAllocationStrategy == "capacity-optimized-prioritized" {
override.Priority = aws.Float64(float64(p))
}
overrides = append(overrides, &override)
}

Expand Down
52 changes: 51 additions & 1 deletion core/instance_conversion_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1545,7 +1545,57 @@ func Test_instance_createFleetInput(t *testing.T) {
want *ec2.CreateFleetInput
}{
{
name: "test generating list of overrides",
name: "test generating list of overrides with capacity-optimized-prioritized",
ltName: aws.String("testLT"),
instanceTypes: []*string{
aws.String("instance-type1"),
aws.String("instance-type2"),
},
i: &instance{
asg: &autoScalingGroup{
config: AutoScalingConfig{
SpotAllocationStrategy: "capacity-optimized-prioritized",
},
},
region: &region{},
typeInfo: instanceTypeInformation{
pricing: prices{
onDemand: 1,
},
},
},
want: &ec2.CreateFleetInput{
LaunchTemplateConfigs: []*ec2.FleetLaunchTemplateConfigRequest{
{
LaunchTemplateSpecification: &ec2.FleetLaunchTemplateSpecificationRequest{
LaunchTemplateName: aws.String("testLT"),
Version: aws.String("$Latest"),
},
Overrides: []*ec2.FleetLaunchTemplateOverridesRequest{
{
InstanceType: aws.String("instance-type1"),
Priority: aws.Float64(0),
},
{
InstanceType: aws.String("instance-type2"),
Priority: aws.Float64(1),
},
},
},
},
SpotOptions: &ec2.SpotOptionsRequest{
AllocationStrategy: aws.String("capacity-optimized-prioritized"),
},
TargetCapacitySpecification: &ec2.TargetCapacitySpecificationRequest{
DefaultTargetCapacityType: aws.String("spot"),
SpotTargetCapacity: aws.Int64(1),
TotalTargetCapacity: aws.Int64(1),
},
Type: aws.String("instant"),
},
},
{
name: "test generating list of overrides with capacity-optimized",
ltName: aws.String("testLT"),
instanceTypes: []*string{
aws.String("instance-type1"),
Expand Down

0 comments on commit 6a0d2e5

Please sign in to comment.