import pulumi import pulumi_aws as aws from .common import instance_assume_role_policy from .default_vpc import subnets iam_role = aws.iam.Role( 'ecs-ec2-instance-role', assume_role_policy=instance_assume_role_policy.json, managed_policy_arns=[ aws.iam.get_policy(name='AmazonEC2ContainerServiceforEC2Role').arn, ], ) instance_profile = aws.iam.InstanceProfile( 'ecs-ec2-instance-profile', role=iam_role.name, ) svc_linked_role = aws.iam.ServiceLinkedRole( 'ecs', aws_service_name='ecs.amazonaws.com', ) cluster = aws.ecs.Cluster( 'default', name='default', ) ami = aws.ec2.get_ami( most_recent=True, owners=['amazon'], filters=[ aws.ec2.GetAmiFilterArgs(name='name', values=['al2023-ami-ecs-hvm-*']), aws.ec2.GetAmiFilterArgs(name='architecture', values=['arm64']), ], ) launch_tmpl = aws.ec2.LaunchTemplate( 'ecs-default', image_id=ami.id, instance_type='t4g.nano', key_name='dustin@rosalina', iam_instance_profile={'arn': instance_profile.arn}, ) asg = aws.autoscaling.Group( 'ecs-default', max_size=1, min_size=1, vpc_zone_identifiers=[subnets.ids[0]], launch_template=aws.autoscaling.GroupLaunchTemplateArgs( id=launch_tmpl.id, version=launch_tmpl.latest_version.apply(str), ), instance_refresh=aws.autoscaling.GroupInstanceRefreshArgs( strategy='Rolling', ), tags=[ { 'key': 'AmazonECSManaged', 'value': 'true', 'propagate_at_launch': True, } ], )