krane 2.3.4 → 2.3.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3e1fd1232d053c7f2bc648a315551c103ebd4792165f7b8c9b81f1c0b2f810bc
4
- data.tar.gz: 214360319ed90c6bc752d99ee1b3e08244703ad56d3b5e964993fccee2b7562c
3
+ metadata.gz: 87de5ec387037d29595e3de534aa73e5aa492769c58dbfda3788d8b70fe76097
4
+ data.tar.gz: 3fbf5ea0bb33034f6ef4fad075628c144bbf6cffc73e8969617330c9d6705d95
5
5
  SHA512:
6
- metadata.gz: a98198f5aed91b383295bf7ddcd9dad6bdcc68d5361582ef873fa53b7b191d92963c9bd359c841f0c95b7e3c007e0f32dbc331019d5c8a4bf2c4358ccf0aac5c
7
- data.tar.gz: 6267bef54343cdf3c301cab0bd377a1d6110b1c2862bdf2dc5288fd0ffba8337a1cc88aa7e708e8a19dd042646699e3ad64c3d23171e0f23a9a5f5a85fcf470c
6
+ metadata.gz: f24f15dc5733820c518c6636ddd2150c266166f836d366db72460e2a94dca3d81e52ea7e2ea2e143871bc2279f469ca1263cbb1993bad4c2ce972f3f57559c41
7
+ data.tar.gz: 0a49d8ea6a69b228991be2756ebbf93e2aa2c1b2f043aebb2f9a6b697b06c7eeb4ff5eab1ddfd3b40359e35e7ef5e73e8a6e8d9d8659c862bde0abbc8a218ee4
@@ -0,0 +1,75 @@
1
+ name: Krane CI
2
+
3
+ on: [push]
4
+
5
+ jobs:
6
+ ruby-tests:
7
+ runs-on: ubuntu-latest
8
+
9
+ name: "Tests - Ruby ${{ matrix.ruby }} with k8s ${{ matrix.kubernetes_version }}"
10
+ strategy:
11
+ fail-fast: false
12
+ matrix:
13
+ ruby:
14
+ - '3.0' # With k8s 1.23
15
+ - '3.0' # With k8s 1.22
16
+ - '3.0' # With k8s 1.21
17
+ - '3.0' # With k8s 1.20
18
+ - '2.7' # With k8s 1.19
19
+ - '2.6.6' # With k8s 1.18
20
+ - '2.6.6' # With k8s 1.17
21
+ include:
22
+ # Match kind images with chosen version https://github.com/kubernetes-sigs/kind/releases
23
+ - ruby: '3.0'
24
+ kind_version: 'v0.11.1'
25
+ kubernetes_version: '1.23.0'
26
+ kind_image: 'kindest/node:v1.23.0@sha256:49824ab1727c04e56a21a5d8372a402fcd32ea51ac96a2706a12af38934f81ac'
27
+ - ruby: '3.0'
28
+ kind_version: 'v0.11.1'
29
+ kubernetes_version: '1.22.0'
30
+ kind_image: 'kindest/node:v1.22.0@sha256:b8bda84bb3a190e6e028b1760d277454a72267a5454b57db34437c34a588d047'
31
+ - ruby: '3.0'
32
+ kind_version: 'v0.11.1'
33
+ kubernetes_version: '1.21.1'
34
+ kind_image: 'kindest/node:v1.21.1@sha256:69860bda5563ac81e3c0057d654b5253219618a22ec3a346306239bba8cfa1a6'
35
+ - ruby: '3.0'
36
+ kind_version: 'v0.11.1'
37
+ kubernetes_version: '1.20.7'
38
+ kind_image: 'kindest/node:v1.20.7@sha256:cbeaf907fc78ac97ce7b625e4bf0de16e3ea725daf6b04f930bd14c67c671ff9'
39
+ - ruby: '2.7'
40
+ kind_version: 'v0.11.1'
41
+ kubernetes_version: '1.19.11'
42
+ kind_image: 'kindest/node:v1.19.11@sha256:07db187ae84b4b7de440a73886f008cf903fcf5764ba8106a9fd5243d6f32729'
43
+ - ruby: '2.6.6'
44
+ kind_version: 'v0.11.1'
45
+ kubernetes_version: '1.18.19'
46
+ kind_image: '1.18: kindest/node:v1.18.19@sha256:7af1492e19b3192a79f606e43c35fb741e520d195f96399284515f077b3b622c'
47
+ - ruby: '2.6.6'
48
+ kind_version: 'v0.11.1'
49
+ kubernetes_version: '1.17.17'
50
+ kind_image: 'kindest/node:v1.17.17@sha256:66f1d0d91a88b8a001811e2f1054af60eef3b669a9a74f9b6db871f2f1eeed00'
51
+
52
+ steps:
53
+ - uses: actions/checkout@v2
54
+
55
+ - name: Set up Ruby ${{ matrix.ruby }}
56
+ uses: ruby/setup-ruby@v1
57
+ with:
58
+ ruby-version: ${{ matrix.ruby }}
59
+ bundler-cache: true
60
+
61
+ - name: Setup kubectl
62
+ run: |
63
+ mkdir -p "${GITHUB_WORKSPACE}/bin"
64
+ curl -o "${GITHUB_WORKSPACE}/bin/kubectl" -LO "https://dl.k8s.io/release/v${{ matrix.kubernetes_version }}/bin/linux/amd64/kubectl"
65
+ chmod +x "${GITHUB_WORKSPACE}/bin/kubectl"
66
+ echo "PATH=$GITHUB_WORKSPACE/bin:${PATH}" >> $GITHUB_ENV
67
+
68
+ - uses: engineerd/setup-kind@v0.5.0
69
+ with:
70
+ version: "${{ matrix.kind_version }}"
71
+ image: "${{ matrix.kind_image }}"
72
+
73
+ - name: Run tests
74
+ run: |
75
+ bin/test
data/.gitignore CHANGED
@@ -15,3 +15,4 @@ dev/flamegraph.svg
15
15
  dev/profile
16
16
  dev/flamegraph.pl
17
17
  .local-context
18
+ bin/kind
data/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  ## next
2
2
 
3
+ ## 2.3.5
4
+
5
+ - Psych 4 compatibility
6
+
3
7
  ## 2.3.4
4
8
 
5
9
  - Fix for [CVE-2021-41817](https://www.ruby-lang.org/en/news/2021/11/15/date-parsing-method-regexp-dos-cve-2021-41817/). See [ServicesDB action item here](https://services.shopify.io/action_items/definitions/isolated/59).
data/Rakefile CHANGED
@@ -7,6 +7,7 @@ Rake::TestTask.new(:integration_test) do |t|
7
7
  t.libs << "test"
8
8
  t.libs << "lib"
9
9
  t.test_files = FileList['test/integration/**/*_test.rb']
10
+ t.warning = !ENV.key?('CI')
10
11
  end
11
12
 
12
13
  desc("Run integration tests that CANNOT be run in parallel")
@@ -14,6 +15,7 @@ Rake::TestTask.new(:serial_integration_test) do |t|
14
15
  t.libs << "test"
15
16
  t.libs << "lib"
16
17
  t.test_files = FileList['test/integration-serial/**/*_test.rb']
18
+ t.warning = !ENV.key?('CI')
17
19
  end
18
20
 
19
21
  desc("Run unit tests")
@@ -21,6 +23,7 @@ Rake::TestTask.new(:unit_test) do |t|
21
23
  t.libs << "test"
22
24
  t.libs << "lib"
23
25
  t.test_files = FileList['test/unit/**/*_test.rb']
26
+ t.warning = !ENV.key?('CI')
24
27
  end
25
28
 
26
29
  desc("Run cli tests")
@@ -28,6 +31,7 @@ Rake::TestTask.new(:cli_test) do |t|
28
31
  t.libs << "test"
29
32
  t.libs << "lib"
30
33
  t.test_files = FileList['test/exe/**/*_test.rb']
34
+ t.warning = !ENV.key?('CI')
31
35
  end
32
36
 
33
37
  desc("Run all tests")
data/bin/test CHANGED
@@ -27,9 +27,10 @@ if [[ ${PARALLELISM:=0} -lt 1 ]]; then
27
27
  fi
28
28
  fi
29
29
 
30
- if [[ ${CI:="0"} == "1" ]]; then
31
- echo "--- :ruby: Bundle Install"
32
- bundle install --jobs 4
30
+ if [[ "${CI:-0}" != "0" ]]; then
31
+ SCRIPT_DIR="$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )"
32
+ echo "kind-kind" > "${SCRIPT_DIR}/../.local-context"
33
+ PARALLELISM=2
33
34
  fi
34
35
 
35
36
  print_header "Run CLI Tests"
data/dev.yml CHANGED
@@ -3,20 +3,20 @@ name: krane
3
3
  up:
4
4
  - ruby: 2.6.6 # Matches gemspec
5
5
  - bundler
6
- - homebrew:
7
- - minikube
8
- - hyperkit
9
6
  - custom:
10
- name: Install the minikube fork of driver-hyperkit
11
- met?: command -v docker-machine-driver-hyperkit
12
- meet: curl -LO https://storage.googleapis.com/minikube/releases/latest/docker-machine-driver-hyperkit && sudo install -o root -g wheel -m 4755 docker-machine-driver-hyperkit /usr/local/bin/ && rm ./docker-machine-driver-hyperkit
7
+ name: Install Kubernetes in Docker (KinD)
8
+ met?: bin/kind version 2>&1 | grep -q v0.11.1
9
+ meet: |
10
+ mkdir -p bin
11
+ curl -sLo bin/kind "https://github.com/kubernetes-sigs/kind/releases/download/v0.11.1/kind-darwin-amd64"
12
+ chmod +x bin/kind
13
13
  - custom:
14
- name: Minikube Cluster
15
- met?: test $(minikube status | grep Running | wc -l) -ge 2 && $(minikube status | grep -q 'Configured')
16
- meet: minikube start --kubernetes-version=v1.18.18 --vm-driver=hyperkit
17
- down: minikube stop
14
+ name: Create KinD Cluster
15
+ met?: bin/kind get clusters | grep -q krane
16
+ meet: bin/kind create cluster --name krane
17
+ down: |
18
+ ((bin/kind get clusters | grep -q krane) && bin/kind delete cluster --name krane) || true
18
19
  commands:
19
- reset-minikube: minikube delete && rm -rf ~/.minikube
20
20
  test:
21
21
  run: bin/test
22
22
  tophat:
data/krane.gemspec CHANGED
@@ -27,8 +27,6 @@ Gem::Specification.new do |spec|
27
27
 
28
28
  spec.required_ruby_version = '>= 2.6.0'
29
29
  spec.add_dependency("activesupport", ">= 5.0")
30
- spec.add_dependency("cgi")
31
- spec.add_dependency("date")
32
30
  spec.add_dependency("kubeclient", "~> 4.3")
33
31
  spec.add_dependency("googleauth", "~> 0.8")
34
32
  spec.add_dependency("ejson", "~> 1.0")
@@ -41,7 +39,7 @@ Gem::Specification.new do |spec|
41
39
 
42
40
  # Basics
43
41
  spec.add_development_dependency("bundler")
44
- spec.add_development_dependency("rake", "~> 10.0")
42
+ spec.add_development_dependency("rake", "~> 13.0")
45
43
  spec.add_development_dependency("yard")
46
44
 
47
45
  # Test framework
data/lib/krane/common.rb CHANGED
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'active_support'
3
4
  require 'active_support/core_ext/object/blank'
4
5
  require 'active_support/core_ext/hash/reverse_merge'
5
6
  require 'active_support/core_ext/hash/slice'
@@ -584,7 +584,12 @@ module Krane
584
584
  # If the resource template uses generateName, validating with apply will fail
585
585
  def validate_with_local_dry_run(kubectl)
586
586
  verb = deploy_method == :apply ? "apply" : "create"
587
- command = [verb, "-f", file_path, "--dry-run", "--output=name"]
587
+ command = if kubectl.client_version >= Gem::Version.new('1.18')
588
+ [verb, "-f", file_path, "--dry-run=client", "--output=name"]
589
+ else
590
+ [verb, "-f", file_path, "--dry-run", "--output=name"]
591
+ end
592
+
588
593
  kubectl.run(*command, log_failure: false, output_is_sensitive: sensitive_template_content?,
589
594
  retry_whitelist: [:client_timeout, :empty, :context_deadline], attempts: 3, use_namespace: !global?)
590
595
  end
@@ -73,7 +73,7 @@ module Krane
73
73
  file_basename = File.basename(filename)
74
74
  @logger.info("Rendering #{file_basename}...")
75
75
  implicit = []
76
- YAML.parse_stream(rendered_content, "<rendered> #{filename}") { |d| implicit << d.implicit }
76
+ YAML.parse_stream(rendered_content, filename: "<rendered> #{filename}") { |d| implicit << d.implicit }
77
77
  if rendered_content.present?
78
78
  stream.puts "---\n" if implicit.first
79
79
  stream.puts rendered_content
data/lib/krane/version.rb CHANGED
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Krane
3
- VERSION = "2.3.4"
3
+ VERSION = "2.3.5"
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: 2.3.4
4
+ version: 2.3.5
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: 2021-11-24 00:00:00.000000000 Z
13
+ date: 2022-01-11 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: activesupport
@@ -26,34 +26,6 @@ dependencies:
26
26
  - - ">="
27
27
  - !ruby/object:Gem::Version
28
28
  version: '5.0'
29
- - !ruby/object:Gem::Dependency
30
- name: cgi
31
- requirement: !ruby/object:Gem::Requirement
32
- requirements:
33
- - - ">="
34
- - !ruby/object:Gem::Version
35
- version: '0'
36
- type: :runtime
37
- prerelease: false
38
- version_requirements: !ruby/object:Gem::Requirement
39
- requirements:
40
- - - ">="
41
- - !ruby/object:Gem::Version
42
- version: '0'
43
- - !ruby/object:Gem::Dependency
44
- name: date
45
- requirement: !ruby/object:Gem::Requirement
46
- requirements:
47
- - - ">="
48
- - !ruby/object:Gem::Version
49
- version: '0'
50
- type: :runtime
51
- prerelease: false
52
- version_requirements: !ruby/object:Gem::Requirement
53
- requirements:
54
- - - ">="
55
- - !ruby/object:Gem::Version
56
- version: '0'
57
29
  - !ruby/object:Gem::Dependency
58
30
  name: kubeclient
59
31
  requirement: !ruby/object:Gem::Requirement
@@ -212,14 +184,14 @@ dependencies:
212
184
  requirements:
213
185
  - - "~>"
214
186
  - !ruby/object:Gem::Version
215
- version: '10.0'
187
+ version: '13.0'
216
188
  type: :development
217
189
  prerelease: false
218
190
  version_requirements: !ruby/object:Gem::Requirement
219
191
  requirements:
220
192
  - - "~>"
221
193
  - !ruby/object:Gem::Version
222
- version: '10.0'
194
+ version: '13.0'
223
195
  - !ruby/object:Gem::Dependency
224
196
  name: yard
225
197
  requirement: !ruby/object:Gem::Requirement
@@ -444,11 +416,10 @@ files:
444
416
  - ".github/ISSUE_TEMPLATE.md"
445
417
  - ".github/probots.yml"
446
418
  - ".github/pull_request_template.md"
419
+ - ".github/workflows/ci.yml"
447
420
  - ".gitignore"
448
421
  - ".rubocop-http---shopify-github-io-ruby-style-guide-rubocop-yml"
449
422
  - ".rubocop.yml"
450
- - ".shopify-build/VERSION"
451
- - ".shopify-build/krane.yml"
452
423
  - 1.0-Upgrade.md
453
424
  - CHANGELOG.md
454
425
  - CODE_OF_CONDUCT.md
@@ -1 +0,0 @@
1
- v1
@@ -1,48 +0,0 @@
1
- containers:
2
- default:
3
- docker: circleci/ruby:2.6.6
4
-
5
- steps:
6
- - label: Lint
7
- timeout: 5m
8
- run:
9
- - bundle: ~
10
- - bundle exec rubocop
11
- - label: 'Run Test Suite (:kubernetes: 1.21-latest :ruby: 3.0)'
12
- command: bin/ci
13
- agents:
14
- queue: k8s-ci
15
- env:
16
- LOGGING_LEVEL: "4"
17
- KUBERNETES_VERSION: v1.21-latest
18
- RUBY_VERSION: "3.0"
19
- - label: 'Run Test Suite (:kubernetes: 1.20-latest :ruby: 3.0)'
20
- command: bin/ci
21
- agents:
22
- queue: k8s-ci
23
- env:
24
- LOGGING_LEVEL: "4"
25
- KUBERNETES_VERSION: v1.20-latest
26
- RUBY_VERSION: "3.0"
27
- - label: 'Run Test Suite (:kubernetes: 1.19-latest :ruby: 2.7)'
28
- command: bin/ci
29
- agents:
30
- queue: k8s-ci
31
- env:
32
- LOGGING_LEVEL: "4"
33
- KUBERNETES_VERSION: v1.19-latest
34
- RUBY_VERSION: "2.7"
35
- - label: 'Run Test Suite (:kubernetes: 1.18-latest)'
36
- command: bin/ci
37
- agents:
38
- queue: k8s-ci
39
- env:
40
- LOGGING_LEVEL: "4"
41
- KUBERNETES_VERSION: v1.18-latest
42
- - label: 'Run Test Suite (:kubernetes: 1.17-latest)'
43
- command: bin/ci
44
- agents:
45
- queue: k8s-ci
46
- env:
47
- LOGGING_LEVEL: "4"
48
- KUBERNETES_VERSION: v1.17-latest