Class: Nvoi::External::Containerd
- Inherits:
-
Object
- Object
- Nvoi::External::Containerd
- Defined in:
- lib/nvoi/external/containerd.rb
Overview
Containerd manages container operations on remote servers via containerd/ctr Used for image listing and cleanup on the remote server
Instance Attribute Summary collapse
-
#ssh ⇒ Object
readonly
Returns the value of attribute ssh.
Instance Method Summary collapse
- #cleanup_old_images(prefix, keep_tags) ⇒ Object
-
#initialize(ssh) ⇒ Containerd
constructor
A new instance of Containerd.
- #list_images(filter) ⇒ Object
Constructor Details
#initialize(ssh) ⇒ Containerd
Returns a new instance of Containerd.
10 11 12 |
# File 'lib/nvoi/external/containerd.rb', line 10 def initialize(ssh) @ssh = ssh end |
Instance Attribute Details
#ssh ⇒ Object (readonly)
Returns the value of attribute ssh.
8 9 10 |
# File 'lib/nvoi/external/containerd.rb', line 8 def ssh @ssh end |
Instance Method Details
#cleanup_old_images(prefix, keep_tags) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/nvoi/external/containerd.rb', line 23 def cleanup_old_images(prefix, ) all_images = list_images(prefix) return if all_images.empty? remove_images = all_images.reject do |img| .any? { |tag| img.include?(tag) } end return if remove_images.empty? remove_images.each do |img| @ssh.execute_ignore_errors("sudo ctr -n k8s.io images rm #{img}") end end |
#list_images(filter) ⇒ Object
14 15 16 17 18 19 20 21 |
# File 'lib/nvoi/external/containerd.rb', line 14 def list_images(filter) output = @ssh.execute("sudo ctr -n k8s.io images ls -q | grep '#{filter}' | sort -r") return [] if output.empty? output.split("\n") rescue Errors::SshCommandError [] end |