krane 2.4.2 → 2.4.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 422192af588ad4f4eb53c73fbf56ee6b8fc7dad69c5cec7dfe5a4f7b7f702b98
4
- data.tar.gz: 413719980210e537b8c4d1958d7867224cb5743905f489680caac3261a4b60c7
3
+ metadata.gz: 56b75748b54eff6f26c64869117e2ec648569a019e77068f13766ce5b371aab7
4
+ data.tar.gz: c0d9cb8a202f7a2ccdc0975e7447373bf725705af25ba2f799b02efc9a55ddcc
5
5
  SHA512:
6
- metadata.gz: a2ade15d59fe5fae20839c5aaa7002b3fbfc0e39373afbc7f66ddcde77f51f98451b2e5ac250147dd6cb4e0cc0cf23b234e764415a75764f53422f14f579ee74
7
- data.tar.gz: addcd5f11bdb4a6fe4b0eaf82056fbd7aff79831a6813888e01192fe7edd094b05f83399af4c0b34370076153f7bb469bee8ca4f2c4761fd3e8ae4f022dff56f
6
+ metadata.gz: 3e070999eba8cde1d8a9bc89b77643ef957c234f572a7537b060bac6b2664ea7b8efe9d765aa516b98aaad9ce0cde1e3cb47e5e260d3be4d64a9533a303fdb54
7
+ data.tar.gz: 6bf1e6adc954c2531f8d871872c5ac352aeb5359abfefd690ad42b289ebd35456fb75f6a69ccc733675134a44f670844f565d82726ac589480fc2c0e319c979f
data/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  ## next
2
2
 
3
+ ## 2.4.3
4
+
5
+ *Enhancements*
6
+
7
+ - Improve DaemonSet rollout [#881](https://github.com/Shopify/krane/pull/881)
8
+
3
9
  ## 2.4.2
4
10
 
5
11
  *Bug fixes*
@@ -9,7 +9,8 @@ module Krane
9
9
  def sync(cache)
10
10
  super
11
11
  @pods = exists? ? find_pods(cache) : []
12
- @nodes = find_nodes(cache) if @nodes.blank?
12
+
13
+ @nodes = refresh_nodes(cache)
13
14
  end
14
15
 
15
16
  def status
@@ -66,9 +67,24 @@ module Krane
66
67
  rollout_data["numberReady"].to_i >= considered_pods.length
67
68
  end
68
69
 
70
+ def refresh_nodes(cache)
71
+ new_nodes = find_nodes(cache)
72
+ return new_nodes if @nodes.blank?
73
+
74
+ # Remove non-existent nodes
75
+ @nodes.select do |node|
76
+ new_nodes.find { |n| n.name == node.name } != nil
77
+ end
78
+ end
79
+
69
80
  def find_nodes(cache)
70
81
  all_nodes = cache.get_all(Node.kind)
71
- all_nodes.map { |node_data| Node.new(definition: node_data) }
82
+ all_nodes.each_with_object([]) do |node_data, relevant_nodes|
83
+ next if node_data.dig('spec', 'unschedulable').to_s.downcase == 'true'
84
+ cond = node_data.dig('status', 'conditions').find { |c| c['type'].downcase == 'ready' }
85
+ next if (!cond.nil? && cond['status'].downcase != 'true')
86
+ relevant_nodes << Node.new(definition: node_data)
87
+ end
72
88
  end
73
89
 
74
90
  def rollout_data
data/lib/krane/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Krane
3
- VERSION = "2.4.2"
3
+ VERSION = "2.4.3"
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: krane
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.2
4
+ version: 2.4.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Katrina Verey
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: exe
12
12
  cert_chain: []
13
- date: 2022-03-08 00:00:00.000000000 Z
13
+ date: 2022-03-31 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport