kubeclient 4.10.1 → 4.12.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: 287033950a2bdc37a0d5829270cffa4c6db6802e315cd54db01d91a98961964b
4
- data.tar.gz: c469d2d8a274bafb576f876d9f62a6e8384ef20943a0aa1b93f4f05dbeb721e2
3
+ metadata.gz: 21e5de1343a8f393c8eef653af1bb41e061bbee7fafa5d8cedafe8c163653071
4
+ data.tar.gz: aebdf094e7b05239467c8120382e47b65c82e031092cfc728b605f158257800a
5
5
  SHA512:
6
- metadata.gz: ccb85f7481dc3b20db30c919a94182e92fdab97e70e5f14f621449006d40a7626ff87351fbcb97e5affa5a1fab9207c7b6401c37d6c5b1cb1c4f68dc12ed25ce
7
- data.tar.gz: 04fe6ad1089bc48590923fcae56274733c1063d5ece677bca85d97c1602c252c86bed15d067099ef1a618e475f95a387fcf58a75f58f70fe1152b4181bf43127
6
+ metadata.gz: 161d8585521513897f730c0c1ab5f060634533cff048e146819dfa5c93e60afbdb67a4ed314245d61e343f7eca891454b2022e4ed9ced0117d518a8c2eb78ffa
7
+ data.tar.gz: 7f42460a4528177faccc81526ffc0904a5a7cc89ac56013fe99c208b6ab6cc2e7f289e1a654cb67f5f85985ffcd98af4b9e93b49cd052963d4d333697f50a7d5
@@ -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', '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,11 @@ 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
32
  name: ${{ matrix.os_and_command.os }} ${{ matrix.ruby }} rake ${{ matrix.os_and_command.command }}
33
33
  steps:
34
- - uses: actions/checkout@v2
34
+ - uses: actions/checkout@v4
35
35
  # actions/setup-ruby did not support truffle or bundler caching
36
36
  - uses: ruby/setup-ruby@v1
37
37
  with:
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,35 @@ 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.12.0 - 2024-06-18
8
+
9
+ ### Added
10
+ - Add test coverage for Ruby 3.2 (#615)
11
+ - Allow a region when getting a signer for Aws::Sts (#507)
12
+ - Update the AWS STS endpoint to be regional as the method is now regional (#528)
13
+ - Assume role support for aws eks credentials (#630)
14
+
15
+ ### Fixed
16
+ - [v4.y] Regenerated expired test TLS certs by running `test/config/update_certs_k0s.rb`.
17
+ - [v4.y] Regenerated expired test TLS certs (#611)
18
+ - Regenerated expired test TLS certs (#632)
19
+
20
+ ### Changed
21
+ - Update actions/checkout (#590)
22
+ - chore(deps): update actions/checkout action to v4 (#619)
23
+
24
+ ## 4.11.0 — 2022-12-22
25
+
26
+ ### Removed
27
+
28
+ - Dropped support for EOL Ruby versions 2.5, 2.6. (#589)
29
+
30
+ ### Added
31
+
32
+ - Relaxed dependency on `http` gem (used for watches) to allow 5.y.z versions. (#589)
33
+
34
+ - Specifically, http 5.1.1 may fix issues watching with IPv6. (#585)
35
+
7
36
  ## 4.10.1 — 2022-10-01
8
37
 
9
38
  ### Removed
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/kubeclient.gemspec CHANGED
@@ -19,10 +19,10 @@ 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'
@@ -38,5 +38,5 @@ Gem::Specification.new do |spec|
38
38
  spec.add_dependency 'jsonpath', '~> 1.0'
39
39
  spec.add_dependency 'rest-client', '~> 2.0'
40
40
  spec.add_dependency 'recursive-open-struct', '~> 1.1', '>= 1.1.1'
41
- spec.add_dependency 'http', '>= 3.0', '< 5.0'
41
+ spec.add_dependency 'http', '>= 3.0', '< 6.0'
42
42
  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,4 +1,4 @@
1
1
  # Kubernetes REST-API Client
2
2
  module Kubeclient
3
- VERSION = '4.10.1'.freeze
3
+ VERSION = '4.12.0'.freeze
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
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.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alissa Bonas
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2022-10-01 00:00:00.000000000 Z
11
+ date: 2024-06-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -30,14 +30,14 @@ dependencies:
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '12.0'
33
+ version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
38
  - - "~>"
39
39
  - !ruby/object:Gem::Version
40
- version: '12.0'
40
+ version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: minitest
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -235,7 +235,7 @@ dependencies:
235
235
  version: '3.0'
236
236
  - - "<"
237
237
  - !ruby/object:Gem::Version
238
- version: '5.0'
238
+ version: '6.0'
239
239
  type: :runtime
240
240
  prerelease: false
241
241
  version_requirements: !ruby/object:Gem::Requirement
@@ -245,7 +245,7 @@ dependencies:
245
245
  version: '3.0'
246
246
  - - "<"
247
247
  - !ruby/object:Gem::Version
248
- version: '5.0'
248
+ version: '6.0'
249
249
  description: A client for Kubernetes REST api
250
250
  email:
251
251
  - abonas@redhat.com
@@ -291,14 +291,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
291
291
  requirements:
292
292
  - - ">="
293
293
  - !ruby/object:Gem::Version
294
- version: 2.2.0
294
+ version: 2.7.0
295
295
  required_rubygems_version: !ruby/object:Gem::Requirement
296
296
  requirements:
297
297
  - - ">="
298
298
  - !ruby/object:Gem::Version
299
299
  version: '0'
300
300
  requirements: []
301
- rubygems_version: 3.3.3
301
+ rubygems_version: 3.4.20
302
302
  signing_key:
303
303
  specification_version: 4
304
304
  summary: A client for Kubernetes REST api