krane 2.3.0 → 2.3.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 676fdc875449178de6e0f4ff1f649271bd691637e4e56d540c5e5ea71dc8ded4
4
- data.tar.gz: 6a16a1e9e32947b0bd6aff7f679ca7f4958a4ef4d3c27e8855fc2a7a6e39abfa
3
+ metadata.gz: 3e1fd1232d053c7f2bc648a315551c103ebd4792165f7b8c9b81f1c0b2f810bc
4
+ data.tar.gz: 214360319ed90c6bc752d99ee1b3e08244703ad56d3b5e964993fccee2b7562c
5
5
  SHA512:
6
- metadata.gz: 20aad308cbb7c96ad518d0bb57026d6b95e6e8ced1f9eb968c2d144906920a45da272fdf20c94fd8d455a6265b266b6d10912573839e48b08c8162c382905774
7
- data.tar.gz: 31711f6a966d5364d6e084eb67b8bdcff4e511e40967cc9fb0528a9e8dd1739ed3f59363ab1dd2ba122d40331019eaf2a9ef850830d6c92ddcdfc5a291bd5e89
6
+ metadata.gz: a98198f5aed91b383295bf7ddcd9dad6bdcc68d5361582ef873fa53b7b191d92963c9bd359c841f0c95b7e3c007e0f32dbc331019d5c8a4bf2c4358ccf0aac5c
7
+ data.tar.gz: 6267bef54343cdf3c301cab0bd377a1d6110b1c2862bdf2dc5288fd0ffba8337a1cc88aa7e708e8a19dd042646699e3ad64c3d23171e0f23a9a5f5a85fcf470c
data/.github/CODEOWNERS CHANGED
@@ -1 +1 @@
1
- * @Shopify/krane
1
+ * @Shopify/app-lifecycle
data/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  ## next
2
2
 
3
+ ## 2.3.4
4
+
5
+ - Fix for [CVE-2021-41817](https://www.ruby-lang.org/en/news/2021/11/15/date-parsing-method-regexp-dos-cve-2021-41817/). See [ServicesDB action item here](https://services.shopify.io/action_items/definitions/isolated/59).
6
+
7
+ ## 2.3.3
8
+
9
+ - Another Psych 4.0 compatibility fix [#844](https://github.com/Shopify/krane/pull/844)
10
+
11
+ ## 2.3.2
12
+
13
+ - Fix compatibility with Psych 4.0 [#843](https://github.com/Shopify/krane/pull/843)
14
+
15
+ ## 2.3.1
16
+
17
+ - Fix a bug in RestartTask where a NoMethodError is thrown if any of the target resources do not have annotations [#841](https://github.com/Shopify/krane/pull/841)
18
+
3
19
  ## 2.3.0
4
20
 
5
21
  - Restart tasks now support restarting StatefulSets and DaemonSets, in addition to Deployments [#836](https://github.com/Shopify/krane/pull/836)
data/krane.gemspec CHANGED
@@ -27,6 +27,8 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.required_ruby_version = '>= 2.6.0'
29
29
  spec.add_dependency("activesupport", ">= 5.0")
30
+ spec.add_dependency("cgi")
31
+ spec.add_dependency("date")
30
32
  spec.add_dependency("kubeclient", "~> 4.3")
31
33
  spec.add_dependency("googleauth", "~> 0.8")
32
34
  spec.add_dependency("ejson", "~> 1.0")
@@ -58,7 +58,7 @@ module Krane
58
58
  template = File.read(partial_path)
59
59
  expanded_template = ERB.new(template, trim_mode: '-').result(erb_binding)
60
60
 
61
- docs = Psych.parse_stream(expanded_template, partial_path)
61
+ docs = Psych.parse_stream(expanded_template, filename: partial_path)
62
62
  # If the partial contains multiple documents or has an explicit document header,
63
63
  # we know it cannot validly be indented in the parent, so return it immediately.
64
64
  return expanded_template unless docs.children.one? && docs.children.first.implicit
@@ -166,7 +166,7 @@ module Krane
166
166
  selector_string = selector.to_s
167
167
  apps_v1_kubeclient.get_deployments(namespace: @namespace, label_selector: selector_string)
168
168
  end
169
- deployments.select { |d| d.metadata.annotations[ANNOTATION] }
169
+ deployments.select { |d| d.dig(:metadata, :annotations, ANNOTATION) }
170
170
  end
171
171
 
172
172
  def identify_target_statefulsets(selector: nil)
@@ -176,7 +176,7 @@ module Krane
176
176
  selector_string = selector.to_s
177
177
  apps_v1_kubeclient.get_stateful_sets(namespace: @namespace, label_selector: selector_string)
178
178
  end
179
- statefulsets.select { |d| d.metadata.annotations[ANNOTATION] }
179
+ statefulsets.select { |ss| ss.dig(:metadata, :annotations, ANNOTATION) }
180
180
  end
181
181
 
182
182
  def identify_target_daemonsets(selector: nil)
@@ -186,7 +186,7 @@ module Krane
186
186
  selector_string = selector.to_s
187
187
  apps_v1_kubeclient.get_daemon_sets(namespace: @namespace, label_selector: selector_string)
188
188
  end
189
- daemonsets.select { |d| d.metadata.annotations[ANNOTATION] }
189
+ daemonsets.select { |ds| ds.dig(:metadata, :annotations, ANNOTATION) }
190
190
  end
191
191
 
192
192
  def build_watchables(kubeclient_resources, started, klass)
@@ -77,7 +77,7 @@ module Krane
77
77
  def templates(filename:, raw:)
78
78
  file_content = File.read(File.join(@template_dir, filename))
79
79
  rendered_content = @renderer ? @renderer.render_template(filename, file_content) : file_content
80
- YAML.load_stream(rendered_content, "<rendered> #{filename}") do |doc|
80
+ YAML.load_stream(rendered_content, filename: "<rendered> #{filename}") do |doc|
81
81
  next if doc.blank?
82
82
  unless doc.is_a?(Hash)
83
83
  raise InvalidTemplateError.new("Template is not a valid Kubernetes manifest",
data/lib/krane/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Krane
3
- VERSION = "2.3.0"
3
+ VERSION = "2.3.4"
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.3.0
4
+ version: 2.3.4
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: 2021-10-01 00:00:00.000000000 Z
13
+ date: 2021-11-24 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -26,6 +26,34 @@ dependencies:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  version: '5.0'
29
+ - !ruby/object:Gem::Dependency
30
+ name: cgi
31
+ requirement: !ruby/object:Gem::Requirement
32
+ requirements:
33
+ - - ">="
34
+ - !ruby/object:Gem::Version
35
+ version: '0'
36
+ type: :runtime
37
+ prerelease: false
38
+ version_requirements: !ruby/object:Gem::Requirement
39
+ requirements:
40
+ - - ">="
41
+ - !ruby/object:Gem::Version
42
+ version: '0'
43
+ - !ruby/object:Gem::Dependency
44
+ name: date
45
+ requirement: !ruby/object:Gem::Requirement
46
+ requirements:
47
+ - - ">="
48
+ - !ruby/object:Gem::Version
49
+ version: '0'
50
+ type: :runtime
51
+ prerelease: false
52
+ version_requirements: !ruby/object:Gem::Requirement
53
+ requirements:
54
+ - - ">="
55
+ - !ruby/object:Gem::Version
56
+ version: '0'
29
57
  - !ruby/object:Gem::Dependency
30
58
  name: kubeclient
31
59
  requirement: !ruby/object:Gem::Requirement