Class: Formatron::CloudFormation::Template::VPC::Subnet::Instance::SecurityGroup
- Inherits:
-
Object
- Object
- Formatron::CloudFormation::Template::VPC::Subnet::Instance::SecurityGroup
- Defined in:
- lib/formatron/cloud_formation/template/vpc/subnet/instance/security_group.rb
Overview
generates CloudFormation security group resource
Constant Summary collapse
- SECURITY_GROUP_PREFIX =
'securityGroup'
Instance Method Summary collapse
-
#initialize(security_group:, instance_guid:, vpc_guid:, vpc_cidr:) ⇒ SecurityGroup
constructor
rubocop:disable Metrics/MethodLength.
-
#merge(resources:) ⇒ Object
rubocop:disable Metrics/MethodLength.
Constructor Details
#initialize(security_group:, instance_guid:, vpc_guid:, vpc_cidr:) ⇒ SecurityGroup
rubocop:disable Metrics/MethodLength
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/formatron/cloud_formation/template/vpc/subnet/instance/security_group.rb', line 14 def initialize( security_group:, instance_guid:, vpc_guid:, vpc_cidr: ) @security_group = security_group @vpc_guid = vpc_guid @cidr = vpc_cidr @guid = instance_guid @security_group_id = "#{SECURITY_GROUP_PREFIX}#{@guid}" @vpc_id = "#{VPC::VPC_PREFIX}#{@vpc_guid}" @open_tcp_ports = @security_group.open_tcp_port unless @security_group.nil? @open_udp_ports = @security_group.open_udp_port unless @security_group.nil? end |
Instance Method Details
#merge(resources:) ⇒ Object
rubocop:disable Metrics/MethodLength
34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/formatron/cloud_formation/template/vpc/subnet/instance/security_group.rb', line 34 def merge(resources:) ingress_rules = _base_ingress_rules ingress_rules.concat( @open_tcp_ports.collect do |port| { cidr: '0.0.0.0/0', protocol: 'tcp', from_port: port, to_port: port } end ) unless @open_tcp_ports.nil? ingress_rules.concat( @open_udp_ports.collect do |port| { cidr: '0.0.0.0/0', protocol: 'udp', from_port: port, to_port: port } end ) unless @open_udp_ports.nil? resources[@security_group_id] = Resources::EC2.security_group( group_description: 'Formatron instance security group', vpc: @vpc_id, egress: _base_egress_rules, ingress: ingress_rules ) end |