github.com/mcuadros/ascode@v1.3.1/starlark/types/testdata/hcl_integration.star (about)

     1  load("os", "os")
     2  load("assert.star", "assert")
     3  
     4  aws = tf.provider("aws", "2.13.0")
     5  aws.region = "us-west-2"
     6  
     7  # Based on:
     8  # https://www.terraform.io/docs/providers/aws/r/instance.html#example
     9  vpc = aws.resource.vpc()
    10  vpc.cidr_block = "172.16.0.0/16"
    11  vpc.tags = {"Name": "tf-example"}
    12  
    13  subnet = aws.resource.subnet()
    14  subnet.vpc_id = vpc.id
    15  subnet.cidr_block = "172.16.0.0/24"
    16  subnet.availability_zone = "us-west-2a"
    17  subnet.tags = {"Name": "tf-example"}
    18  
    19  iface = aws.resource.network_interface()
    20  iface.subnet_id = subnet.id
    21  iface.private_ips = ["172.16.10.100"]
    22  iface.tags = {"Name": "primary_network_iterface"}
    23  
    24  ubuntu = aws.data.ami()
    25  ubuntu.most_recent = True
    26  ubuntu.filter(name = "name", values = ["ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*"])
    27  ubuntu.filter(name = "virtualization-type", values = ["hvm"])
    28  ubuntu.owners = ["099720109477"]
    29  
    30  instance = aws.resource.instance()
    31  instance.ami = ubuntu.id
    32  instance.instance_type = "t2.micro"
    33  instance.credit_specification.cpu_credits = "unlimited"
    34  instance.network_interface = [{
    35     "network_interface_id": iface.id,
    36     "device_index": 0
    37  }]
    38  
    39  # Based on:
    40  # https://www.terraform.io/docs/providers/aws/r/autoscaling_group.html#mixed-instances-policy
    41  template = aws.resource.launch_template()
    42  template.name_prefix = "example"
    43  template.image_id = ubuntu.id
    44  template.instance_type = "c5.large"
    45  
    46  group = aws.resource.autoscaling_group()
    47  group.availability_zones = ["us-east-1a"]
    48  group.min_size = 1
    49  group.max_size = 1
    50  group.desired_capacity = 1
    51  group.mixed_instances_policy = {
    52     "launch_template": {
    53        "launch_template_specification": {
    54           "launch_template_id": template.id,
    55        },
    56        "override": [
    57          {"instance_type": "c4.large"},
    58          {"instance_type": "c3.large"}
    59        ],
    60     },
    61  }
    62  
    63  # Based on:
    64  # https://learn.hashicorp.com/terraform/getting-started/dependencies.html#implicit-and-explicit-dependencies
    65  bucket = aws.resource.s3_bucket()
    66  bucket.bucket = "terraform-getting-started-guide"
    67  bucket.acl = "private"
    68  
    69  example = aws.resource.instance()
    70  example.ami = "ami-2757f631"
    71  example.instance_type = "t2.micro"
    72  example.depends_on(bucket)
    73  
    74  assert.eq(hcl(tf).replace("\r", ""), os.read_file("fixtures/aws.tf").replace("\r", ""))