Sha256: 4f3fd848c7ce199266e6d8520bce3272a16314621f37826b307fbedd3ce44a45

Contents?: true

Size: 1.23 KB

Versions: 26

Compression:

Stored size: 1.23 KB

Contents

module Ufo::Cfn::Stack::Builder::Resources::SecurityGroup
  class Elb < Base
    def build
      return unless managed_security_groups?
      return unless vars[:elb_type] == "application"

      {
        Type: "AWS::EC2::SecurityGroup",
        Condition: "CreateElbIsTrue",
        Properties: properties
      }
    end

    def properties
      port = Ufo.config.elb.port # 80
      props = {
        GroupDescription: "Allow http to client host",
        VpcId: {Ref: "Vpc"},
        SecurityGroupIngress: [
          {
            IpProtocol: "tcp",
            FromPort: port,
            ToPort: port,
            CidrIp: "0.0.0.0/0"
          }
        ],
        SecurityGroupEgress: [
          {
            IpProtocol: "tcp",
            FromPort: "0",
            ToPort: "65535",
            CidrIp: "0.0.0.0/0"
          }
        ],
        Tags: [
          {
            Key: "Name",
            Value: "#{@stack_name}-elb"
          }
        ]
      }

      if vars[:create_listener_ssl]
        ssl_port = Ufo.config.elb.ssl.port
        props[:SecurityGroupIngress] << {
          IpProtocol: "tcp",
          FromPort: ssl_port,
          ToPort: ssl_port,
          CidrIp: "0.0.0.0/0"
        }
      end

      props
    end
  end
end

Version data entries

26 entries across 26 versions & 1 rubygems

Version Path
ufo-6.3.3 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.3.2 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.3.1 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.3.0 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.2.5 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.2.4 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.2.3 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.2.2 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.2.1 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.2.0 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.1.5 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.1.4 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.1.3 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.1.2 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.1.1 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.1.0 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.0.9 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.0.8 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.0.7 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb
ufo-6.0.6 lib/ufo/cfn/stack/builder/resources/security_group/elb.rb