11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
# File 'lib/stack_master/parameter_resolvers/latest_container.rb', line 11
def resolve(parameters)
if parameters['repository_name'].nil?
raise ArgumentError, "repository_name parameter is required but was not supplied"
end
@region = parameters['region'] || @stack_definition.region
ecr_client = Aws::ECR::Client.new(region: @region)
images = fetch_images(parameters['repository_name'], parameters['registry_id'], ecr_client)
unless parameters['tag'].nil?
images.select! { |image| image.image_tags.any? { |tag| tag == parameters['tag'] } }
end
images.sort! { |image_x, image_y| image_y.image_pushed_at <=> image_x.image_pushed_at }
return nil if images.empty?
latest_image = images.first
"#{latest_image.registry_id}.dkr.ecr.#{@region}.amazonaws.com/#{parameters['repository_name']}@#{latest_image.image_digest}"
end
|