krane 2.4.0 → 2.4.1
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/CHANGELOG.md +11 -0
- data/README.md +1 -1
- data/lib/krane/kubernetes_resource/stateful_set.rb +4 -6
- data/lib/krane/restart_task.rb +24 -11
- data/lib/krane/template_sets.rb +2 -2
- data/lib/krane/version.rb +1 -1
- metadata +2 -3
- data/.buildkite/pipeline.nightly.yml +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 93f7d9e842d616ea60e2c509f5e5a3fcb54d24375d426efd0345ba3a07dd2008
|
4
|
+
data.tar.gz: 24ccdd3165654319b55632a866f85839268644cb32ee719f55f03de6e5f63eb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1c90430d28fe8513dd86aef6d160e04257beb66f294b998d780c66b27d8bdb7e5320947b06894399c49bcb336795f72a338fb197f3be4626467bfb286bbde2f0
|
7
|
+
data.tar.gz: 98fc07319ed605978d558777cea947a187bf3857d229b95945096d446fdbacd2637102e34a9e03afb9f5472105ce39d5d396f9c1cf8bc6f4c0677f28e6b88e9b
|
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,16 @@
|
|
1
1
|
## next
|
2
2
|
|
3
|
+
## 2.4.1
|
4
|
+
|
5
|
+
*Enhancements*
|
6
|
+
|
7
|
+
- Support restart task for stateful sets that use the `OnDelete` strategy [#840](https://github.com/Shopify/krane/pull/840)
|
8
|
+
- Make `krane render` produce output in a deterministic order [#871](https://github.com/Shopify/krane/pull/871)
|
9
|
+
|
10
|
+
*Other*
|
11
|
+
|
12
|
+
- Remove buildkite [#869](https://github.com/Shopify/krane/pull/869)
|
13
|
+
|
3
14
|
## 2.4.0
|
4
15
|
|
5
16
|
*Enhancements*
|
data/README.md
CHANGED
@@ -73,7 +73,7 @@ If you need the ability to render dynamic values in templates before deploying,
|
|
73
73
|
|
74
74
|
## Prerequisites
|
75
75
|
|
76
|
-
* Ruby 2.
|
76
|
+
* Ruby 2.7+
|
77
77
|
* Your cluster must be running Kubernetes v1.19.0 or higher<sup>1</sup>
|
78
78
|
|
79
79
|
<sup>1</sup> We run integration tests against these Kubernetes versions. You can find our
|
@@ -27,13 +27,11 @@ module Krane
|
|
27
27
|
"Consider switching to rollingUpdate.")
|
28
28
|
@success_assumption_warning_shown = true
|
29
29
|
end
|
30
|
-
true
|
31
|
-
else
|
32
|
-
observed_generation == current_generation &&
|
33
|
-
status_data['currentRevision'] == status_data['updateRevision'] &&
|
34
|
-
desired_replicas == status_data['readyReplicas'].to_i &&
|
35
|
-
desired_replicas == status_data['currentReplicas'].to_i
|
36
30
|
end
|
31
|
+
observed_generation == current_generation &&
|
32
|
+
status_data['currentRevision'] == status_data['updateRevision'] &&
|
33
|
+
desired_replicas == status_data['readyReplicas'].to_i &&
|
34
|
+
desired_replicas == status_data['currentReplicas'].to_i
|
37
35
|
end
|
38
36
|
|
39
37
|
def deploy_failed?
|
data/lib/krane/restart_task.rb
CHANGED
@@ -69,10 +69,10 @@ module Krane
|
|
69
69
|
deployments, statefulsets, daemonsets = identify_target_workloads(deployments, statefulsets,
|
70
70
|
daemonsets, selector: selector)
|
71
71
|
|
72
|
-
@logger.phase_heading("Triggering restart
|
73
|
-
|
74
|
-
|
75
|
-
|
72
|
+
@logger.phase_heading("Triggering restart")
|
73
|
+
restart_deployments!(deployments)
|
74
|
+
restart_statefulsets!(statefulsets)
|
75
|
+
restart_daemonsets!(daemonsets)
|
76
76
|
|
77
77
|
if verify_result
|
78
78
|
@logger.phase_heading("Waiting for rollout")
|
@@ -210,7 +210,15 @@ module Krane
|
|
210
210
|
apps_v1_kubeclient.patch_daemon_set(record.metadata.name, build_patch_payload(record), @namespace)
|
211
211
|
end
|
212
212
|
|
213
|
-
def
|
213
|
+
def delete_statefulset_pods(record)
|
214
|
+
pods = kubeclient.get_pods(namespace: record.metadata.namespace)
|
215
|
+
pods.select! do |pod|
|
216
|
+
pod.metadata.ownerReferences.find { |ref| ref.uid == record.metadata.uid }
|
217
|
+
end
|
218
|
+
pods.each { |pod| kubeclient.delete_pod(pod.metadata.name, pod.metadata.namespace) }
|
219
|
+
end
|
220
|
+
|
221
|
+
def restart_deployments!(deployments)
|
214
222
|
deployments.each do |record|
|
215
223
|
begin
|
216
224
|
patch_deployment_with_restart(record)
|
@@ -221,18 +229,23 @@ module Krane
|
|
221
229
|
end
|
222
230
|
end
|
223
231
|
|
224
|
-
def
|
232
|
+
def restart_statefulsets!(statefulsets)
|
225
233
|
statefulsets.each do |record|
|
226
|
-
|
234
|
+
@logger.info("Triggered `StatefulSet/#{record.metadata.name}` restart")
|
235
|
+
if record.spec.updateStrategy&.type == "OnDelete"
|
236
|
+
@logger.info("`StatefulSet/#{record.metadata.name}` has updateStrategy: OnDelete," \
|
237
|
+
" Restarting by forcefully deleting child pods"
|
238
|
+
)
|
239
|
+
delete_statefulset_pods(record)
|
240
|
+
else
|
227
241
|
patch_statefulset_with_restart(record)
|
228
|
-
@logger.info("Triggered `StatefulSet/#{record.metadata.name}` restart")
|
229
|
-
rescue Kubeclient::HttpError => e
|
230
|
-
raise RestartAPIError.new(record.metadata.name, e.message)
|
231
242
|
end
|
243
|
+
rescue Kubeclient::HttpError => e
|
244
|
+
raise RestartAPIError.new(record.metadata.name, e.message)
|
232
245
|
end
|
233
246
|
end
|
234
247
|
|
235
|
-
def
|
248
|
+
def restart_daemonsets!(daemonsets)
|
236
249
|
daemonsets.each do |record|
|
237
250
|
begin
|
238
251
|
patch_daemonset_with_restart(record)
|
data/lib/krane/template_sets.rb
CHANGED
@@ -104,11 +104,11 @@ module Krane
|
|
104
104
|
dir_paths.each do |template_dir|
|
105
105
|
resource_templates[template_dir] = Dir.foreach(template_dir).select do |filename|
|
106
106
|
filename.end_with?(*VALID_TEMPLATES) || filename == EjsonSecretProvisioner::EJSON_SECRETS_FILE
|
107
|
-
end
|
107
|
+
end.sort
|
108
108
|
end
|
109
109
|
|
110
110
|
# Filename paths
|
111
|
-
file_paths.each do |filename|
|
111
|
+
file_paths.sort.each do |filename|
|
112
112
|
dir_name = File.dirname(filename)
|
113
113
|
resource_templates[dir_name] ||= []
|
114
114
|
resource_templates[dir_name] << File.basename(filename) unless resource_templates[dir_name].include?(filename)
|
data/lib/krane/version.rb
CHANGED
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.
|
4
|
+
version: 2.4.1
|
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-
|
13
|
+
date: 2022-02-02 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -411,7 +411,6 @@ executables:
|
|
411
411
|
extensions: []
|
412
412
|
extra_rdoc_files: []
|
413
413
|
files:
|
414
|
-
- ".buildkite/pipeline.nightly.yml"
|
415
414
|
- ".github/CODEOWNERS"
|
416
415
|
- ".github/ISSUE_TEMPLATE.md"
|
417
416
|
- ".github/probots.yml"
|
@@ -1,15 +0,0 @@
|
|
1
|
-
steps:
|
2
|
-
- name: 'Run Test Suite (:kubernetes: 1.16-latest)'
|
3
|
-
command: bin/ci
|
4
|
-
agents:
|
5
|
-
queue: k8s-ci
|
6
|
-
env:
|
7
|
-
LOGGING_LEVEL: 4
|
8
|
-
KUBERNETES_VERSION: v1.16-latest
|
9
|
-
- name: 'Run Test Suite (:kubernetes: 1.15-latest)'
|
10
|
-
command: bin/ci
|
11
|
-
agents:
|
12
|
-
queue: k8s-ci
|
13
|
-
env:
|
14
|
-
LOGGING_LEVEL: 4
|
15
|
-
KUBERNETES_VERSION: v1.15-latest
|