krane 2.4.6 → 3.6.2
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 +4 -4
- data/.github/CODEOWNERS +1 -1
- data/.github/dependabot.yml +22 -0
- data/.github/workflows/add-to-project.yml +18 -0
- data/.github/workflows/ci.yml +35 -36
- data/.github/workflows/cla.yml +22 -0
- data/.gitignore +0 -1
- data/.ruby-version +1 -0
- data/1.0-Upgrade.md +1 -1
- data/CHANGELOG.md +98 -1
- data/CONTRIBUTING.md +6 -8
- data/Gemfile +2 -0
- data/README.md +39 -26
- data/bin/ci +1 -1
- data/bin/setup +2 -2
- data/bin/test +16 -9
- data/dev.yml +14 -15
- data/krane.gemspec +7 -7
- data/lib/krane/bindings_parser.rb +4 -3
- data/lib/krane/cli/krane.rb +6 -6
- data/lib/krane/cluster_resource_discovery.rb +4 -17
- data/lib/krane/common.rb +1 -1
- data/lib/krane/deploy_task.rb +5 -25
- data/lib/krane/ejson_secret_provisioner.rb +4 -4
- data/lib/krane/global_deploy_task.rb +2 -2
- data/lib/krane/kubeclient_builder.rb +2 -2
- data/lib/krane/kubectl.rb +21 -13
- data/lib/krane/kubernetes_resource/horizontal_pod_autoscaler.rb +1 -1
- data/lib/krane/kubernetes_resource/pod.rb +1 -0
- data/lib/krane/kubernetes_resource/service.rb +8 -0
- data/lib/krane/kubernetes_resource/stateful_set.rb +15 -11
- data/lib/krane/kubernetes_resource.rb +3 -18
- data/lib/krane/resource_cache.rb +1 -1
- data/lib/krane/resource_deployer.rb +7 -13
- data/lib/krane/restart_task.rb +2 -3
- data/lib/krane/rollout_conditions.rb +2 -2
- data/lib/krane/version.rb +1 -1
- metadata +26 -25
- data/.github/probots.yml +0 -2
- data/lib/krane/kubernetes_resource/mutating_webhook_configuration.rb +0 -87
- data/lib/krane/oj.rb +0 -4
metadata
CHANGED
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: krane
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version:
|
|
4
|
+
version: 3.6.2
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Katrina Verey
|
|
8
8
|
- Daniel Turner
|
|
9
9
|
- Kir Shatrov
|
|
10
|
-
autorequire:
|
|
10
|
+
autorequire:
|
|
11
11
|
bindir: exe
|
|
12
12
|
cert_chain: []
|
|
13
|
-
date:
|
|
13
|
+
date: 2024-08-21 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: activesupport
|
|
@@ -46,14 +46,14 @@ dependencies:
|
|
|
46
46
|
requirements:
|
|
47
47
|
- - "~>"
|
|
48
48
|
- !ruby/object:Gem::Version
|
|
49
|
-
version: '
|
|
49
|
+
version: '1.2'
|
|
50
50
|
type: :runtime
|
|
51
51
|
prerelease: false
|
|
52
52
|
version_requirements: !ruby/object:Gem::Requirement
|
|
53
53
|
requirements:
|
|
54
54
|
- - "~>"
|
|
55
55
|
- !ruby/object:Gem::Version
|
|
56
|
-
version: '
|
|
56
|
+
version: '1.2'
|
|
57
57
|
- !ruby/object:Gem::Dependency
|
|
58
58
|
name: ejson
|
|
59
59
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -91,7 +91,7 @@ dependencies:
|
|
|
91
91
|
version: '2.8'
|
|
92
92
|
- - "<"
|
|
93
93
|
- !ruby/object:Gem::Version
|
|
94
|
-
version: '
|
|
94
|
+
version: '3.9'
|
|
95
95
|
type: :runtime
|
|
96
96
|
prerelease: false
|
|
97
97
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -101,21 +101,21 @@ dependencies:
|
|
|
101
101
|
version: '2.8'
|
|
102
102
|
- - "<"
|
|
103
103
|
- !ruby/object:Gem::Version
|
|
104
|
-
version: '
|
|
104
|
+
version: '3.9'
|
|
105
105
|
- !ruby/object:Gem::Dependency
|
|
106
|
-
name:
|
|
106
|
+
name: multi_json
|
|
107
107
|
requirement: !ruby/object:Gem::Requirement
|
|
108
108
|
requirements:
|
|
109
|
-
- - "
|
|
109
|
+
- - ">="
|
|
110
110
|
- !ruby/object:Gem::Version
|
|
111
|
-
version: '
|
|
111
|
+
version: '0'
|
|
112
112
|
type: :runtime
|
|
113
113
|
prerelease: false
|
|
114
114
|
version_requirements: !ruby/object:Gem::Requirement
|
|
115
115
|
requirements:
|
|
116
|
-
- - "
|
|
116
|
+
- - ">="
|
|
117
117
|
- !ruby/object:Gem::Version
|
|
118
|
-
version: '
|
|
118
|
+
version: '0'
|
|
119
119
|
- !ruby/object:Gem::Dependency
|
|
120
120
|
name: concurrent-ruby
|
|
121
121
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -212,14 +212,14 @@ dependencies:
|
|
|
212
212
|
requirements:
|
|
213
213
|
- - "~>"
|
|
214
214
|
- !ruby/object:Gem::Version
|
|
215
|
-
version: '5.
|
|
215
|
+
version: '5.19'
|
|
216
216
|
type: :development
|
|
217
217
|
prerelease: false
|
|
218
218
|
version_requirements: !ruby/object:Gem::Requirement
|
|
219
219
|
requirements:
|
|
220
220
|
- - "~>"
|
|
221
221
|
- !ruby/object:Gem::Version
|
|
222
|
-
version: '5.
|
|
222
|
+
version: '5.19'
|
|
223
223
|
- !ruby/object:Gem::Dependency
|
|
224
224
|
name: minitest-stub-const
|
|
225
225
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -254,28 +254,28 @@ dependencies:
|
|
|
254
254
|
requirements:
|
|
255
255
|
- - "~>"
|
|
256
256
|
- !ruby/object:Gem::Version
|
|
257
|
-
version: '1
|
|
257
|
+
version: '2.1'
|
|
258
258
|
type: :development
|
|
259
259
|
prerelease: false
|
|
260
260
|
version_requirements: !ruby/object:Gem::Requirement
|
|
261
261
|
requirements:
|
|
262
262
|
- - "~>"
|
|
263
263
|
- !ruby/object:Gem::Version
|
|
264
|
-
version: '1
|
|
264
|
+
version: '2.1'
|
|
265
265
|
- !ruby/object:Gem::Dependency
|
|
266
266
|
name: webmock
|
|
267
267
|
requirement: !ruby/object:Gem::Requirement
|
|
268
268
|
requirements:
|
|
269
269
|
- - "~>"
|
|
270
270
|
- !ruby/object:Gem::Version
|
|
271
|
-
version: '3.
|
|
271
|
+
version: '3.18'
|
|
272
272
|
type: :development
|
|
273
273
|
prerelease: false
|
|
274
274
|
version_requirements: !ruby/object:Gem::Requirement
|
|
275
275
|
requirements:
|
|
276
276
|
- - "~>"
|
|
277
277
|
- !ruby/object:Gem::Version
|
|
278
|
-
version: '3.
|
|
278
|
+
version: '3.18'
|
|
279
279
|
- !ruby/object:Gem::Dependency
|
|
280
280
|
name: timecop
|
|
281
281
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -413,12 +413,15 @@ extra_rdoc_files: []
|
|
|
413
413
|
files:
|
|
414
414
|
- ".github/CODEOWNERS"
|
|
415
415
|
- ".github/ISSUE_TEMPLATE.md"
|
|
416
|
-
- ".github/
|
|
416
|
+
- ".github/dependabot.yml"
|
|
417
417
|
- ".github/pull_request_template.md"
|
|
418
|
+
- ".github/workflows/add-to-project.yml"
|
|
418
419
|
- ".github/workflows/ci.yml"
|
|
420
|
+
- ".github/workflows/cla.yml"
|
|
419
421
|
- ".gitignore"
|
|
420
422
|
- ".rubocop-http---shopify-github-io-ruby-style-guide-rubocop-yml"
|
|
421
423
|
- ".rubocop.yml"
|
|
424
|
+
- ".ruby-version"
|
|
422
425
|
- 1.0-Upgrade.md
|
|
423
426
|
- CHANGELOG.md
|
|
424
427
|
- CODE_OF_CONDUCT.md
|
|
@@ -472,7 +475,6 @@ files:
|
|
|
472
475
|
- lib/krane/kubernetes_resource/horizontal_pod_autoscaler.rb
|
|
473
476
|
- lib/krane/kubernetes_resource/ingress.rb
|
|
474
477
|
- lib/krane/kubernetes_resource/job.rb
|
|
475
|
-
- lib/krane/kubernetes_resource/mutating_webhook_configuration.rb
|
|
476
478
|
- lib/krane/kubernetes_resource/network_policy.rb
|
|
477
479
|
- lib/krane/kubernetes_resource/persistent_volume_claim.rb
|
|
478
480
|
- lib/krane/kubernetes_resource/pod.rb
|
|
@@ -488,7 +490,6 @@ files:
|
|
|
488
490
|
- lib/krane/kubernetes_resource/service_account.rb
|
|
489
491
|
- lib/krane/kubernetes_resource/stateful_set.rb
|
|
490
492
|
- lib/krane/label_selector.rb
|
|
491
|
-
- lib/krane/oj.rb
|
|
492
493
|
- lib/krane/options_helper.rb
|
|
493
494
|
- lib/krane/psych_k8s_compatibility.rb
|
|
494
495
|
- lib/krane/remote_logs.rb
|
|
@@ -511,7 +512,7 @@ licenses:
|
|
|
511
512
|
- MIT
|
|
512
513
|
metadata:
|
|
513
514
|
allowed_push_host: https://rubygems.org
|
|
514
|
-
post_install_message:
|
|
515
|
+
post_install_message:
|
|
515
516
|
rdoc_options: []
|
|
516
517
|
require_paths:
|
|
517
518
|
- lib
|
|
@@ -519,15 +520,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
519
520
|
requirements:
|
|
520
521
|
- - ">="
|
|
521
522
|
- !ruby/object:Gem::Version
|
|
522
|
-
version: 2.6
|
|
523
|
+
version: 2.7.6
|
|
523
524
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
524
525
|
requirements:
|
|
525
526
|
- - ">="
|
|
526
527
|
- !ruby/object:Gem::Version
|
|
527
528
|
version: '0'
|
|
528
529
|
requirements: []
|
|
529
|
-
rubygems_version: 3.
|
|
530
|
-
signing_key:
|
|
530
|
+
rubygems_version: 3.5.17
|
|
531
|
+
signing_key:
|
|
531
532
|
specification_version: 4
|
|
532
533
|
summary: A command line tool that helps you ship changes to a Kubernetes namespace
|
|
533
534
|
and understand the result
|
data/.github/probots.yml
DELETED
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
# frozen_string_literal: true
|
|
2
|
-
|
|
3
|
-
module Krane
|
|
4
|
-
class MutatingWebhookConfiguration < KubernetesResource
|
|
5
|
-
GLOBAL = true
|
|
6
|
-
|
|
7
|
-
class Webhook
|
|
8
|
-
EQUIVALENT = 'Equivalent'
|
|
9
|
-
EXACT = 'Exact'
|
|
10
|
-
|
|
11
|
-
class Rule
|
|
12
|
-
def initialize(definition)
|
|
13
|
-
@definition = definition
|
|
14
|
-
end
|
|
15
|
-
|
|
16
|
-
def matches_resource?(resource, accept_equivalent:)
|
|
17
|
-
groups.each do |group|
|
|
18
|
-
versions.each do |version|
|
|
19
|
-
resources.each do |kind|
|
|
20
|
-
return true if (resource.group == group || group == '*' || accept_equivalent) &&
|
|
21
|
-
(resource.version == version || version == '*' || accept_equivalent) &&
|
|
22
|
-
(resource.type.downcase == kind.downcase.singularize || kind == "*")
|
|
23
|
-
end
|
|
24
|
-
end
|
|
25
|
-
end
|
|
26
|
-
false
|
|
27
|
-
end
|
|
28
|
-
|
|
29
|
-
def groups
|
|
30
|
-
@definition.dig('apiGroups')
|
|
31
|
-
end
|
|
32
|
-
|
|
33
|
-
def versions
|
|
34
|
-
@definition.dig('apiVersions')
|
|
35
|
-
end
|
|
36
|
-
|
|
37
|
-
def resources
|
|
38
|
-
@definition.dig('resources')
|
|
39
|
-
end
|
|
40
|
-
end
|
|
41
|
-
|
|
42
|
-
def initialize(definition)
|
|
43
|
-
@definition = definition
|
|
44
|
-
end
|
|
45
|
-
|
|
46
|
-
def side_effects
|
|
47
|
-
@definition.dig('sideEffects')
|
|
48
|
-
end
|
|
49
|
-
|
|
50
|
-
def has_side_effects?
|
|
51
|
-
# Note: After K8s 1.22, this should ALWAYS be false.
|
|
52
|
-
!%w(None NoneOnDryRun).include?(side_effects)
|
|
53
|
-
end
|
|
54
|
-
|
|
55
|
-
def match_policy
|
|
56
|
-
@definition.dig('matchPolicy')
|
|
57
|
-
end
|
|
58
|
-
|
|
59
|
-
def matches_resource?(resource, skip_rule_if_side_effect_none: true)
|
|
60
|
-
return false if skip_rule_if_side_effect_none && !has_side_effects?
|
|
61
|
-
rules.any? do |rule|
|
|
62
|
-
rule.matches_resource?(resource, accept_equivalent: match_policy == EQUIVALENT)
|
|
63
|
-
end
|
|
64
|
-
end
|
|
65
|
-
|
|
66
|
-
def rules
|
|
67
|
-
@definition.fetch('rules', []).map { |rule| Rule.new(rule) }
|
|
68
|
-
end
|
|
69
|
-
end
|
|
70
|
-
|
|
71
|
-
def initialize(namespace:, context:, definition:, logger:, statsd_tags:)
|
|
72
|
-
@webhooks = (definition.dig('webhooks') || []).map { |hook| Webhook.new(hook) }
|
|
73
|
-
super(namespace: namespace, context: context, definition: definition,
|
|
74
|
-
logger: logger, statsd_tags: statsd_tags)
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
TIMEOUT = 30.seconds
|
|
78
|
-
|
|
79
|
-
def deploy_succeeded?
|
|
80
|
-
exists?
|
|
81
|
-
end
|
|
82
|
-
|
|
83
|
-
def webhooks
|
|
84
|
-
@definition.fetch('webhooks', []).map { |webhook| Webhook.new(webhook) }
|
|
85
|
-
end
|
|
86
|
-
end
|
|
87
|
-
end
|
data/lib/krane/oj.rb
DELETED