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