Method: Terrafying::Components::StaticSet#volume_for

Defined in:
lib/terrafying/components/staticset.rb

#volume_for(name, instance, volume, tags) ⇒ Object



116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
# File 'lib/terrafying/components/staticset.rb', line 116

def volume_for(name, instance, volume, tags)
  vol_opts = {
    availability_zone: instance.subnet.az,
    size: volume[:size],
    type: volume[:type] || 'gp2',
    encrypted:  volume[:encrypted] || false,
    kms_key_id: volume[:kms_key_id],
    tags: {
      Name: name
    }.merge(tags)
  }.reject { |_, v| v.nil? }

  volume_id = resource :aws_ebs_volume, name, vol_opts

  resource :aws_volume_attachment, name, {
    device_name: volume[:device],
    volume_id:   volume_id,
    instance_id: instance.id,
    force_detach: true
  }
end