Class: KubeDeployTools::ImageRegistry::Driver::Base

Inherits:
Object
  • Object
show all
Defined in:
lib/kube_deploy_tools/image_registry/driver/base.rb

Direct Known Subclasses

Aws, Gcp, Login, Noop

Instance Method Summary collapse

Constructor Details

#initialize(registry:) ⇒ Base

Returns a new instance of Base.



11
12
13
# File 'lib/kube_deploy_tools/image_registry/driver/base.rb', line 11

def initialize(registry:)
  @registry = registry
end

Instance Method Details

#authorizeObject



19
20
21
22
# File 'lib/kube_deploy_tools/image_registry/driver/base.rb', line 19

def authorize
  Logger.info "performing registry login for #{@registry.prefix}"
  Shellrunner.check_call(*authorize_command, print_cmd: false)
end

#authorize_commandObject



24
25
26
# File 'lib/kube_deploy_tools/image_registry/driver/base.rb', line 24

def authorize_command
  raise "#{self.class}#authorize_command needs explicit implementation"
end

#delete_image(image, dryrun) ⇒ Object



44
45
46
# File 'lib/kube_deploy_tools/image_registry/driver/base.rb', line 44

def delete_image(image, dryrun)
  raise "#{self.class}#delete_image needs explicit implementation"
end

#delete_images(images, dryrun) ⇒ Object



37
38
39
40
41
42
# File 'lib/kube_deploy_tools/image_registry/driver/base.rb', line 37

def delete_images(images, dryrun)
  # Naive default implementation.
  images.each do |image|
    delete_image(image, dryrun)
  end
end

#push_image(image) ⇒ Object



15
16
17
# File 'lib/kube_deploy_tools/image_registry/driver/base.rb', line 15

def push_image(image)
  Shellrunner.check_call('docker', 'push', image.full_tag)
end

#unauthorizeObject



28
29
30
31
# File 'lib/kube_deploy_tools/image_registry/driver/base.rb', line 28

def unauthorize
  Logger.info "Performing registry unauthorization for #{@registry.prefix}"
  Shellrunner.check_call(*unauthorize_command, print_cmd: false)
end

#unauthorize_commandObject



33
34
35
# File 'lib/kube_deploy_tools/image_registry/driver/base.rb', line 33

def unauthorize_command
  raise "#{self.class}#unauthorize_command needs explicit implementation"
end