Class: KubernetesDeploy::Deployment
Constant Summary
collapse
- TIMEOUT =
5.minutes
KubernetesResource::DEBUG_RESOURCE_NOT_FOUND_MESSAGE, KubernetesResource::LOG_LINE_COUNT, KubernetesResource::STANDARD_TIMEOUT_MESSAGE, KubernetesResource::UNUSUAL_FAILURE_MESSAGE
Instance Attribute Summary
#context, #deploy_started, #name, #namespace, #type
Instance Method Summary
collapse
build, #debug_message, #deploy_finished?, #deploy_method, #failure_message, #file_path, #id, #initialize, #kubectl, #pretty_status, #status, timeout, #timeout, #timeout_message, #tpr?
Instance Method Details
#deploy_failed? ⇒ Boolean
44
45
46
|
# File 'lib/kubernetes-deploy/kubernetes_resource/deployment.rb', line 44
def deploy_failed?
@latest_rs && @latest_rs.deploy_failed?
end
|
#deploy_succeeded? ⇒ Boolean
35
36
37
38
39
40
41
42
|
# File 'lib/kubernetes-deploy/kubernetes_resource/deployment.rb', line 35
def deploy_succeeded?
return false unless @latest_rs
@latest_rs.deploy_succeeded? &&
@latest_rs.desired_replicas == @desired_replicas && @rollout_data["updatedReplicas"].to_i == @desired_replicas &&
@rollout_data["updatedReplicas"].to_i == @rollout_data["availableReplicas"].to_i
end
|
#deploy_timed_out? ⇒ Boolean
48
49
50
|
# File 'lib/kubernetes-deploy/kubernetes_resource/deployment.rb', line 48
def deploy_timed_out?
super || @latest_rs && @latest_rs.deploy_timed_out?
end
|
#exists? ⇒ Boolean
52
53
54
|
# File 'lib/kubernetes-deploy/kubernetes_resource/deployment.rb', line 52
def exists?
@found
end
|
#fetch_events ⇒ Object
24
25
26
27
28
|
# File 'lib/kubernetes-deploy/kubernetes_resource/deployment.rb', line 24
def fetch_events
own_events = super
return own_events unless @latest_rs.present?
own_events.merge(@latest_rs.fetch_events)
end
|
#fetch_logs ⇒ Object
30
31
32
33
|
# File 'lib/kubernetes-deploy/kubernetes_resource/deployment.rb', line 30
def fetch_logs
return {} unless @latest_rs.present?
@latest_rs.fetch_logs
end
|
#sync ⇒ Object
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'lib/kubernetes-deploy/kubernetes_resource/deployment.rb', line 6
def sync
raw_json, _err, st = kubectl.run("get", type, @name, "--output=json")
@found = st.success?
if @found
deployment_data = JSON.parse(raw_json)
@desired_replicas = deployment_data["spec"]["replicas"].to_i
@latest_rs = find_latest_rs(deployment_data)
@rollout_data = { "replicas" => 0 }.merge(deployment_data["status"]
.slice("replicas", "updatedReplicas", "availableReplicas", "unavailableReplicas"))
@status = @rollout_data.map { |state_replicas, num| "#{num} #{state_replicas.chop.pluralize(num)}" }.join(", ")
else @latest_rs = nil
@rollout_data = { "replicas" => 0 }
@status = nil
end
end
|