From 070942df0fc5fd5bb41de220114ee9aea3669279 Mon Sep 17 00:00:00 2001 From: Radek Simko Date: Tue, 23 Aug 2016 17:19:43 +0100 Subject: [PATCH] provider/aws: Add support for ECS svc - LB target group (#8190) --- .../providers/aws/resource_aws_ecs_service.go | 8 +- .../aws/resource_aws_ecs_service_test.go | 141 ++++++++ builtin/providers/aws/structure.go | 22 +- examples/aws-ecs-alb/README.md | 33 ++ examples/aws-ecs-alb/cloud-config.yml | 43 +++ .../aws-ecs-alb/instance-profile-policy.json | 31 ++ examples/aws-ecs-alb/main.tf | 308 ++++++++++++++++++ examples/aws-ecs-alb/outputs.tf | 15 + examples/aws-ecs-alb/task-definition.json | 22 ++ examples/aws-ecs-alb/variables.tf | 37 +++ .../providers/aws/r/ecs_service.html.markdown | 3 +- 11 files changed, 657 insertions(+), 6 deletions(-) create mode 100644 examples/aws-ecs-alb/README.md create mode 100644 examples/aws-ecs-alb/cloud-config.yml create mode 100644 examples/aws-ecs-alb/instance-profile-policy.json create mode 100644 examples/aws-ecs-alb/main.tf create mode 100644 examples/aws-ecs-alb/outputs.tf create mode 100644 examples/aws-ecs-alb/task-definition.json create mode 100644 examples/aws-ecs-alb/variables.tf diff --git a/builtin/providers/aws/resource_aws_ecs_service.go b/builtin/providers/aws/resource_aws_ecs_service.go index 656167485..9422a7387 100644 --- a/builtin/providers/aws/resource_aws_ecs_service.go +++ b/builtin/providers/aws/resource_aws_ecs_service.go @@ -76,7 +76,13 @@ func resourceAwsEcsService() *schema.Resource { Schema: map[string]*schema.Schema{ "elb_name": &schema.Schema{ Type: schema.TypeString, - Required: true, + Optional: true, + ForceNew: true, + }, + + "target_group_arn": &schema.Schema{ + Type: schema.TypeString, + Optional: true, ForceNew: true, }, diff --git a/builtin/providers/aws/resource_aws_ecs_service_test.go b/builtin/providers/aws/resource_aws_ecs_service_test.go index 1d1733996..62e50e980 100644 --- a/builtin/providers/aws/resource_aws_ecs_service_test.go +++ b/builtin/providers/aws/resource_aws_ecs_service_test.go @@ -241,6 +241,22 @@ func TestAccAWSEcsService_withEcsClusterName(t *testing.T) { }) } +func TestAccAWSEcsService_withAlb(t *testing.T) { + resource.Test(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckAWSEcsServiceDestroy, + Steps: []resource.TestStep{ + resource.TestStep{ + Config: testAccAWSEcsServiceWithAlb, + Check: resource.ComposeTestCheckFunc( + testAccCheckAWSEcsServiceExists("aws_ecs_service.with_alb"), + ), + }, + }, + }) +} + func testAccCheckAWSEcsServiceDestroy(s *terraform.State) error { conn := testAccProvider.Meta().(*AWSClient).ecsconn @@ -702,3 +718,128 @@ resource "aws_ecs_service" "jenkins" { desired_count = 1 } ` + +var testAccAWSEcsServiceWithAlb = ` +data "aws_availability_zones" "available" {} + +resource "aws_vpc" "main" { + cidr_block = "10.10.0.0/16" +} + +resource "aws_subnet" "main" { + count = 2 + cidr_block = "${cidrsubnet(aws_vpc.main.cidr_block, 8, count.index)}" + availability_zone = "${data.aws_availability_zones.available.names[count.index]}" + vpc_id = "${aws_vpc.main.id}" +} + +resource "aws_ecs_cluster" "main" { + name = "terraform_acc_test_ecs_15" +} + +resource "aws_ecs_task_definition" "with_lb_changes" { + family = "tf_acc_test_ghost_lbd" + container_definitions = <