class ContainerShip::TaskDefinition
Attributes
build_number[R]
cluster_name[R]
environment[R]
name[R]
Public Class Methods
new(cluster_name, type, name, environment, build_number)
click to toggle source
# File lib/container_ship/task_definition.rb, line 7 def initialize(cluster_name, type, name, environment, build_number) @cluster_name = cluster_name @type = type @name = name @environment = environment @build_number = build_number end
Public Instance Methods
full_cluster_name()
click to toggle source
# File lib/container_ship/task_definition.rb, line 27 def full_cluster_name "#{@cluster_name}-#{@environment}" end
full_name()
click to toggle source
# File lib/container_ship/task_definition.rb, line 31 def full_name "#{@cluster_name}-#{@name}-#{@environment}" end
image_name()
click to toggle source
# File lib/container_ship/task_definition.rb, line 35 def image_name ENV.fetch('ECR_REPOSITORY') + full_cluster_name end
log_group_name()
click to toggle source
# File lib/container_ship/task_definition.rb, line 39 def log_group_name return nil unless main_container_definition.dig(:log_configuration, :log_driver).to_s == 'awslogs' main_container_definition.dig(:log_configuration, :options, :'awslogs-group') end
log_stream_name(task_arn)
click to toggle source
# File lib/container_ship/task_definition.rb, line 45 def log_stream_name(task_arn) return nil unless main_container_definition.dig(:log_configuration, :log_driver).to_s == 'awslogs' prefix = main_container_definition.dig(:log_configuration, :options, :'awslogs-stream-prefix') "#{prefix}/#{full_name}/#{task_arn.split('/').last}" end
to_h()
click to toggle source
# File lib/container_ship/task_definition.rb, line 15 def to_h task_definition_hash .merge( family: full_name, container_definitions: task_definition_hash[:container_definitions].map do |d| next d unless d[:essential] d.merge(name: full_name, image: "#{image_name}:#{@build_number}") end ) end
Private Instance Methods
main_container_definition()
click to toggle source
# File lib/container_ship/task_definition.rb, line 62 def main_container_definition task_definition_hash[:container_definitions].find { |definition| definition[:essential] } end
task_definition_hash()
click to toggle source
# File lib/container_ship/task_definition.rb, line 54 def task_definition_hash @task_definition_hash ||= JSON.parse(File.read(task_definition_path), symbolize_names: true) end
task_definition_path()
click to toggle source
# File lib/container_ship/task_definition.rb, line 58 def task_definition_path File.join('.container_ship', @cluster_name, @type, @name, @environment, 'task_definition.json') end