krane 2.3.0 → 2.3.4

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: 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