k8s-ruby 0.12.0 → 0.14.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: 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