Sha256: 7ec2124f4a739eb1116db4d2e7e00d5b07be80ce5ea51a3eb68bbf21d1f03bed

Contents?: true

Size: 1.03 KB

Versions: 2

Compression:

Stored size: 1.03 KB

Contents

require 'wombat/common'
require 'aws-sdk'

class DeployRunner
  include Common

  attr_reader :stack, :cloud, :lock_opt, :template_opt

  def initialize(opts)
    @stack = opts.stack
    @cloud = opts.cloud.nil? ? "aws" : opts.cloud
    @lock_opt = opts.update_lock
    @template_opt = opts.create_template
  end

  def start
    case cloud
    when 'aws'
      update_lock(cloud) if lock_opt
      update_template(cloud) if template_opt
      create_stack(stack)
    end
  end

  private

  def create_stack(stack)
    template_file = File.read("#{conf['stack_dir']}/#{stack}.json")
    cfn = Aws::CloudFormation::Client.new(region: lock['aws']['region'])

    banner("Creating CloudFormation stack")
    resp = cfn.create_stack({
      stack_name: "#{stack}",
      template_body: template_file,
      capabilities: ["CAPABILITY_IAM"],
      on_failure: "DELETE",
      parameters: [
        {
          parameter_key: "KeyName",
          parameter_value: lock['aws']['keypair'],
        }
      ]
    })
    puts "Created: #{resp.stack_id}"
  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
wombat-cli-0.3.1 lib/wombat/deploy.rb
wombat-cli-0.3.0 lib/wombat/deploy.rb