Method: Broadside::EcsDeploy#bootstrap

Defined in:
lib/broadside/ecs/ecs_deploy.rb

#bootstrapObject



26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/broadside/ecs/ecs_deploy.rb', line 26

def bootstrap
  if EcsManager.get_latest_task_definition_arn(family)
    info "Task definition for #{family} already exists."
  else
    raise ConfigurationError, "No :task_definition_config for #{family}" unless @target.task_definition_config
    raise ConfigurationError, 'Bootstrapping a task_definition requires a :tag for the image' unless @tag
    info "Creating an initial task definition for '#{family}' from the config..."

    EcsManager.ecs.register_task_definition(
      @target.task_definition_config.merge(
        family: family,
        container_definitions: [DEFAULT_CONTAINER_DEFINITION.merge(configured_container_definition)]
      )
    )
  end

  run_commands(@target.bootstrap_commands, started_by: 'bootstrap')

  if EcsManager.service_exists?(cluster, family)
    info("Service for #{family} already exists.")
  else
    raise ConfigurationError, "No :service_config for #{family}" unless @target.service_config
    info "Service '#{family}' doesn't exist, creating..."
    EcsManager.create_service(cluster, family, @target.service_config)
  end
end