lib/hako/schedulers/ecs.rb in hako-0.12.0 vs lib/hako/schedulers/ecs.rb in hako-0.13.0
- old
+ new
@@ -24,15 +24,13 @@
@started_at = nil
@container_instance_arn = nil
end
def deploy(containers)
- app = containers.fetch('app')
- front = containers.fetch('front')
front_port = determine_front_port
@scripts.each { |script| script.deploy_started(containers, front_port) }
- definitions = create_definitions(containers, front_port)
+ definitions = create_definitions(containers)
if @dry_run
definitions.each do |d|
Hako.logger.info "Add container #{d}"
end
@@ -41,12 +39,10 @@
if task_definition == :noop
Hako.logger.info "Task definition isn't changed"
task_definition = @ecs.describe_task_definition(task_definition: @app_id).task_definition
else
Hako.logger.info "Registered task definition: #{task_definition.task_definition_arn}"
- upload_front_config(@app_id, front, app.port)
- Hako.logger.debug "Uploaded front configuration to s3://#{front.s3.bucket}/#{front.s3.key(@app_id)}"
end
service = create_or_update_service(task_definition.task_definition_arn, front_port)
if service == :noop
Hako.logger.info "Service isn't changed"
else
@@ -56,11 +52,11 @@
Hako.logger.info 'Deployment completed'
end
end
def oneshot(containers, commands, env)
- definitions = create_definitions(containers, -1)
+ definitions = create_definitions(containers)
definitions.each do |definition|
definition.delete(:essential)
end
if @dry_run
@@ -271,18 +267,13 @@
else
:noop
end
end
- def create_definitions(containers, front_port)
+ def create_definitions(containers)
containers.map do |name, container|
- case name
- when 'front'
- front_container(container, front_port)
- else
- app_container(name, container)
- end
+ create_definition(name, container)
end
end
def register_task_definition_for_oneshot(definitions)
family = "#{@app_id}-oneshot"
@@ -304,38 +295,22 @@
host: { source_path: volume['source_path'] },
}
end
end
- def front_container(front, front_port)
- environment = front.env.map { |k, v| { name: k, value: v } }
+ def create_definition(name, container)
+ environment = container.env.map { |k, v| { name: k, value: v } }
{
- name: 'front',
- image: front.image_tag,
- cpu: front.cpu,
- memory: front.memory,
- links: front.links,
- port_mappings: [{ container_port: 80, host_port: front_port, protocol: 'tcp' }],
- essential: true,
- environment: environment,
- docker_labels: front.docker_labels,
- mount_points: front.mount_points,
- }
- end
-
- def app_container(name, app)
- environment = app.env.map { |k, v| { name: k, value: v } }
- {
name: name,
- image: app.image_tag,
- cpu: app.cpu,
- memory: app.memory,
- links: app.links,
- port_mappings: [],
+ image: container.image_tag,
+ cpu: container.cpu,
+ memory: container.memory,
+ links: container.links,
+ port_mappings: container.port_mappings,
essential: true,
environment: environment,
- docker_labels: app.docker_labels,
- mount_points: app.mount_points,
+ docker_labels: container.docker_labels,
+ mount_points: container.mount_points,
}
end
def run_task(task_definition, commands, env)
environment = env.map { |k, v| { name: k, value: v } }