krane 2.3.3 → 2.3.7
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 +75 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +12 -0
- data/Rakefile +4 -0
- data/bin/test +4 -3
- data/dev.yml +11 -11
- data/krane.gemspec +3 -3
- data/lib/krane/common.rb +2 -0
- data/lib/krane/kubernetes_resource.rb +6 -1
- data/lib/krane/render_task.rb +1 -1
- data/lib/krane/version.rb +1 -1
- metadata +9 -10
- data/.shopify-build/VERSION +0 -1
- data/.shopify-build/krane.yml +0 -48
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dd1bb79abda9d85abeb1fcdc8a74d11643e45bc793e4d2b26968ca06630f59c4
|
|
4
|
+
data.tar.gz: ac8a426ccd104579c100bcb45c114c6fbf686a3329b8cd8e540def30fc693d16
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 9291109ec07bc72ea6508b4f0368690754a65f39298d4a338ad02fa62c13f4d8d44746f39214e03f04631f1b88367f91e38a23e8bc30d609f0dc4046bf7eed60
|
|
7
|
+
data.tar.gz: f53a5e4cedbb7e804ae90a88c1c3e2044b87b16841ce921e90d0217f88499db71f7abba5f6ca8564275d3f7befe746528830b13d27da4ead0099cde4efd99a54
|
|
@@ -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
data/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
## next
|
|
2
2
|
|
|
3
|
+
## 2.3.6
|
|
4
|
+
|
|
5
|
+
- Update kubeclient for better Ruby 3.1 compatibility.
|
|
6
|
+
|
|
7
|
+
## 2.3.5
|
|
8
|
+
|
|
9
|
+
- Psych 4 compatibility
|
|
10
|
+
|
|
11
|
+
## 2.3.4
|
|
12
|
+
|
|
13
|
+
- 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).
|
|
14
|
+
|
|
3
15
|
## 2.3.3
|
|
4
16
|
|
|
5
17
|
- Another Psych 4.0 compatibility fix [#844](https://github.com/Shopify/krane/pull/844)
|
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
|
|
31
|
-
|
|
32
|
-
|
|
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
|
|
11
|
-
met?:
|
|
12
|
-
meet:
|
|
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:
|
|
15
|
-
met?:
|
|
16
|
-
meet:
|
|
17
|
-
down:
|
|
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,19 +27,19 @@ 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("kubeclient", "~> 4.
|
|
30
|
+
spec.add_dependency("kubeclient", "~> 4.9")
|
|
31
31
|
spec.add_dependency("googleauth", "~> 0.8")
|
|
32
32
|
spec.add_dependency("ejson", "~> 1.0")
|
|
33
33
|
spec.add_dependency("colorize", "~> 0.8")
|
|
34
34
|
spec.add_dependency("statsd-instrument", ['>= 2.8', "< 4"])
|
|
35
35
|
spec.add_dependency("oj", "~> 3.0")
|
|
36
36
|
spec.add_dependency("concurrent-ruby", "~> 1.1")
|
|
37
|
-
spec.add_dependency("jsonpath", "~> 0
|
|
37
|
+
spec.add_dependency("jsonpath", "~> 1.0")
|
|
38
38
|
spec.add_dependency("thor", ">= 1.0", "< 2.0")
|
|
39
39
|
|
|
40
40
|
# Basics
|
|
41
41
|
spec.add_development_dependency("bundler")
|
|
42
|
-
spec.add_development_dependency("rake", "~>
|
|
42
|
+
spec.add_development_dependency("rake", "~> 13.0")
|
|
43
43
|
spec.add_development_dependency("yard")
|
|
44
44
|
|
|
45
45
|
# Test framework
|
data/lib/krane/common.rb
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
# frozen_string_literal: true
|
|
2
2
|
|
|
3
|
+
require 'active_support'
|
|
4
|
+
require 'active_support/isolated_execution_state' if ActiveSupport::VERSION::MAJOR > 6
|
|
3
5
|
require 'active_support/core_ext/object/blank'
|
|
4
6
|
require 'active_support/core_ext/hash/reverse_merge'
|
|
5
7
|
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 =
|
|
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
|
data/lib/krane/render_task.rb
CHANGED
|
@@ -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
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
|
+
version: 2.3.7
|
|
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:
|
|
13
|
+
date: 2022-01-11 00:00:00.000000000 Z
|
|
14
14
|
dependencies:
|
|
15
15
|
- !ruby/object:Gem::Dependency
|
|
16
16
|
name: activesupport
|
|
@@ -32,14 +32,14 @@ dependencies:
|
|
|
32
32
|
requirements:
|
|
33
33
|
- - "~>"
|
|
34
34
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: '4.
|
|
35
|
+
version: '4.9'
|
|
36
36
|
type: :runtime
|
|
37
37
|
prerelease: false
|
|
38
38
|
version_requirements: !ruby/object:Gem::Requirement
|
|
39
39
|
requirements:
|
|
40
40
|
- - "~>"
|
|
41
41
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: '4.
|
|
42
|
+
version: '4.9'
|
|
43
43
|
- !ruby/object:Gem::Dependency
|
|
44
44
|
name: googleauth
|
|
45
45
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -136,14 +136,14 @@ dependencies:
|
|
|
136
136
|
requirements:
|
|
137
137
|
- - "~>"
|
|
138
138
|
- !ruby/object:Gem::Version
|
|
139
|
-
version: 0
|
|
139
|
+
version: '1.0'
|
|
140
140
|
type: :runtime
|
|
141
141
|
prerelease: false
|
|
142
142
|
version_requirements: !ruby/object:Gem::Requirement
|
|
143
143
|
requirements:
|
|
144
144
|
- - "~>"
|
|
145
145
|
- !ruby/object:Gem::Version
|
|
146
|
-
version: 0
|
|
146
|
+
version: '1.0'
|
|
147
147
|
- !ruby/object:Gem::Dependency
|
|
148
148
|
name: thor
|
|
149
149
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -184,14 +184,14 @@ dependencies:
|
|
|
184
184
|
requirements:
|
|
185
185
|
- - "~>"
|
|
186
186
|
- !ruby/object:Gem::Version
|
|
187
|
-
version: '
|
|
187
|
+
version: '13.0'
|
|
188
188
|
type: :development
|
|
189
189
|
prerelease: false
|
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
|
191
191
|
requirements:
|
|
192
192
|
- - "~>"
|
|
193
193
|
- !ruby/object:Gem::Version
|
|
194
|
-
version: '
|
|
194
|
+
version: '13.0'
|
|
195
195
|
- !ruby/object:Gem::Dependency
|
|
196
196
|
name: yard
|
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -416,11 +416,10 @@ files:
|
|
|
416
416
|
- ".github/ISSUE_TEMPLATE.md"
|
|
417
417
|
- ".github/probots.yml"
|
|
418
418
|
- ".github/pull_request_template.md"
|
|
419
|
+
- ".github/workflows/ci.yml"
|
|
419
420
|
- ".gitignore"
|
|
420
421
|
- ".rubocop-http---shopify-github-io-ruby-style-guide-rubocop-yml"
|
|
421
422
|
- ".rubocop.yml"
|
|
422
|
-
- ".shopify-build/VERSION"
|
|
423
|
-
- ".shopify-build/krane.yml"
|
|
424
423
|
- 1.0-Upgrade.md
|
|
425
424
|
- CHANGELOG.md
|
|
426
425
|
- CODE_OF_CONDUCT.md
|
data/.shopify-build/VERSION
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
v1
|
data/.shopify-build/krane.yml
DELETED
|
@@ -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
|