kubeclient 4.10.1 → 4.13.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: 287033950a2bdc37a0d5829270cffa4c6db6802e315cd54db01d91a98961964b
4
- data.tar.gz: c469d2d8a274bafb576f876d9f62a6e8384ef20943a0aa1b93f4f05dbeb721e2
3
+ metadata.gz: 9858f4780a4a7d41775e8d46ea883e20aaf81dafc1746dd7ff8f0dcfdf93e698
4
+ data.tar.gz: 8a9b822f0a2c8fecc628b18cade0230a623bd36bdb9d2dbd8f7ae8a70748b766
5
5
  SHA512:
6
- metadata.gz: ccb85f7481dc3b20db30c919a94182e92fdab97e70e5f14f621449006d40a7626ff87351fbcb97e5affa5a1fab9207c7b6401c37d6c5b1cb1c4f68dc12ed25ce
7
- data.tar.gz: 04fe6ad1089bc48590923fcae56274733c1063d5ece677bca85d97c1602c252c86bed15d067099ef1a618e475f95a387fcf58a75f58f70fe1152b4181bf43127
6
+ metadata.gz: 2ddbf8c6bca62614d39d54bf27a450562b1956542e5ebd4f6376673b5785cfc424b3ea58afc4f8d674219f9bc87f29e9bed1b915c1093b1aaad7c393debd0c6a
7
+ data.tar.gz: 6c23cfa4ddd994800e12a29ca379f54f5a50ebc98d1b81d5162b1712b101f1d90e5e5ce30530664641546adc8781db6f252a8120b402554dced874861a71b72a
@@ -14,7 +14,7 @@ jobs:
14
14
  runs-on: ${{ matrix.os_and_command.os }}
15
15
  strategy:
16
16
  matrix:
17
- ruby: [ '2.5', '2.6', '2.7', '3.0', '3.1', 'ruby-head', 'truffleruby-head' ]
17
+ ruby: [ '2.7', '3.0', '3.1', '3.2', '3.3', '3.4', 'ruby-head', 'truffleruby-head' ]
18
18
  os_and_command:
19
19
  - os: macos-latest
20
20
  command: 'env TESTOPTS="--verbose" bundle exec rake test'
@@ -27,11 +27,15 @@ jobs:
27
27
  include:
28
28
  # run rubocop against lowest supported ruby
29
29
  - os: ubuntu-latest
30
- ruby: '2.5'
30
+ ruby: '2.7'
31
31
  command: 'bundle exec rake rubocop'
32
+ exclude:
33
+ - os_and_command:
34
+ os: windows-latest
35
+ ruby: 'truffleruby-head'
32
36
  name: ${{ matrix.os_and_command.os }} ${{ matrix.ruby }} rake ${{ matrix.os_and_command.command }}
33
37
  steps:
34
- - uses: actions/checkout@v2
38
+ - uses: actions/checkout@v4
35
39
  # actions/setup-ruby did not support truffle or bundler caching
36
40
  - uses: ruby/setup-ruby@v1
37
41
  with:
@@ -40,4 +44,3 @@ jobs:
40
44
  - run: bundle install
41
45
  - run: ${{ matrix.os_and_command.command }}
42
46
  timeout-minutes: 10
43
-
data/.rubocop.yml CHANGED
@@ -1,35 +1,132 @@
1
1
  AllCops:
2
2
  DisplayCopNames: true
3
- TargetRubyVersion: 2.2 # Oldest version kubeclient supports
3
+ TargetRubyVersion: 2.7 # Oldest version kubeclient supports
4
4
  MethodLength:
5
5
  Enabled: false
6
6
  ClassLength:
7
7
  Enabled: false
8
8
  Metrics/AbcSize:
9
9
  Enabled: false
10
- Metrics/LineLength:
11
- Max: 100
12
10
  Metrics/ParameterLists:
13
11
  Max: 5
14
12
  CountKeywordArgs: false
15
- Metrics/CyclomaticComplexity:
16
- Max: 8
17
- Metrics/PerceivedComplexity:
18
- Max: 8
19
13
  Metrics/ModuleLength:
20
14
  Enabled: false
21
- Style/MethodCallWithArgsParentheses:
22
- Enabled: true
23
- IgnoredMethods: [require, raise, include, attr_reader, refute, assert]
24
- Exclude: [Gemfile, Rakefile, kubeclient.gemspec, Gemfile.dev.rb]
25
15
  Metrics/BlockLength:
26
16
  Exclude: [kubeclient.gemspec]
27
17
  Security/MarshalLoad:
28
18
  Exclude: [test/**/*]
29
19
  Style/FileName:
30
20
  Exclude: [Gemfile, Rakefile, Gemfile.dev.rb]
31
- Style/MethodCallWithArgsParentheses:
32
- IgnoredMethods:
33
- - require_relative
34
21
  Style/RegexpLiteral:
35
22
  Enabled: false
23
+
24
+ # Cops that have active offences in the codebase.
25
+ Lint/RedundantCopDisableDirective:
26
+ Enabled: false
27
+ Metrics/CyclomaticComplexity:
28
+ Enabled: false
29
+ Max: 8
30
+ Metrics/PerceivedComplexity:
31
+ Enabled: false
32
+ Max: 8
33
+ Style/MethodCallWithArgsParentheses:
34
+ Enabled: false
35
+ IgnoredMethods: [require, require_relative, raise, include, attr_reader, refute, assert]
36
+ Exclude: [Gemfile, Rakefile, kubeclient.gemspec, Gemfile.dev.rb]
37
+ Style/FrozenStringLiteralComment:
38
+ Enabled: false
39
+ Lint/UnreachableLoop:
40
+ Enabled: false
41
+ Style/RedundantRegexpEscape:
42
+ Enabled: false
43
+ Layout/MultilineMethodCallIndentation:
44
+ Enabled: false
45
+ Lint/UselessAssignment:
46
+ Enabled: false
47
+ Style/StringLiterals:
48
+ Enabled: false
49
+ Layout/ExtraSpacing:
50
+ Enabled: false
51
+ Layout/IndentationWidth:
52
+ Enabled: false
53
+ Naming/MethodParameterName:
54
+ Enabled: false
55
+ Layout/HashAlignment:
56
+ Enabled: false
57
+ Layout/TrailingWhitespace:
58
+ Enabled: false
59
+ Naming/RescuedExceptionsVariableName:
60
+ Enabled: false
61
+ Style/RedundantBegin:
62
+ Enabled: false
63
+ Style/WordArray:
64
+ Enabled: false
65
+ Style/ExplicitBlockArgument:
66
+ Enabled: false
67
+ Layout/LeadingEmptyLines:
68
+ Enabled: false
69
+ Layout/EmptyLineAfterGuardClause:
70
+ Enabled: false
71
+ Style/SafeNavigation:
72
+ Enabled: false
73
+ Style/SoleNestedConditional:
74
+ Enabled: false
75
+ Lint/MissingSuper:
76
+ Enabled: false
77
+ Style/IfUnlessModifier:
78
+ Enabled: false
79
+ Layout/LineLength:
80
+ Enabled: false
81
+ Lint/MissingCopEnableDirective:
82
+ Enabled: false
83
+ Naming/MethodName:
84
+ Enabled: false
85
+ Style/StringConcatenation:
86
+ Enabled: false
87
+ Style/SlicingWithRange:
88
+ Enabled: false
89
+ Lint/MixedRegexpCaptureTypes:
90
+ Enabled: false
91
+ Style/AccessorGrouping:
92
+ Enabled: false
93
+ Style/HashEachMethods:
94
+ Enabled: false
95
+ Naming/AccessorMethodName:
96
+ Enabled: false
97
+ Style/RedundantAssignment:
98
+ Enabled: false
99
+ Gemspec/OrderedDependencies:
100
+ Enabled: false
101
+ Style/ExpandPathArguments:
102
+ Enabled: false
103
+ Style/Encoding:
104
+ Enabled: false
105
+
106
+ # New Cops to configure
107
+ Lint/DuplicateBranch: # (new in 1.3)
108
+ Enabled: false
109
+ Lint/DuplicateRegexpCharacterClassElement: # (new in 1.1)
110
+ Enabled: false
111
+ Lint/EmptyBlock: # (new in 1.1)
112
+ Enabled: false
113
+ Lint/EmptyClass: # (new in 1.3)
114
+ Enabled: false
115
+ Lint/NoReturnInBeginEndBlocks: # (new in 1.2)
116
+ Enabled: false
117
+ Lint/ToEnumArguments: # (new in 1.1)
118
+ Enabled: false
119
+ Lint/UnmodifiedReduceAccumulator: # (new in 1.1)
120
+ Enabled: false
121
+ Style/ArgumentsForwarding: # (new in 1.1)
122
+ Enabled: false
123
+ Style/CollectionCompact: # (new in 1.2)
124
+ Enabled: false
125
+ Style/DocumentDynamicEvalDefinition: # (new in 1.1)
126
+ Enabled: false
127
+ Style/NegatedIfElseCondition: # (new in 1.2)
128
+ Enabled: false
129
+ Style/NilLambda: # (new in 1.3)
130
+ Enabled: false
131
+ Style/SwapValues: # (new in 1.1)
132
+ Enabled: false
data/CHANGELOG.md CHANGED
@@ -4,6 +4,47 @@ Notable changes to this project will be documented in this file.
4
4
  The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
5
5
  Kubeclient release versioning follows [SemVer](https://semver.org/).
6
6
 
7
+ ## 4.13.0 - 2025-10-15
8
+ ### Added
9
+ - [v4.y] Add cgi gem to devel dependencies (#672)
10
+
11
+ ### Changed
12
+ - [v4.y] use frozen strings (#668)
13
+ - [v4.y] Exclude windows-latest from truffleruby testing (#675)
14
+ - [v4.y] Add 3.3 and 3.4 to CI matrix (#671)
15
+
16
+ ### Fixed
17
+ - [v4.y] Update k0s certs for CI (#671)
18
+
19
+ ## 4.12.0 - 2024-06-18
20
+
21
+ ### Added
22
+ - Add test coverage for Ruby 3.2 (#615)
23
+ - Allow a region when getting a signer for Aws::Sts (#507)
24
+ - Update the AWS STS endpoint to be regional as the method is now regional (#528)
25
+ - Assume role support for aws eks credentials (#630)
26
+
27
+ ### Fixed
28
+ - [v4.y] Regenerated expired test TLS certs by running `test/config/update_certs_k0s.rb`.
29
+ - [v4.y] Regenerated expired test TLS certs (#611)
30
+ - Regenerated expired test TLS certs (#632)
31
+
32
+ ### Changed
33
+ - Update actions/checkout (#590)
34
+ - chore(deps): update actions/checkout action to v4 (#619)
35
+
36
+ ## 4.11.0 — 2022-12-22
37
+
38
+ ### Removed
39
+
40
+ - Dropped support for EOL Ruby versions 2.5, 2.6. (#589)
41
+
42
+ ### Added
43
+
44
+ - Relaxed dependency on `http` gem (used for watches) to allow 5.y.z versions. (#589)
45
+
46
+ - Specifically, http 5.1.1 may fix issues watching with IPv6. (#585)
47
+
7
48
  ## 4.10.1 — 2022-10-01
8
49
 
9
50
  ### Removed
data/Gemfile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  source 'https://rubygems.org'
2
4
 
3
5
  dev_gemfile = File.expand_path('Gemfile.dev.rb', __dir__)
data/README.md CHANGED
@@ -313,10 +313,14 @@ require 'aws-sdk-core'
313
313
  credentials = Aws::Credentials.new(access_key, secret_key)
314
314
  # Or a profile
315
315
  credentials = Aws::SharedCredentials.new(profile_name: 'default').credentials
316
+ # Or for an STS Assumed Role Credentials or any other credential Provider other than Static Credentials
317
+ credentials = Aws::AssumeRoleCredentials.new({ client: sts_client, role_arn: role_arn, role_session_name: session_name })
316
318
 
319
+ # Kubeclient Auth Options
317
320
  auth_options = {
318
321
  bearer_token: Kubeclient::AmazonEksCredentials.token(credentials, eks_cluster_name)
319
322
  }
323
+
320
324
  client = Kubeclient::Client.new(
321
325
  eks_cluster_https_endpoint, 'v1', auth_options: auth_options
322
326
  )
data/Rakefile CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'bundler/gem_tasks'
2
4
  require 'rake/testtask'
3
5
  require 'rubocop/rake_task'
data/kubeclient.gemspec CHANGED
@@ -1,6 +1,6 @@
1
- # coding: utf-8
1
+ # frozen_string_literal: true
2
2
 
3
- lib = File.expand_path('../lib', __FILE__)
3
+ lib = File.expand_path('lib', __dir__)
4
4
  $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
5
5
  require 'kubeclient/version'
6
6
 
@@ -19,14 +19,15 @@ Gem::Specification.new do |spec|
19
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
20
20
  spec.test_files = []
21
21
  spec.require_paths = ['lib']
22
- spec.required_ruby_version = '>= 2.2.0'
22
+ spec.required_ruby_version = '>= 2.7.0'
23
23
 
24
24
  spec.add_development_dependency 'bundler', '>= 1.6'
25
- spec.add_development_dependency 'rake', '~> 12.0'
25
+ spec.add_development_dependency 'rake', '~> 13.0'
26
26
  spec.add_development_dependency 'minitest', '~> 5.15.0'
27
27
  spec.add_development_dependency 'minitest-rg'
28
28
  spec.add_development_dependency 'webmock', '~> 3.0'
29
29
  spec.add_development_dependency 'vcr'
30
+ spec.add_development_dependency 'cgi'
30
31
  spec.add_development_dependency 'rubocop', '= 0.49.1'
31
32
  spec.add_development_dependency 'googleauth', '~> 0.5.1'
32
33
  spec.add_development_dependency('mocha', '~> 1.5')
@@ -38,5 +39,5 @@ Gem::Specification.new do |spec|
38
39
  spec.add_dependency 'jsonpath', '~> 1.0'
39
40
  spec.add_dependency 'rest-client', '~> 2.0'
40
41
  spec.add_dependency 'recursive-open-struct', '~> 1.1', '>= 1.1.1'
41
- spec.add_dependency 'http', '>= 3.0', '< 5.0'
42
+ spec.add_dependency 'http', '>= 3.0', '< 6.0'
42
43
  end
@@ -7,7 +7,7 @@ module Kubeclient
7
7
  end
8
8
 
9
9
  class << self
10
- def token(credentials, eks_cluster)
10
+ def token(credentials, eks_cluster, region: 'us-east-1')
11
11
  begin
12
12
  require 'aws-sigv4'
13
13
  require 'base64'
@@ -20,17 +20,26 @@ module Kubeclient
20
20
  end
21
21
  # https://github.com/aws/aws-sdk-ruby/pull/1848
22
22
  # Get a signer
23
- # Note - sts only has ONE endpoint (not regional) so 'us-east-1' hardcoding should be OK
24
- signer = Aws::Sigv4::Signer.new(
25
- service: 'sts',
26
- region: 'us-east-1',
27
- credentials: credentials
28
- )
23
+ signer = if credentials.respond_to?(:credentials)
24
+ Aws::Sigv4::Signer.new(
25
+ service: 'sts',
26
+ region: region,
27
+ credentials_provider: credentials
28
+ )
29
+ else
30
+ Aws::Sigv4::Signer.new(
31
+ service: 'sts',
32
+ region: region,
33
+ credentials: credentials
34
+ )
35
+ end
36
+
37
+ credentials = credentials.credentials if credentials.respond_to?(:credentials)
29
38
 
30
39
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/Sigv4/Signer.html#presign_url-instance_method
31
40
  presigned_url_string = signer.presign_url(
32
41
  http_method: 'GET',
33
- url: 'https://sts.amazonaws.com/?Action=GetCallerIdentity&Version=2011-06-15',
42
+ url: "https://sts.#{region}.amazonaws.com/?Action=GetCallerIdentity&Version=2011-06-15",
34
43
  body: '',
35
44
  credentials: credentials,
36
45
  expires_in: 60,
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require 'rest-client'
3
5
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'yaml'
2
4
  require 'base64'
3
5
  require 'pathname'
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'delegate'
2
4
  module Kubeclient
3
5
  module Common
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  # TODO: remove this on next major version bump
2
4
  # Deprected http exception
3
5
  class KubeException < StandardError
@@ -12,7 +14,7 @@ class KubeException < StandardError
12
14
  def to_s
13
15
  string = "HTTP status code #{@error_code}, #{@message}"
14
16
  if @response.is_a?(RestClient::Response) && @response.request
15
- string << " for #{@response.request.method.upcase} #{@response.request.url}"
17
+ string += " for #{@response.request.method.upcase} #{@response.request.url}"
16
18
  end
17
19
  string
18
20
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kubeclient
2
4
  module Common
3
5
  # Backward compatibility for old versions where kind is missing (e.g. OpenShift Enterprise 3.1)
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'recursive_open_struct'
2
4
 
3
5
  module Kubeclient
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module Kubeclient
2
4
  class ResourceNotFoundError < HttpError
3
5
  end
@@ -1,4 +1,4 @@
1
1
  # Kubernetes REST-API Client
2
2
  module Kubeclient
3
- VERSION = '4.10.1'.freeze
3
+ VERSION = '4.13.0'.freeze
4
4
  end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require 'http'
3
5
  module Kubeclient
@@ -21,7 +23,7 @@ module Kubeclient
21
23
  raise Kubeclient::HttpError.new(response.code, response.reason, response)
22
24
  end
23
25
 
24
- buffer = ''
26
+ buffer = +''
25
27
  response.body.each do |chunk|
26
28
  buffer << chunk
27
29
  while (line = buffer.slice!(/.+\n/))
data/lib/kubeclient.rb CHANGED
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  require 'json'
2
4
  require 'rest-client'
3
5
 
metadata CHANGED
@@ -1,14 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kubeclient
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.10.1
4
+ version: 4.13.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alissa Bonas
8
- autorequire:
9
8
  bindir: bin
10
9
  cert_chain: []
11
- date: 2022-10-01 00:00:00.000000000 Z
10
+ date: 1980-01-02 00:00:00.000000000 Z
12
11
  dependencies:
13
12
  - !ruby/object:Gem::Dependency
14
13
  name: bundler
@@ -30,14 +29,14 @@ dependencies:
30
29
  requirements:
31
30
  - - "~>"
32
31
  - !ruby/object:Gem::Version
33
- version: '12.0'
32
+ version: '13.0'
34
33
  type: :development
35
34
  prerelease: false
36
35
  version_requirements: !ruby/object:Gem::Requirement
37
36
  requirements:
38
37
  - - "~>"
39
38
  - !ruby/object:Gem::Version
40
- version: '12.0'
39
+ version: '13.0'
41
40
  - !ruby/object:Gem::Dependency
42
41
  name: minitest
43
42
  requirement: !ruby/object:Gem::Requirement
@@ -94,6 +93,20 @@ dependencies:
94
93
  - - ">="
95
94
  - !ruby/object:Gem::Version
96
95
  version: '0'
96
+ - !ruby/object:Gem::Dependency
97
+ name: cgi
98
+ requirement: !ruby/object:Gem::Requirement
99
+ requirements:
100
+ - - ">="
101
+ - !ruby/object:Gem::Version
102
+ version: '0'
103
+ type: :development
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
97
110
  - !ruby/object:Gem::Dependency
98
111
  name: rubocop
99
112
  requirement: !ruby/object:Gem::Requirement
@@ -235,7 +248,7 @@ dependencies:
235
248
  version: '3.0'
236
249
  - - "<"
237
250
  - !ruby/object:Gem::Version
238
- version: '5.0'
251
+ version: '6.0'
239
252
  type: :runtime
240
253
  prerelease: false
241
254
  version_requirements: !ruby/object:Gem::Requirement
@@ -245,7 +258,7 @@ dependencies:
245
258
  version: '3.0'
246
259
  - - "<"
247
260
  - !ruby/object:Gem::Version
248
- version: '5.0'
261
+ version: '6.0'
249
262
  description: A client for Kubernetes REST api
250
263
  email:
251
264
  - abonas@redhat.com
@@ -283,7 +296,6 @@ homepage: https://github.com/abonas/kubeclient
283
296
  licenses:
284
297
  - MIT
285
298
  metadata: {}
286
- post_install_message:
287
299
  rdoc_options: []
288
300
  require_paths:
289
301
  - lib
@@ -291,15 +303,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
291
303
  requirements:
292
304
  - - ">="
293
305
  - !ruby/object:Gem::Version
294
- version: 2.2.0
306
+ version: 2.7.0
295
307
  required_rubygems_version: !ruby/object:Gem::Requirement
296
308
  requirements:
297
309
  - - ">="
298
310
  - !ruby/object:Gem::Version
299
311
  version: '0'
300
312
  requirements: []
301
- rubygems_version: 3.3.3
302
- signing_key:
313
+ rubygems_version: 3.6.7
303
314
  specification_version: 4
304
315
  summary: A client for Kubernetes REST api
305
316
  test_files: []