Class: PicsolveDockerBuilder::Helpers::Kubernetes::Pod
- Defined in:
- lib/picsolve_docker_builder/helpers/kubernetes/pod.rb
Overview
A generic kuberntes resource
Instance Attribute Summary collapse
-
#pod ⇒ Object
readonly
Returns the value of attribute pod.
Instance Method Summary collapse
-
#initialize(pod, kubernetes) ⇒ Pod
constructor
A new instance of Pod.
- #ready? ⇒ Boolean
- #remove ⇒ Object
Methods inherited from Resource
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
#pod ⇒ Object (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
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 |
#remove ⇒ Object
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 |