krane 2.3.4 → 2.3.5

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: 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