Class: PicsolveDockerBuilder::Helpers::Kubernetes::Pod

Inherits:
Resource
  • Object
show all
Defined in:
lib/picsolve_docker_builder/helpers/kubernetes/pod.rb

Overview

A generic kuberntes resource

Instance Attribute Summary collapse

Instance Method Summary collapse

Methods inherited from Resource

#client, #template_labels

Methods included from Base

#base_dir, #config, #config_file, #config_path, #config_paths, #create_logger, #default_config, #log, #read_config, #validate_config

Constructor Details

#initialize(pod, kubernetes) ⇒ Pod

Returns a new instance of Pod.



11
12
13
14
15
16
# File 'lib/picsolve_docker_builder/helpers/kubernetes/pod.rb', line 11

def initialize(pod, kubernetes)
  @pod = pod
  @kubernetes = kubernetes
  # seconds after a running pod consider as healthy
  @grace_time = 20
end

Instance Attribute Details

#podObject (readonly)

Returns the value of attribute pod.



9
10
11
# File 'lib/picsolve_docker_builder/helpers/kubernetes/pod.rb', line 9

def pod
  @pod
end

Instance Method Details

#ready?Boolean

Returns:

  • (Boolean)


23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/picsolve_docker_builder/helpers/kubernetes/pod.rb', line 23

def ready?
  # ensure pod is running
  return false unless pod.status.phase == 'Running'

  diff = DateTime.now - DateTime.strptime(pod.status.startTime)
  diff_seconds = diff * 24 * 60 * 60

  # ensure pod is running for more than 20 seconds
  return false if diff_seconds < @grace_time

  true
end

#removeObject



18
19
20
21
# File 'lib/picsolve_docker_builder/helpers/kubernetes/pod.rb', line 18

def remove
  log.debug "remove pod #{pod.metadata.name}"
  client.delete_pod(@pod..name, @pod..namespace)
end