krane 3.4.1 → 3.5.0
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/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
|