Module: Kontena::Machine::Aws::Common

Included in:
MasterProvisioner, NodeProvisioner, NodeRestarter
Defined in:
lib/kontena/machine/aws/common.rb

Instance Method Summary collapse

Instance Method Details

#default_subnet(vpc_id, zone) ⇒ Aws::EC2::Types::Subnet, NilClass

Parameters:

  • vpc_id (String)
  • zone (String)

Returns:

  • (Aws::EC2::Types::Subnet, NilClass)


20
21
22
23
24
25
26
27
# File 'lib/kontena/machine/aws/common.rb', line 20

def default_subnet(vpc_id, zone)
  ec2.subnets({
    filters: [
      {name: "vpc-id", values: [vpc_id]},
      {name: "availability-zone", values: [zone]}
    ]
  }).first
end

#default_vpcAws::EC2::Types::Vpc, NilClass

Returns:

  • (Aws::EC2::Types::Vpc, NilClass)


30
31
32
# File 'lib/kontena/machine/aws/common.rb', line 30

def default_vpc
  ec2.vpcs({filters: [{name: "is-default", values: ["true"]}]}).first
end

#resolve_ami(region) ⇒ Object

Returns String.

Parameters:

  • region (String)

Returns:

  • String



6
7
8
9
10
11
12
13
14
15
# File 'lib/kontena/machine/aws/common.rb', line 6

def resolve_ami(region)
  response = Excon.get("https://coreos.com/dist/aws/aws-stable.json")
  images = JSON.parse(response.body)
  info = images[region]
  if info
    info['hvm']
  else
    nil
  end
end

#resolve_security_groups_to_ids(group_list, vpc_id) ⇒ Array

Resolves givne list of group names into group ids

Parameters:

  • comma (String)

    separated list of group names

Returns:

  • (Array)


40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/kontena/machine/aws/common.rb', line 40

def resolve_security_groups_to_ids(group_list, vpc_id)
  ids = group_list.split(',').map { |group|
    sg = ec2.security_groups({
    filters: [
        {name: 'group-name', values: [group]},
        {name: 'vpc-id', values: [vpc_id]}
      ]
    }).first

    sg ? sg.group_id : nil
  }
  ids.compact
end