krane 3.4.1 → 3.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/workflows/ci.yml +10 -5
- data/CHANGELOG.md +11 -1
- data/README.md +3 -2
- data/bin/test +15 -8
- data/lib/krane/cli/deploy_command.rb +0 -2
- data/lib/krane/deploy_task.rb +2 -13
- data/lib/krane/resource_deployer.rb +0 -7
- data/lib/krane/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 03c1d40b511ff2e7ad4c2e761954e547291257b2392e162fa5d85858ecc1628d
|
4
|
+
data.tar.gz: 6acb35faad05f8369063c5bd4eb54b3c09789f215f0d4c8de04de46b6d6fbfbe
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b2fe1f07cc83ca37b75e36994e03c7b70710d0bce032d3ee385ff6a5c323e53c4a34026dfe1c087d7e606b4f5f11bd8651ac076c5726a0d83f5db7e8ad71a9b1
|
7
|
+
data.tar.gz: 4a1a42234bc5cf09f9ebc1ce07994997e9c51e40d8ec236f53f26139b90bd646629d46cbbd57dfa6c1ddbb82f38c16778f1b23605cb4b8e00a2f82c2ad3eab28
|
data/.github/workflows/ci.yml
CHANGED
@@ -6,7 +6,7 @@ jobs:
|
|
6
6
|
ruby-tests:
|
7
7
|
runs-on: ubuntu-latest
|
8
8
|
|
9
|
-
name: "Tests - Ruby ${{ matrix.ruby }} with Kubernetes ${{ matrix.kubernetes_version }}"
|
9
|
+
name: "Tests (${{matrix.test_suite}}) - Ruby ${{ matrix.ruby }} with Kubernetes ${{ matrix.kubernetes_version }}"
|
10
10
|
strategy:
|
11
11
|
fail-fast: false
|
12
12
|
matrix:
|
@@ -16,19 +16,24 @@ jobs:
|
|
16
16
|
- "3.0.4"
|
17
17
|
- "2.7.6"
|
18
18
|
kubernetes_version:
|
19
|
+
- "1.28.0"
|
19
20
|
- "1.27.3"
|
20
21
|
- "1.26.4"
|
21
22
|
- "1.24.13"
|
22
|
-
|
23
|
+
test_suite:
|
24
|
+
- "unit_test"
|
25
|
+
- "cli_test"
|
26
|
+
- "serial_integration_test"
|
27
|
+
- "integration_test"
|
23
28
|
include:
|
29
|
+
- kubernetes_version: "1.28.0"
|
30
|
+
kind_image: "kindest/node:v1.28.0@sha256:dad5a6238c5e41d7cac405fae3b5eda2ad1de6f1190fa8bfc64ff5bb86173213"
|
24
31
|
- kubernetes_version: "1.27.3"
|
25
32
|
kind_image: "kindest/node:v1.27.3@sha256:9dd3392d79af1b084671b05bcf65b21de476256ad1dcc853d9f3b10b4ac52dde"
|
26
33
|
- kubernetes_version: "1.26.4"
|
27
34
|
kind_image: "kindest/node:v1.26.4@sha256:a539833d26264444ab3b8f5e56e23fa3361436445fa23c864e6dec622458858f"
|
28
35
|
- kubernetes_version: "1.24.13"
|
29
36
|
kind_image: "kindest/node:v1.24.13@sha256:c9e00e2b228e47ba3c96eaf0309b27dc3f73e444944e4c900016fd07b1b805cb"
|
30
|
-
- kubernetes_version: "1.23.17"
|
31
|
-
kind_image: "kindest/node:v1.23.17@sha256:eb33093b461ffee7614ca65a39ac0fb57982e1407dc38df4df92811c4fbcb687"
|
32
37
|
|
33
38
|
steps:
|
34
39
|
- uses: actions/checkout@v3
|
@@ -52,4 +57,4 @@ jobs:
|
|
52
57
|
|
53
58
|
- name: Run tests
|
54
59
|
run: |
|
55
|
-
bin/test
|
60
|
+
bin/test ${{matrix.test_suite}}
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,18 @@
|
|
1
1
|
## next
|
2
2
|
|
3
|
+
# 3.5.0
|
4
|
+
|
5
|
+
- Test against k8s 1.28
|
6
|
+
- Drop support for k8s 1.23
|
7
|
+
|
8
|
+
# 3.4.2
|
9
|
+
|
10
|
+
- Remove flag `--skip-dry-run` (see [#946](https://github.com/Shopify/krane/pull/946))
|
11
|
+
- Remove support for batched server-side dry-run ([#946](https://github.com/Shopify/krane/pull/946))
|
12
|
+
|
3
13
|
# 3.4.1
|
4
14
|
|
5
|
-
- Added flag `--skip-dry-run` to completely opt out of dry run validation.
|
15
|
+
- Added flag `--skip-dry-run` to completely opt out of dry run validation.
|
6
16
|
|
7
17
|
# 3.4.0
|
8
18
|
|
data/README.md
CHANGED
@@ -74,7 +74,7 @@ If you need the ability to render dynamic values in templates before deploying,
|
|
74
74
|
## Prerequisites
|
75
75
|
|
76
76
|
* Ruby 2.7+
|
77
|
-
* Your cluster must be running Kubernetes v1.
|
77
|
+
* Your cluster must be running Kubernetes v1.24.0 or higher<sup>1</sup>
|
78
78
|
|
79
79
|
## Compatibility
|
80
80
|
|
@@ -89,11 +89,12 @@ Krane provides support for official upstream supported versions [Kubernetes](htt
|
|
89
89
|
| 1.20 | No | 2.4.9 |
|
90
90
|
| 1.21 | No | 2.4.9 |
|
91
91
|
| 1.22 | No | 3.0.1 |
|
92
|
-
| 1.23 |
|
92
|
+
| 1.23 | No | 3.4.2 |
|
93
93
|
| 1.24 | Yes | -- |
|
94
94
|
| 1.25 | No | -- |
|
95
95
|
| 1.26 | Yes | -- |
|
96
96
|
| 1.27 | Yes | -- |
|
97
|
+
| 1.28 | Yes | -- |
|
97
98
|
|
98
99
|
## Installation
|
99
100
|
|
data/bin/test
CHANGED
@@ -33,16 +33,23 @@ if [[ "${CI:-0}" != "0" ]]; then
|
|
33
33
|
PARALLELISM=2
|
34
34
|
fi
|
35
35
|
|
36
|
-
|
37
|
-
bundle exec rake cli_test
|
36
|
+
test_type=$1
|
38
37
|
|
39
|
-
print_header "Run Unit Tests"
|
40
|
-
bundle exec rake unit_test
|
41
38
|
|
42
|
-
|
43
|
-
|
39
|
+
case $test_type in
|
40
|
+
cli_test | unit_test | serial_integration_test)
|
41
|
+
print_header $test_type
|
42
|
+
bundle exec rake $test_type
|
43
|
+
;;
|
44
44
|
|
45
|
-
|
46
|
-
|
45
|
+
integration_test)
|
46
|
+
print_header "Run Parallel Integration Tests (MT_CPU=$PARALLELISM)"
|
47
|
+
PARALLELIZE_ME=1 MT_CPU=$PARALLELISM bundle exec rake integration_test
|
48
|
+
;;
|
49
|
+
|
50
|
+
*)
|
51
|
+
echo "Argument must be one of: unit_test, cli_test, serial_integration_test, integration_test"
|
52
|
+
;;
|
53
|
+
esac
|
47
54
|
|
48
55
|
test $err -eq 0
|
@@ -33,7 +33,6 @@ module Krane
|
|
33
33
|
default: false },
|
34
34
|
"verify-result" => { type: :boolean, default: true,
|
35
35
|
desc: "Verify workloads correctly deployed" },
|
36
|
-
"skip-dry-run" => { type: :boolean, desc: "Enable skipping dry run", default: false},
|
37
36
|
}
|
38
37
|
|
39
38
|
def self.from_options(namespace, context, options)
|
@@ -72,7 +71,6 @@ module Krane
|
|
72
71
|
selector: selector,
|
73
72
|
selector_as_filter: selector_as_filter,
|
74
73
|
protected_namespaces: protected_namespaces,
|
75
|
-
skip_dry_run: options["skip-dry-run"]
|
76
74
|
)
|
77
75
|
|
78
76
|
deploy.run!(
|
data/lib/krane/deploy_task.rb
CHANGED
@@ -106,7 +106,7 @@ module Krane
|
|
106
106
|
# @param render_erb [Boolean] Enable ERB rendering
|
107
107
|
def initialize(namespace:, context:, current_sha: nil, logger: nil, kubectl_instance: nil, bindings: {},
|
108
108
|
global_timeout: nil, selector: nil, selector_as_filter: false, filenames: [], protected_namespaces: nil,
|
109
|
-
render_erb: false, kubeconfig: nil
|
109
|
+
render_erb: false, kubeconfig: nil)
|
110
110
|
@logger = logger || Krane::FormattedLogger.build(namespace, context)
|
111
111
|
@template_sets = TemplateSets.from_dirs_and_files(paths: filenames, logger: @logger, render_erb: render_erb)
|
112
112
|
@task_config = Krane::TaskConfig.new(context, namespace, @logger, kubeconfig)
|
@@ -121,7 +121,6 @@ module Krane
|
|
121
121
|
@selector_as_filter = selector_as_filter
|
122
122
|
@protected_namespaces = protected_namespaces || PROTECTED_NAMESPACES
|
123
123
|
@render_erb = render_erb
|
124
|
-
@skip_dry_run = skip_dry_run
|
125
124
|
end
|
126
125
|
|
127
126
|
# Runs the task, returning a boolean representing success or failure
|
@@ -287,15 +286,9 @@ module Krane
|
|
287
286
|
|
288
287
|
def validate_resources(resources)
|
289
288
|
validate_globals(resources)
|
290
|
-
batch_dry_run_success = @skip_dry_run || validate_dry_run(resources)
|
291
289
|
resources.select! { |r| r.selected?(@selector) } if @selector_as_filter
|
292
290
|
Krane::Concurrency.split_across_threads(resources) do |r|
|
293
|
-
|
294
|
-
if batch_dry_run_success
|
295
|
-
r.validate_definition(kubectl: nil, selector: @selector, dry_run: false)
|
296
|
-
else
|
297
|
-
r.validate_definition(kubectl: kubectl, selector: @selector, dry_run: true)
|
298
|
-
end
|
291
|
+
r.validate_definition(kubectl: kubectl, selector: @selector, dry_run: true)
|
299
292
|
end
|
300
293
|
failed_resources = resources.select(&:validation_failed?)
|
301
294
|
if failed_resources.present?
|
@@ -321,10 +314,6 @@ module Krane
|
|
321
314
|
"Use GlobalDeployTask instead."
|
322
315
|
end
|
323
316
|
|
324
|
-
def validate_dry_run(resources)
|
325
|
-
resource_deployer.dry_run(resources)
|
326
|
-
end
|
327
|
-
|
328
317
|
def namespace_definition
|
329
318
|
@namespace_definition ||= begin
|
330
319
|
definition, _err, st = kubectl.run("get", "namespace", @namespace, use_namespace: false,
|
@@ -20,13 +20,6 @@ module Krane
|
|
20
20
|
@statsd_tags = statsd_tags
|
21
21
|
end
|
22
22
|
|
23
|
-
def dry_run(resources)
|
24
|
-
apply_all(resources, true, dry_run: true)
|
25
|
-
true
|
26
|
-
rescue FatalDeploymentError
|
27
|
-
false
|
28
|
-
end
|
29
|
-
|
30
23
|
def deploy!(resources, verify_result, prune)
|
31
24
|
if verify_result
|
32
25
|
deploy_all_resources(resources, prune: prune, verify: true)
|
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: 3.
|
4
|
+
version: 3.5.0
|
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: 2024-
|
13
|
+
date: 2024-02-08 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: activesupport
|
@@ -525,7 +525,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
525
525
|
- !ruby/object:Gem::Version
|
526
526
|
version: '0'
|
527
527
|
requirements: []
|
528
|
-
rubygems_version: 3.5.
|
528
|
+
rubygems_version: 3.5.6
|
529
529
|
signing_key:
|
530
530
|
specification_version: 4
|
531
531
|
summary: A command line tool that helps you ship changes to a Kubernetes namespace
|