func TerraformSpotMixedInstancesPolicyHCLOutput()

in pkg/selector/outputs/outputs.go [53:96]


func TerraformSpotMixedInstancesPolicyHCLOutput(instanceTypeInfoSlice []instancetypes.Details) []string {
	instanceTypeOverrides := instanceTypeInfoToOverrides(instanceTypeInfoSlice)
	overridesString := ""
	for _, override := range instanceTypeOverrides {
		overridesString = overridesString + fmt.Sprintf(`
			override {
				instance_type = "%s"
			}
		`, override.InstanceType)
	}
	asgResource := fmt.Sprintf(`resource "aws_autoscaling_group" "AutoScalingGroupMIG" {
		vpc_zone_identifier = [
		  "REPLACE_WITH_SUBNET_ID"
		]
	  
		name = "AutoScalingGroupMIG"
		max_size = 0
		min_size = 0
		desired_capacity = 0
	  
		mixed_instances_policy {
		  instances_distribution {
			on_demand_base_capacity = 0
			on_demand_percentage_above_base_capacity = 0
			spot_allocation_strategy = "capacity-optimized"
		  }
	  
		  launch_template {
			launch_template_specification {
			  launch_template_id = "REPLACE_WITH_LAUNCH_TEMPLATE_ID"
			  version = "$$Latest"
			}

			%s
		  }
		}
	  }
	  provider "aws" {
		  region = "us-east-1"
	  }
	  `, overridesString)

	return []string{asgResource}
}