Class: Ufo::Stack::Builder::Resources::TargetGroup

Inherits:
Base
  • Object
show all
Defined in:
lib/ufo/stack/builder/resources/target_group.rb

Instance Method Summary collapse

Methods inherited from Base

build, #copy_instance_variables, #initialize, #managed_security_group, #managed_security_groups?, #security_groups

Methods included from Ufo::Settings

#cfn, #network, #settings

Constructor Details

This class inherits a constructor from Ufo::Stack::Builder::Base

Instance Method Details

#buildObject



3
4
5
6
7
8
9
# File 'lib/ufo/stack/builder/resources/target_group.rb', line 3

def build
  {
    Type: "AWS::ElasticLoadBalancingV2::TargetGroup",
    Condition: "CreateTargetGroupIsTrue",
    Properties: properties,
  }
end

#propertiesObject



11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/ufo/stack/builder/resources/target_group.rb', line 11

def properties
  props = {
    VpcId: {Ref: "Vpc"},
    Tags: [
      {
        Key: "Name",
        Value: @stack_name,
      }
    ],
    Protocol: @default_target_group_protocol,
    Port: 80,
    HealthCheckIntervalSeconds: 10,
    HealthyThresholdCount: 2,
    UnhealthyThresholdCount: 2,
    TargetGroupAttributes: [
      {
        Key: "deregistration_delay.timeout_seconds",
        Value: 10
      }
    ]
  }

  props[:TargetType] = "ip" if @container[:network_mode] == "awsvpc"
  props[:HealthCheckPort] = @container[:port] if @elb_type == "network" && @network_mode == "awsvpc"

  props
end