class Krane::ReplicaSet
Constants
- SYNC_DEPENDENCIES
- TIMEOUT
Attributes
pods[R]
Public Class Methods
new(namespace:, context:, definition:, logger:, statsd_tags: nil, parent: nil, deploy_started_at: nil)
click to toggle source
Calls superclass method
Krane::KubernetesResource::new
# File lib/krane/kubernetes_resource/replica_set.rb, line 10 def initialize(namespace:, context:, definition:, logger:, statsd_tags: nil, parent: nil, deploy_started_at: nil) @parent = parent @deploy_started_at = deploy_started_at @pods = [] super(namespace: namespace, context: context, definition: definition, logger: logger, statsd_tags: statsd_tags) end
Public Instance Methods
available_replicas()
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 51 def available_replicas return -1 unless exists? rollout_data["availableReplicas"].to_i end
deploy_failed?()
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 35 def deploy_failed? pods.present? && pods.all?(&:deploy_failed?) && !stale_status? end
deploy_succeeded?()
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 29 def deploy_succeeded? return false if stale_status? desired_replicas == rollout_data["availableReplicas"].to_i && desired_replicas == rollout_data["readyReplicas"].to_i end
desired_replicas()
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 41 def desired_replicas return -1 unless exists? @instance_data["spec"]["replicas"].to_i end
ready_replicas()
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 46 def ready_replicas return -1 unless exists? rollout_data['readyReplicas'].to_i end
status()
click to toggle source
Calls superclass method
Krane::KubernetesResource#status
# File lib/krane/kubernetes_resource/replica_set.rb, line 24 def status return super unless rollout_data.present? rollout_data.map { |state_replicas, num| "#{num} #{state_replicas.chop.pluralize(num)}" }.join(", ") end
sync(cache)
click to toggle source
Calls superclass method
Krane::KubernetesResource#sync
# File lib/krane/kubernetes_resource/replica_set.rb, line 19 def sync(cache) super @pods = exists? ? find_pods(cache) : [] end
Private Instance Methods
parent_of_pod?(pod_data)
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 69 def parent_of_pod?(pod_data) return false unless pod_data.dig("metadata", "ownerReferences") pod_data["metadata"]["ownerReferences"].any? { |ref| ref["uid"] == @instance_data["metadata"]["uid"] } end
rollout_data()
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 62 def rollout_data return { "replicas" => 0 } unless exists? { "replicas" => 0 }.merge( @instance_data["status"].slice("replicas", "availableReplicas", "readyReplicas") ) end
stale_status?()
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 58 def stale_status? observed_generation != current_generation end
unmanaged?()
click to toggle source
# File lib/krane/kubernetes_resource/replica_set.rb, line 74 def unmanaged? @parent.blank? end