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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 5d9fd3a2bdcd247f19399a1617e4b3d7c2534b78535a05fe2609e1770fbcb943
4
- data.tar.gz: 58f419d984de460814ceb27212e577b26d81e243f5be9b3821a0b348e314b975
3
+ metadata.gz: 03c1d40b511ff2e7ad4c2e761954e547291257b2392e162fa5d85858ecc1628d
4
+ data.tar.gz: 6acb35faad05f8369063c5bd4eb54b3c09789f215f0d4c8de04de46b6d6fbfbe
5
5
  SHA512:
6
- metadata.gz: '0443799d9c0b820269127bedc5c2ee8ad7ef4de195bceb8b0cd65f46d55e169b19be24e50798901796ff33b46a34e21af5d2e2e5c3adfff2cf9464fd52899f27'
7
- data.tar.gz: 81647888f3cca18356273f23802960d683830d68bb373da6031e64791374ef276a42f8161bf2f50b57dd46de6934d924dde85ddf70c6ac9930fb9f8163c0f452
6
+ metadata.gz: b2fe1f07cc83ca37b75e36994e03c7b70710d0bce032d3ee385ff6a5c323e53c4a34026dfe1c087d7e606b4f5f11bd8651ac076c5726a0d83f5db7e8ad71a9b1
7
+ data.tar.gz: 4a1a42234bc5cf09f9ebc1ce07994997e9c51e40d8ec236f53f26139b90bd646629d46cbbd57dfa6c1ddbb82f38c16778f1b23605cb4b8e00a2f82c2ad3eab28
@@ -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
- - "1.23.17"
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.22.0 or higher<sup>1</sup>
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 | Yes | -- |
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
- print_header "Run CLI Tests"
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
- print_header "Run Non-Parallel Integration Tests"
43
- bundle exec rake serial_integration_test
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
- print_header "Run Parallel Integration Tests (MT_CPU=$PARALLELISM)"
46
- PARALLELIZE_ME=1 MT_CPU=$PARALLELISM bundle exec rake integration_test
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!(
@@ -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, skip_dry_run: false)
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
- # No need to pass in kubectl (and do per-resource dry run apply) if batch dry run succeeded
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
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Krane
3
- VERSION = "3.4.1"
3
+ VERSION = "3.5.0"
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: 3.4.1
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-01-29 00:00:00.000000000 Z
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.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