Module: MKIt::DockerHelper

Included in:
CreatePodSaga, DestroyPodSaga, DockerListener, DockerLogListener, Pod, Service
Defined in:
lib/mkit/app/helpers/docker_helper.rb

Instance Method Summary collapse

Instance Method Details

#attach_network(network_id, instance_id) ⇒ Object



66
67
68
# File 'lib/mkit/app/helpers/docker_helper.rb', line 66

def attach_network(network_id, instance_id)
  MKIt::CmdRunner.run("docker network connect #{network_id} #{instance_id}")
end

#clear_logs(instance_id) ⇒ Object



45
46
47
# File 'lib/mkit/app/helpers/docker_helper.rb', line 45

def clear_logs(instance_id)
  `echo > #{logfile(instance_id)}`
end

#create_instance(cmd) ⇒ Object

from ERB template



8
9
10
# File 'lib/mkit/app/helpers/docker_helper.rb', line 8

def create_instance(cmd)
  MKIt::CmdRunner.run(cmd)
end

#create_network(network_name) ⇒ Object

network



53
54
55
# File 'lib/mkit/app/helpers/docker_helper.rb', line 53

def create_network(network_name)
  MKIt::CmdRunner.run("docker network create #{network_name}")
end

#create_volume(volume_name) ⇒ Object

volumes



78
79
80
# File 'lib/mkit/app/helpers/docker_helper.rb', line 78

def create_volume(volume_name)
  MKIt::CmdRunner.run("docker volume create #{volume_name}")
end

#delete_volume(volume_name) ⇒ Object



82
83
84
# File 'lib/mkit/app/helpers/docker_helper.rb', line 82

def delete_volume(volume_name)
  MKIt::CmdRunner.run("docker volume rm #{volume_name}")
end

#dettach_network(network_id, instance_id) ⇒ Object



62
63
64
# File 'lib/mkit/app/helpers/docker_helper.rb', line 62

def dettach_network(network_id, instance_id)
  MKIt::CmdRunner.run("docker network disconnect #{network_id} #{instance_id}")
end

#execute_local(instance_id, cmd) ⇒ Object



30
31
32
# File 'lib/mkit/app/helpers/docker_helper.rb', line 30

def execute_local(instance_id, cmd)
  MKIt::CmdRunner.run("docker exec -it #{instance_id} #{cmd}")
end

#inspect_instance(instance_id) ⇒ Object



24
25
26
27
28
# File 'lib/mkit/app/helpers/docker_helper.rb', line 24

def inspect_instance(instance_id)
  # this one does not work on ubunto MKIt::CmdRunner.run("docker inspect #{instance_id}")
  x = `docker inspect #{instance_id}`
  JSON.parse(x).first
end

#inspect_volume(volume_name) ⇒ Object



86
87
88
89
# File 'lib/mkit/app/helpers/docker_helper.rb', line 86

def inspect_volume(volume_name)
  x = MKIt::CmdRunner.run("docker volume inspect #{volume_name}")
  JSON.parse(x).first
end

#logfile(instance_id) ⇒ Object



41
42
43
# File 'lib/mkit/app/helpers/docker_helper.rb', line 41

def logfile(instance_id)
  `docker inspect --format='{{.LogPath}}' #{instance_id}`
end

#logs(instance_id) ⇒ Object

logs



37
38
39
# File 'lib/mkit/app/helpers/docker_helper.rb', line 37

def logs(instance_id)
  `docker logs -n 20 #{instance_id}`
end

#network_exists?(network_name) ⇒ Boolean

Returns:

  • (Boolean)


57
58
59
60
# File 'lib/mkit/app/helpers/docker_helper.rb', line 57

def network_exists?(network_name)
  x = MKIt::CmdRunner.run('docker network ls')
  x.match(/\b#{network_name}\b/)
end

#remove_instance(instance) ⇒ Object



20
21
22
# File 'lib/mkit/app/helpers/docker_helper.rb', line 20

def remove_instance(instance)
  MKIt::CmdRunner.run("docker rm -f #{instance}")
end

#remove_network(network_id) ⇒ Object



70
71
72
# File 'lib/mkit/app/helpers/docker_helper.rb', line 70

def remove_network(network_id)
  MKIt::CmdRunner.run("docker network rm #{network_id}")
end

#start_instance(instance_id) ⇒ Object



12
13
14
# File 'lib/mkit/app/helpers/docker_helper.rb', line 12

def start_instance(instance_id)
  MKIt::CmdRunner.run("docker start #{instance_id}")
end

#stop_instance(instance_id) ⇒ Object



16
17
18
# File 'lib/mkit/app/helpers/docker_helper.rb', line 16

def stop_instance(instance_id)
  MKIt::CmdRunner.run("docker stop #{instance_id}")
end

#to_docker_cpu_limit(k8s_cpu_limits) ⇒ Object

cpu limits



93
94
95
96
97
98
99
100
101
102
103
104
# File 'lib/mkit/app/helpers/docker_helper.rb', line 93

def to_docker_cpu_limit(k8s_cpu_limits)
  if k8s_cpu_limits.nil?
    nil
  else
    cpu_limit = k8s_cpu_limits.to_s
    if cpu_limit.include?('m')
      cpu_limit = cpu_limit.delete_suffix('m')
      cpu_limit = (cpu_limit.to_f / 1000).to_s
    end
    cpu_limit
  end
end