k8s-ruby 0.12.0 → 0.14.0

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: 462575bda9c48588eb7d9d9d1ffda32c973ebdbf0b3d9113a7b8a2fdd94b781f
4
- data.tar.gz: 2a593329f6040478517bc2895d1cf4929a19f728fd97ceb696e538dfb0de161e
3
+ metadata.gz: 9578f60e7b7d2a2b420991a83fe76229b24b2ae979659489bc799da9b0d04ec9
4
+ data.tar.gz: 85701ff904f50ede9395191e30df570fd2efbfb0006fb128c696bd23cada36e4
5
5
  SHA512:
6
- metadata.gz: 4ca53f957316cfc8b8fa38988e5637e85e110c8772601c6ad591a711486393d7ed530bfd86b6840bd8156bab9bf4299f5547963e825a5b1ee4c5835d95d8c0ae
7
- data.tar.gz: b5ad610fadaa524f603e90b5c027bd6f17dc9005dc70785467a5ef50e59ae73aebf4c1962f0202f8221b070927c480286725baab366cfa888d7b1a9a76036b39
6
+ metadata.gz: f2d9d82630ecdd1b7a19d180d77d26290807ef0c7fa5b7c9e3e0356cabd75ac71df01c621e31699988fb0365dd764ed33a1273431ee443acc2d5ca844a6337d6
7
+ data.tar.gz: 7eb209e837f19da46987014fe0b144999632052159ae8ca34ab0544a632fa040bb107951bc2d390f1aa57afcb2dfa99feeaa7aff70d5d5c31a126278c46ef27a
@@ -0,0 +1,36 @@
1
+ name: tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - master
7
+ pull_request:
8
+
9
+ jobs:
10
+ build-2-6:
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v3
14
+ - run: docker-compose build rspec-2.6
15
+ - run: docker-compose run rspec-2.6
16
+
17
+ build-2-7:
18
+ runs-on: ubuntu-latest
19
+ steps:
20
+ - uses: actions/checkout@v3
21
+ - run: docker-compose build rspec-2.7
22
+ - run: docker-compose run rspec-2.7
23
+
24
+ build-3-0:
25
+ runs-on: ubuntu-latest
26
+ steps:
27
+ - uses: actions/checkout@v3
28
+ - run: docker-compose build rspec-3.0
29
+ - run: docker-compose run rspec-3.0
30
+
31
+ build-3-1:
32
+ runs-on: ubuntu-latest
33
+ steps:
34
+ - uses: actions/checkout@v3
35
+ - run: docker-compose build rspec-3.1
36
+ - run: docker-compose run rspec-3.1
data/.gitignore CHANGED
@@ -6,7 +6,7 @@
6
6
  /pkg/
7
7
  /spec/reports/
8
8
  /tmp/
9
- Gemfile.lock
9
+
10
10
  .ruby-version
11
11
  .tool-versions
12
12
  /.byebug_history
data/Dockerfile CHANGED
@@ -1,15 +1,15 @@
1
1
  ARG BASE_IMAGE=ruby:2.7
2
2
  FROM ${BASE_IMAGE}
3
3
 
4
+ RUN gem install bundler:2.3.5
5
+
4
6
  WORKDIR /app
5
7
 
6
8
  COPY Gemfile *.gemspec ./
7
9
  COPY lib/k8s/ruby/version.rb ./lib/k8s/ruby/
8
10
 
9
- RUN gem install bundler:2.3.5
10
11
  RUN bundle install
11
12
  RUN bundle update --bundler
12
13
 
13
14
  COPY . .
14
-
15
- ENTRYPOINT ["bundle", "exec"]
15
+ ENTRYPOINT ["/app/entrypoint.sh"]
data/Gemfile CHANGED
@@ -2,5 +2,7 @@ source "https://rubygems.org"
2
2
 
3
3
  git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }
4
4
 
5
+ # forked and upgraded to be compatible with ruby 3.1
6
+ gem 'yaml-safe_load_stream3', '~> 0.1.2'
5
7
  # Specify your gem's dependencies in k8s-ruby.gemspec
6
8
  gemspec
data/README.md CHANGED
@@ -1,5 +1,7 @@
1
1
  # K8s::Client provided by k8s-ruby
2
2
 
3
+ ## Readme continues
4
+
3
5
  Ruby client library for the Kubernetes (1.9+) API.
4
6
 
5
7
  The `k8s-ruby` project is a fork of
@@ -32,11 +34,11 @@ gem 'k8s-ruby'
32
34
 
33
35
  And then execute:
34
36
 
35
- $ bundle
37
+ bundle
36
38
 
37
39
  Or install it yourself as:
38
40
 
39
- $ gem install k8s-ruby
41
+ gem install k8s-ruby
40
42
 
41
43
  And then load the code using:
42
44
 
@@ -47,6 +49,7 @@ require 'k8s-ruby'
47
49
  ## Usage
48
50
 
49
51
  ### Overview
52
+
50
53
  The top-level `K8s::Client` provides access to separate `APIClient` instances for each Kubernetes API Group (`v1`, `apps/v1`, etc.), which in turns provides access to separate `ResourceClient` instances for each API resource type (`nodes`, `pods`, `deployments`, etc.).
51
54
 
52
55
  Individual resources are returned as `K8s::Resource` instances, which are `RecursiveOpenStruct` instances providing attribute access (`resource.metadata.name`). The resource instances are returned by methods such as `client.api('v1').resource('nodes').get('foo')`, and passed as arguments for `client.api('v1').resource('nodes').create_resource(res)`. Resources can also be loaded from disk using `K8s::Resource.from_files(path)`, and passed to the top-level methods such as `client.create_resource(res)`, which lookup the correct API/Resource client from the resource `apiVersion` and `kind`.
@@ -174,6 +177,7 @@ pods = client.api('v1').resource('pods', namespace: 'default').delete_collection
174
177
  ### Creating resources
175
178
 
176
179
  #### Programmatically defined resources
180
+
177
181
  ```ruby
178
182
  service = K8s::Resource.new({
179
183
  apiVersion: 'v1',
data/docker-compose.yaml CHANGED
@@ -6,8 +6,6 @@ services:
6
6
  BASE_IMAGE: ruby:2.6
7
7
  volumes:
8
8
  - .:/app
9
- entrypoint: bundle exec rspec
10
-
11
9
  rspec-2.7:
12
10
  build:
13
11
  context: .
@@ -15,8 +13,6 @@ services:
15
13
  BASE_IMAGE: ruby:2.7
16
14
  volumes:
17
15
  - .:/app
18
- entrypoint: bundle exec rspec
19
-
20
16
  rspec-3.0:
21
17
  build:
22
18
  context: .
@@ -24,4 +20,11 @@ services:
24
20
  BASE_IMAGE: ruby:3.0
25
21
  volumes:
26
22
  - .:/app
23
+ rspec-3.1:
24
+ build:
25
+ context: .
26
+ args:
27
+ BASE_IMAGE: ruby:3.1
28
+ volumes:
29
+ - .:/app
27
30
  entrypoint: bundle exec rspec
data/entrypoint.sh ADDED
@@ -0,0 +1,6 @@
1
+ #!/usr/bin/env bash
2
+
3
+ set -Eeuo pipefail
4
+
5
+ bundle install
6
+ bundle exec rake spec
data/k8s-ruby.gemspec CHANGED
@@ -21,17 +21,17 @@ Gem::Specification.new do |spec|
21
21
  spec.bindir = "bin"
22
22
  spec.executables = []
23
23
  spec.require_paths = ["lib"]
24
- spec.required_ruby_version = [">= 2.4", "< 3.1"]
24
+ spec.required_ruby_version = spec.required_ruby_version = [">= 2.4", "< 3.2"]
25
25
 
26
26
  spec.add_runtime_dependency "excon", "~> 0.71"
27
- spec.add_runtime_dependency "dry-struct", "~> 1.3.0"
28
- spec.add_runtime_dependency "dry-types", "~> 1.4.0"
27
+ spec.add_runtime_dependency "dry-struct", "<= 1.6.0"
28
+ spec.add_runtime_dependency "dry-types", "<= 1.7.0"
29
29
  spec.add_runtime_dependency "dry-configurable", "~> 0.13.0"
30
30
  spec.add_runtime_dependency "recursive-open-struct", "~> 1.1.3"
31
31
  spec.add_runtime_dependency "hashdiff", "~> 1.0.0"
32
32
  spec.add_runtime_dependency "jsonpath", "~> 0.9.5"
33
33
  spec.add_runtime_dependency "yajl-ruby", "~> 1.4.0"
34
- spec.add_runtime_dependency "yaml-safe_load_stream2", "~> 0.1.1"
34
+ spec.add_runtime_dependency "yaml-safe_load_stream3"
35
35
 
36
36
  spec.add_development_dependency "bundler", ">= 1.17", "< 3.0"
37
37
  spec.add_development_dependency "rake", ">= 12.3.3"
data/lib/k8s/config.rb CHANGED
@@ -111,7 +111,10 @@ module K8s
111
111
  # @param path [String]
112
112
  # @return [K8s::Config]
113
113
  def self.load_file(path)
114
- new(YAML.safe_load(File.read(File.expand_path(path)), [Time, DateTime, Date], [], true))
114
+ new(YAML.safe_load(File.read(File.expand_path(path)),
115
+ permitted_classes: [Time, DateTime, Date],
116
+ permitted_symbols: [],
117
+ aliases: true))
115
118
  end
116
119
 
117
120
  # Loads configuration files listed in KUBE_CONFIG environment variable and
data/lib/k8s/resource.rb CHANGED
@@ -23,7 +23,7 @@ module K8s
23
23
  # @param filename [String] file path
24
24
  # @return [K8s::Resource]
25
25
  def self.from_file(filename)
26
- new(YAML.safe_load(File.read(filename), [], [], true, filename))
26
+ new(YAML.safe_load(File.read(filename), permitted_classes: [], permitted_symbols: [], aliases: true, filename: filename))
27
27
  end
28
28
 
29
29
  # @param path [String] file path
@@ -3,6 +3,6 @@
3
3
  module K8s
4
4
  class Ruby
5
5
  # Updated on releases using semver.
6
- VERSION = "0.12.0"
6
+ VERSION = "0.14.0"
7
7
  end
8
8
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: k8s-ruby
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.12.0
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - rdx.net
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-01-26 00:00:00.000000000 Z
12
+ date: 2023-04-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: excon
@@ -29,30 +29,30 @@ dependencies:
29
29
  name: dry-struct
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - "~>"
32
+ - - "<="
33
33
  - !ruby/object:Gem::Version
34
- version: 1.3.0
34
+ version: 1.6.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - "~>"
39
+ - - "<="
40
40
  - !ruby/object:Gem::Version
41
- version: 1.3.0
41
+ version: 1.6.0
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: dry-types
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - "~>"
46
+ - - "<="
47
47
  - !ruby/object:Gem::Version
48
- version: 1.4.0
48
+ version: 1.7.0
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - "~>"
53
+ - - "<="
54
54
  - !ruby/object:Gem::Version
55
- version: 1.4.0
55
+ version: 1.7.0
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: dry-configurable
58
58
  requirement: !ruby/object:Gem::Requirement
@@ -124,19 +124,19 @@ dependencies:
124
124
  - !ruby/object:Gem::Version
125
125
  version: 1.4.0
126
126
  - !ruby/object:Gem::Dependency
127
- name: yaml-safe_load_stream2
127
+ name: yaml-safe_load_stream3
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - "~>"
130
+ - - ">="
131
131
  - !ruby/object:Gem::Version
132
- version: 0.1.1
132
+ version: '0'
133
133
  type: :runtime
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - "~>"
137
+ - - ">="
138
138
  - !ruby/object:Gem::Version
139
- version: 0.1.1
139
+ version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: bundler
142
142
  requirement: !ruby/object:Gem::Requirement
@@ -234,6 +234,7 @@ executables: []
234
234
  extensions: []
235
235
  extra_rdoc_files: []
236
236
  files:
237
+ - ".github/workflows/tests.yml"
237
238
  - ".gitignore"
238
239
  - ".rspec"
239
240
  - ".rubocop.relaxed.yml"
@@ -244,6 +245,7 @@ files:
244
245
  - README.md
245
246
  - Rakefile
246
247
  - docker-compose.yaml
248
+ - entrypoint.sh
247
249
  - k8s-ruby.gemspec
248
250
  - lib/k8s-ruby.rb
249
251
  - lib/k8s/api.rb
@@ -281,14 +283,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
281
283
  version: '2.4'
282
284
  - - "<"
283
285
  - !ruby/object:Gem::Version
284
- version: '3.1'
286
+ version: '3.2'
285
287
  required_rubygems_version: !ruby/object:Gem::Requirement
286
288
  requirements:
287
289
  - - ">="
288
290
  - !ruby/object:Gem::Version
289
291
  version: '0'
290
292
  requirements: []
291
- rubygems_version: 3.2.3
293
+ rubygems_version: 3.3.7
292
294
  signing_key:
293
295
  specification_version: 4
294
296
  summary: Kubernetes client library for Ruby