kubeclient 4.9.0 → 4.9.3

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.
Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/actions.yml +42 -0
  3. data/CHANGELOG.md +54 -0
  4. data/README.md +7 -0
  5. data/kubeclient.gemspec +4 -2
  6. data/lib/kubeclient/common.rb +18 -6
  7. data/lib/kubeclient/config.rb +22 -10
  8. data/lib/kubeclient/version.rb +1 -1
  9. metadata +22 -212
  10. data/.travis.yml +0 -29
  11. data/test/cassettes/kubernetes_guestbook.yml +0 -879
  12. data/test/config/allinone.kubeconfig +0 -20
  13. data/test/config/execauth.kubeconfig +0 -62
  14. data/test/config/external-ca.pem +0 -18
  15. data/test/config/external-cert.pem +0 -19
  16. data/test/config/external-key.rsa +0 -27
  17. data/test/config/external.kubeconfig +0 -20
  18. data/test/config/gcpauth.kubeconfig +0 -22
  19. data/test/config/gcpcmdauth.kubeconfig +0 -26
  20. data/test/config/nouser.kubeconfig +0 -16
  21. data/test/config/oidcauth.kubeconfig +0 -25
  22. data/test/config/timestamps.kubeconfig +0 -25
  23. data/test/config/userauth.kubeconfig +0 -28
  24. data/test/json/bindings_list.json +0 -10
  25. data/test/json/component_status.json +0 -17
  26. data/test/json/component_status_list.json +0 -52
  27. data/test/json/config.istio.io_api_resource_list.json +0 -679
  28. data/test/json/config_map_list.json +0 -9
  29. data/test/json/core_api_resource_list.json +0 -181
  30. data/test/json/core_api_resource_list_without_kind.json +0 -129
  31. data/test/json/core_oapi_resource_list_without_kind.json +0 -197
  32. data/test/json/created_endpoint.json +0 -28
  33. data/test/json/created_namespace.json +0 -20
  34. data/test/json/created_secret.json +0 -16
  35. data/test/json/created_security_context_constraint.json +0 -65
  36. data/test/json/created_service.json +0 -31
  37. data/test/json/empty_pod_list.json +0 -9
  38. data/test/json/endpoint_list.json +0 -48
  39. data/test/json/entity_list.json +0 -56
  40. data/test/json/event_list.json +0 -35
  41. data/test/json/extensions_v1beta1_api_resource_list.json +0 -217
  42. data/test/json/limit_range.json +0 -23
  43. data/test/json/limit_range_list.json +0 -31
  44. data/test/json/namespace.json +0 -13
  45. data/test/json/namespace_exception.json +0 -8
  46. data/test/json/namespace_list.json +0 -32
  47. data/test/json/node.json +0 -29
  48. data/test/json/node_list.json +0 -37
  49. data/test/json/node_notice.json +0 -160
  50. data/test/json/persistent_volume.json +0 -37
  51. data/test/json/persistent_volume_claim.json +0 -32
  52. data/test/json/persistent_volume_claim_list.json +0 -40
  53. data/test/json/persistent_volume_claims_nil_items.json +0 -8
  54. data/test/json/persistent_volume_list.json +0 -45
  55. data/test/json/pod.json +0 -92
  56. data/test/json/pod_list.json +0 -79
  57. data/test/json/pod_template_list.json +0 -9
  58. data/test/json/pods_1.json +0 -265
  59. data/test/json/pods_2.json +0 -102
  60. data/test/json/pods_410.json +0 -9
  61. data/test/json/processed_template.json +0 -27
  62. data/test/json/replication_controller.json +0 -57
  63. data/test/json/replication_controller_list.json +0 -66
  64. data/test/json/resource_quota.json +0 -46
  65. data/test/json/resource_quota_list.json +0 -54
  66. data/test/json/secret_list.json +0 -44
  67. data/test/json/security.openshift.io_api_resource_list.json +0 -69
  68. data/test/json/security_context_constraint_list.json +0 -375
  69. data/test/json/service.json +0 -33
  70. data/test/json/service_account.json +0 -25
  71. data/test/json/service_account_list.json +0 -82
  72. data/test/json/service_illegal_json_404.json +0 -1
  73. data/test/json/service_json_patch.json +0 -26
  74. data/test/json/service_list.json +0 -97
  75. data/test/json/service_merge_patch.json +0 -26
  76. data/test/json/service_patch.json +0 -25
  77. data/test/json/service_update.json +0 -22
  78. data/test/json/template.json +0 -27
  79. data/test/json/template.openshift.io_api_resource_list.json +0 -75
  80. data/test/json/template_list.json +0 -35
  81. data/test/json/versions_list.json +0 -6
  82. data/test/json/watch_stream.json +0 -3
  83. data/test/test_common.rb +0 -95
  84. data/test/test_component_status.rb +0 -29
  85. data/test/test_config.rb +0 -222
  86. data/test/test_endpoint.rb +0 -54
  87. data/test/test_exec_credentials.rb +0 -225
  88. data/test/test_gcp_command_credentials.rb +0 -27
  89. data/test/test_google_application_default_credentials.rb +0 -15
  90. data/test/test_guestbook_go.rb +0 -235
  91. data/test/test_helper.rb +0 -18
  92. data/test/test_kubeclient.rb +0 -881
  93. data/test/test_limit_range.rb +0 -25
  94. data/test/test_missing_methods.rb +0 -80
  95. data/test/test_namespace.rb +0 -59
  96. data/test/test_node.rb +0 -70
  97. data/test/test_oidc_auth_provider.rb +0 -103
  98. data/test/test_persistent_volume.rb +0 -29
  99. data/test/test_persistent_volume_claim.rb +0 -28
  100. data/test/test_pod.rb +0 -81
  101. data/test/test_pod_log.rb +0 -157
  102. data/test/test_process_template.rb +0 -80
  103. data/test/test_replication_controller.rb +0 -47
  104. data/test/test_resource_list_without_kind.rb +0 -78
  105. data/test/test_resource_quota.rb +0 -23
  106. data/test/test_secret.rb +0 -62
  107. data/test/test_security_context_constraint.rb +0 -62
  108. data/test/test_service.rb +0 -357
  109. data/test/test_service_account.rb +0 -26
  110. data/test/test_watch.rb +0 -195
  111. data/test/txt/pod_log.txt +0 -6
  112. data/test/valid_token_file +0 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3c8f79b61300006829c55c6b13715e6073a1cf9517ad8334959ff64706bee4ca
4
- data.tar.gz: 04ae220b4f78422992e34538e5b47a0dbf0a832aa2eb9f1ac86d3f1c221cd088
3
+ metadata.gz: 3f402a08fef66f160df49d507487769073b248828869a2c874d78e947b1d6686
4
+ data.tar.gz: 5d371f47861538f1e3e9deced8d1c41be1e0ca857ab8ed0607a75417948bb6f6
5
5
  SHA512:
6
- metadata.gz: b7c9ab202ff3e30f5884fd2f80987fe87a3a65a86fa1a3ecdba16383cbb958fdb98f02dd48a00a5ac50fac828b335a33b33f634f7e2cbe7913883e5aa9a81fa4
7
- data.tar.gz: 52078faf6ec204c2b08658d83604fb84c7e68ad409d754ada7ae9d0d989fbce01ae53b2c33993dc71a6bed5851904fe22b6cd3688f67fa1c4bf9cd7704c43f71
6
+ metadata.gz: f06a16d02e150194d06a4aa2c37a23bd1b7bbef4daca379ed7f60dd9581310b98cd3026d86e90b1b23d861fe6186d05e003d41380cb1edeaf7a2e52ccc594520
7
+ data.tar.gz: 7fbceb84c48af3bf4f28eadb05a2807a61196a26a66d72eb836ee5faa23d9a22fb1bd8e76fd16febd794007f1f0fd487000db40f543143789d33225c2350ccd0
@@ -0,0 +1,42 @@
1
+ name: CI
2
+ on:
3
+ push:
4
+ branches:
5
+ - '**'
6
+ tags:
7
+ - '**'
8
+ pull_request:
9
+ branches:
10
+ - '**'
11
+ jobs:
12
+ build:
13
+ continue-on-error: true
14
+ runs-on: ${{ matrix.os_and_command.os }}
15
+ strategy:
16
+ matrix:
17
+ ruby: [ '2.5', '2.6', '2.7', '3.0', '3.1', 'ruby-head', 'truffleruby-head' ]
18
+ os_and_command:
19
+ - os: 'macos-latest'
20
+ command: 'env TESTOPTS="--verbose" bundle exec rake test'
21
+ - os: ubuntu-latest
22
+ # Sometimes minitest starts and then just hangs printing nothing.
23
+ # Github by default kills after 6hours(!). Hopefully SIGTERM may let it print some details?
24
+ command: 'timeout --signal=TERM 3m env TESTOPTS="--verbose" test/config/update_certs_k0s.rb'
25
+ include:
26
+ # run rubocop against lowest supported ruby
27
+ - os: ubuntu-latest
28
+ ruby: '2.5'
29
+ command: 'bundle exec rake rubocop'
30
+ name: ${{ matrix.os_and_command.os }} ${{ matrix.ruby }} rake ${{ matrix.os_and_command.command }}
31
+ steps:
32
+ - uses: actions/checkout@v2
33
+ # actions/setup-ruby did not support truffle or bundler caching
34
+ - uses: ruby/setup-ruby@v1
35
+ with:
36
+ ruby-version: ${{ matrix.ruby }}
37
+ bundler-cache: false # disable running 'bundle install' and caching installed gems see https://github.com/httprb/http/issues/572
38
+ - run: gem install rake bundler
39
+ - run: bundle install
40
+ - run: ${{ matrix.os_and_command.command }}
41
+ timeout-minutes: 10
42
+
data/CHANGELOG.md CHANGED
@@ -4,6 +4,60 @@ 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.9.3 — 2021-03-23
8
+
9
+ ### Fixed
10
+
11
+ - VULNERABILITY FIX: Previously, whenever kubeconfig did not define custom CA
12
+ (normal situation for production clusters with public domain and certificate!),
13
+ `Config` was returning ssl_options[:verify_ssl] hard-coded to `VERIFY_NONE` :-(
14
+
15
+ Assuming you passed those ssl_options to Kubeclient::Client, this means that
16
+ instead of checking server's certificate against your system CA store,
17
+ it would accept ANY certificate, allowing easy man-in-the middle attacks.
18
+
19
+ This is especially dangerous with user/password or token credentials
20
+ because MITM attacker could simply steal those credentials to the cluster
21
+ and do anything you could do on the cluster.
22
+
23
+ This was broken IN ALL RELEASES MADE BEFORE 2022, ever since
24
+ [`Kubeclient::Config` was created](https://github.com/ManageIQ/kubeclient/pull/127/files#diff-32e70f2f6781a9e9c7b83ae5e7eaf5ffd068a05649077fa38f6789e72f3de837R41-R48).
25
+
26
+ - Bug fix: kubeconfig `insecure-skip-tls-verify` field was ignored.
27
+ When kubeconfig did define custom CA, `Config` was returning hard-coded `VERIFY_PEER`.
28
+
29
+ Now we honor it, return `VERIFY_NONE` iff kubeconfig has explicit
30
+ `insecure-skip-tls-verify: true`, otherwise `VERIFY_PEER`.
31
+
32
+ - `Config`: fixed parsing of `certificate-authority` file containing concatenation of
33
+ several certificates. Previously, server's cert was checked against only first CA cert,
34
+ resulting in possible "certificate verify failed" errors.
35
+
36
+ An important use case is a chain of root & intermediate cert(s) - necessary when cluster's CA
37
+ itself is signed by another custom CA.
38
+ But also helps when you simply concatenate independent certs. (#461, #552)
39
+
40
+ - Still broken (#460): inline `certificate-authority-data` is still parsed using `add_cert`
41
+ method that handles only one cert.
42
+
43
+ These don't affect code that supplies `Client` parameters directly,
44
+ only code that uses `Config`.
45
+
46
+ ## 4.9.2 — 2021-05-30
47
+
48
+ ### Added
49
+ - Ruby 3.0 compatibility (#500, #505).
50
+
51
+ ### Removed
52
+ - Reduce .gem size by dropping test/ directory, it's useless at run time (#502).
53
+
54
+ ## 4.9.1 — 2020-08-31
55
+ ### Fixed
56
+ - Now should work with apiserver deployed not at root of domain but a sub-path,
57
+ which is standard with Rancher.
58
+ Notably, `create_...` methods were sending bad apiVersion and getting 400 error.
59
+ (#457, hopefully fixes #318, #418 and https://gitlab.com/gitlab-org/gitlab/-/issues/22043)
60
+
7
61
  ## 4.9.0 - 2020-08-03
8
62
  ### Added
9
63
  - Support for `user: exec` credential plugins using TLS client auth (#453)
data/README.md CHANGED
@@ -9,6 +9,13 @@ The client supports GET, POST, PUT, DELETE on all the entities available in kube
9
9
  The client currently supports Kubernetes REST api version v1.
10
10
  To learn more about groups and versions in kubernetes refer to [k8s docs](https://kubernetes.io/docs/api/)
11
11
 
12
+ ## VULNERABILITY❗
13
+
14
+ If you use `Kubeclient::Config`, all gem versions released before 2022 could return incorrect `ssl_options[:verify_ssl]`,
15
+ endangering your connection and cluster credentials.
16
+ See [latest CHANGELOG.md](https://github.com/ManageIQ/kubeclient/blob/master/CHANGELOG.md) for details and which versions got a fix.
17
+ Open an issue if you want a backport to another version.
18
+
12
19
  ## Installation
13
20
 
14
21
  Add this line to your application's Gemfile:
data/kubeclient.gemspec CHANGED
@@ -14,9 +14,10 @@ Gem::Specification.new do |spec|
14
14
  spec.homepage = 'https://github.com/abonas/kubeclient'
15
15
  spec.license = 'MIT'
16
16
 
17
- spec.files = `git ls-files -z`.split("\x0")
17
+ git_files = `git ls-files -z`.split("\x0")
18
+ spec.files = git_files.grep_v(%r{^(test|spec|features)/})
18
19
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
19
- spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
20
+ spec.test_files = []
20
21
  spec.require_paths = ['lib']
21
22
  spec.required_ruby_version = '>= 2.2.0'
22
23
 
@@ -30,6 +31,7 @@ Gem::Specification.new do |spec|
30
31
  spec.add_development_dependency 'googleauth', '~> 0.5.1'
31
32
  spec.add_development_dependency('mocha', '~> 1.5')
32
33
  spec.add_development_dependency 'openid_connect', '~> 1.1'
34
+ spec.add_development_dependency 'net-smtp'
33
35
 
34
36
  spec.add_dependency 'jsonpath', '~> 1.0'
35
37
  spec.add_dependency 'rest-client', '~> 2.0'
@@ -194,10 +194,22 @@ module Kubeclient
194
194
  def handle_uri(uri, path)
195
195
  raise ArgumentError, 'Missing uri' unless uri
196
196
  @api_endpoint = (uri.is_a?(URI) ? uri : URI.parse(uri))
197
- @api_endpoint.path = path if @api_endpoint.path.empty?
198
- @api_endpoint.path = @api_endpoint.path.chop if @api_endpoint.path.end_with?('/')
199
- components = @api_endpoint.path.to_s.split('/') # ["", "api"] or ["", "apis", batch]
200
- @api_group = components.length > 2 ? components[2] + '/' : ''
197
+
198
+ # This regex will anchor at the last `/api`, `/oapi` or`/apis/:group`) part of the URL
199
+ # The whole path will be matched and if existing, the api_group will be extracted.
200
+ re = /^(?<path>.*\/o?api(?:s\/(?<apigroup>[^\/]+))?)$/mi
201
+ match = re.match(@api_endpoint.path.chomp('/'))
202
+
203
+ if match
204
+ # Since `re` captures 2 groups, match will always have 3 elements
205
+ # If thus we have a non-nil value in match 2, this is our api_group.
206
+ @api_group = match[:apigroup].nil? ? '' : match[:apigroup] + '/'
207
+ @api_endpoint.path = match[:path]
208
+ else
209
+ # This is a fallback, for when `/api` was not provided as part of the uri
210
+ @api_group = ''
211
+ @api_endpoint.path = @api_endpoint.path.chomp('/') + path
212
+ end
201
213
  end
202
214
 
203
215
  def build_namespace_prefix(namespace)
@@ -255,8 +267,8 @@ module Kubeclient
255
267
  patch_entity(entity.resource_name, name, patch, 'merge-patch', namespace)
256
268
  end
257
269
 
258
- define_singleton_method("apply_#{entity.method_names[0]}") do |*args|
259
- apply_entity(entity.resource_name, *args)
270
+ define_singleton_method("apply_#{entity.method_names[0]}") do |resource, opts = {}|
271
+ apply_entity(entity.resource_name, resource, **opts)
260
272
  end
261
273
  end
262
274
  end
@@ -30,7 +30,12 @@ module Kubeclient
30
30
 
31
31
  # Builds Config instance by parsing given file, with lookups relative to file's directory.
32
32
  def self.read(filename)
33
- parsed = YAML.safe_load(File.read(filename), [Date, Time])
33
+ parsed =
34
+ if RUBY_VERSION >= '2.6'
35
+ YAML.safe_load(File.read(filename), permitted_classes: [Date, Time])
36
+ else
37
+ YAML.safe_load(File.read(filename), [Date, Time])
38
+ end
34
39
  Config.new(parsed, File.dirname(filename))
35
40
  end
36
41
 
@@ -46,20 +51,22 @@ module Kubeclient
46
51
  user['exec_result'] = ExecCredentials.run(exec_opts)
47
52
  end
48
53
 
49
- ca_cert_data = fetch_cluster_ca_data(cluster)
50
54
  client_cert_data = fetch_user_cert_data(user)
51
55
  client_key_data = fetch_user_key_data(user)
52
56
  auth_options = fetch_user_auth_options(user)
53
57
 
54
58
  ssl_options = {}
55
59
 
56
- if !ca_cert_data.nil?
60
+ ssl_options[:verify_ssl] = if cluster['insecure-skip-tls-verify'] == true
61
+ OpenSSL::SSL::VERIFY_NONE
62
+ else
63
+ OpenSSL::SSL::VERIFY_PEER
64
+ end
65
+
66
+ if cluster_ca_data?(cluster)
57
67
  cert_store = OpenSSL::X509::Store.new
58
- cert_store.add_cert(OpenSSL::X509::Certificate.new(ca_cert_data))
59
- ssl_options[:verify_ssl] = OpenSSL::SSL::VERIFY_PEER
68
+ populate_cert_store_from_cluster_ca_data(cluster, cert_store)
60
69
  ssl_options[:cert_store] = cert_store
61
- else
62
- ssl_options[:verify_ssl] = OpenSSL::SSL::VERIFY_NONE
63
70
  end
64
71
 
65
72
  unless client_cert_data.nil?
@@ -126,11 +133,16 @@ module Kubeclient
126
133
  [cluster, user, namespace]
127
134
  end
128
135
 
129
- def fetch_cluster_ca_data(cluster)
136
+ def cluster_ca_data?(cluster)
137
+ cluster.key?('certificate-authority') || cluster.key?('certificate-authority-data')
138
+ end
139
+
140
+ def populate_cert_store_from_cluster_ca_data(cluster, cert_store)
130
141
  if cluster.key?('certificate-authority')
131
- File.read(ext_file_path(cluster['certificate-authority']))
142
+ cert_store.add_file(ext_file_path(cluster['certificate-authority']))
132
143
  elsif cluster.key?('certificate-authority-data')
133
- Base64.decode64(cluster['certificate-authority-data'])
144
+ ca_cert_data = Base64.decode64(cluster['certificate-authority-data'])
145
+ cert_store.add_cert(OpenSSL::X509::Certificate.new(ca_cert_data))
134
146
  end
135
147
  end
136
148
 
@@ -1,4 +1,4 @@
1
1
  # Kubernetes REST-API Client
2
2
  module Kubeclient
3
- VERSION = '4.9.0'.freeze
3
+ VERSION = '4.9.3'.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.9.0
4
+ version: 4.9.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alissa Bonas
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-08-03 00:00:00.000000000 Z
11
+ date: 2022-03-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -150,6 +150,20 @@ dependencies:
150
150
  - - "~>"
151
151
  - !ruby/object:Gem::Version
152
152
  version: '1.1'
153
+ - !ruby/object:Gem::Dependency
154
+ name: net-smtp
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
153
167
  - !ruby/object:Gem::Dependency
154
168
  name: jsonpath
155
169
  requirement: !ruby/object:Gem::Requirement
@@ -225,9 +239,9 @@ executables: []
225
239
  extensions: []
226
240
  extra_rdoc_files: []
227
241
  files:
242
+ - ".github/workflows/actions.yml"
228
243
  - ".gitignore"
229
244
  - ".rubocop.yml"
230
- - ".travis.yml"
231
245
  - CHANGELOG.md
232
246
  - Gemfile
233
247
  - LICENSE.txt
@@ -251,113 +265,11 @@ files:
251
265
  - lib/kubeclient/resource_not_found_error.rb
252
266
  - lib/kubeclient/version.rb
253
267
  - lib/kubeclient/watch_stream.rb
254
- - test/cassettes/kubernetes_guestbook.yml
255
- - test/config/allinone.kubeconfig
256
- - test/config/execauth.kubeconfig
257
- - test/config/external-ca.pem
258
- - test/config/external-cert.pem
259
- - test/config/external-key.rsa
260
- - test/config/external.kubeconfig
261
- - test/config/gcpauth.kubeconfig
262
- - test/config/gcpcmdauth.kubeconfig
263
- - test/config/nouser.kubeconfig
264
- - test/config/oidcauth.kubeconfig
265
- - test/config/timestamps.kubeconfig
266
- - test/config/userauth.kubeconfig
267
- - test/json/bindings_list.json
268
- - test/json/component_status.json
269
- - test/json/component_status_list.json
270
- - test/json/config.istio.io_api_resource_list.json
271
- - test/json/config_map_list.json
272
- - test/json/core_api_resource_list.json
273
- - test/json/core_api_resource_list_without_kind.json
274
- - test/json/core_oapi_resource_list_without_kind.json
275
- - test/json/created_endpoint.json
276
- - test/json/created_namespace.json
277
- - test/json/created_secret.json
278
- - test/json/created_security_context_constraint.json
279
- - test/json/created_service.json
280
- - test/json/empty_pod_list.json
281
- - test/json/endpoint_list.json
282
- - test/json/entity_list.json
283
- - test/json/event_list.json
284
- - test/json/extensions_v1beta1_api_resource_list.json
285
- - test/json/limit_range.json
286
- - test/json/limit_range_list.json
287
- - test/json/namespace.json
288
- - test/json/namespace_exception.json
289
- - test/json/namespace_list.json
290
- - test/json/node.json
291
- - test/json/node_list.json
292
- - test/json/node_notice.json
293
- - test/json/persistent_volume.json
294
- - test/json/persistent_volume_claim.json
295
- - test/json/persistent_volume_claim_list.json
296
- - test/json/persistent_volume_claims_nil_items.json
297
- - test/json/persistent_volume_list.json
298
- - test/json/pod.json
299
- - test/json/pod_list.json
300
- - test/json/pod_template_list.json
301
- - test/json/pods_1.json
302
- - test/json/pods_2.json
303
- - test/json/pods_410.json
304
- - test/json/processed_template.json
305
- - test/json/replication_controller.json
306
- - test/json/replication_controller_list.json
307
- - test/json/resource_quota.json
308
- - test/json/resource_quota_list.json
309
- - test/json/secret_list.json
310
- - test/json/security.openshift.io_api_resource_list.json
311
- - test/json/security_context_constraint_list.json
312
- - test/json/service.json
313
- - test/json/service_account.json
314
- - test/json/service_account_list.json
315
- - test/json/service_illegal_json_404.json
316
- - test/json/service_json_patch.json
317
- - test/json/service_list.json
318
- - test/json/service_merge_patch.json
319
- - test/json/service_patch.json
320
- - test/json/service_update.json
321
- - test/json/template.json
322
- - test/json/template.openshift.io_api_resource_list.json
323
- - test/json/template_list.json
324
- - test/json/versions_list.json
325
- - test/json/watch_stream.json
326
- - test/test_common.rb
327
- - test/test_component_status.rb
328
- - test/test_config.rb
329
- - test/test_endpoint.rb
330
- - test/test_exec_credentials.rb
331
- - test/test_gcp_command_credentials.rb
332
- - test/test_google_application_default_credentials.rb
333
- - test/test_guestbook_go.rb
334
- - test/test_helper.rb
335
- - test/test_kubeclient.rb
336
- - test/test_limit_range.rb
337
- - test/test_missing_methods.rb
338
- - test/test_namespace.rb
339
- - test/test_node.rb
340
- - test/test_oidc_auth_provider.rb
341
- - test/test_persistent_volume.rb
342
- - test/test_persistent_volume_claim.rb
343
- - test/test_pod.rb
344
- - test/test_pod_log.rb
345
- - test/test_process_template.rb
346
- - test/test_replication_controller.rb
347
- - test/test_resource_list_without_kind.rb
348
- - test/test_resource_quota.rb
349
- - test/test_secret.rb
350
- - test/test_security_context_constraint.rb
351
- - test/test_service.rb
352
- - test/test_service_account.rb
353
- - test/test_watch.rb
354
- - test/txt/pod_log.txt
355
- - test/valid_token_file
356
268
  homepage: https://github.com/abonas/kubeclient
357
269
  licenses:
358
270
  - MIT
359
271
  metadata: {}
360
- post_install_message:
272
+ post_install_message:
361
273
  rdoc_options: []
362
274
  require_paths:
363
275
  - lib
@@ -372,110 +284,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
372
284
  - !ruby/object:Gem::Version
373
285
  version: '0'
374
286
  requirements: []
375
- rubygems_version: 3.1.2
376
- signing_key:
287
+ rubygems_version: 3.3.3
288
+ signing_key:
377
289
  specification_version: 4
378
290
  summary: A client for Kubernetes REST api
379
- test_files:
380
- - test/cassettes/kubernetes_guestbook.yml
381
- - test/config/allinone.kubeconfig
382
- - test/config/execauth.kubeconfig
383
- - test/config/external-ca.pem
384
- - test/config/external-cert.pem
385
- - test/config/external-key.rsa
386
- - test/config/external.kubeconfig
387
- - test/config/gcpauth.kubeconfig
388
- - test/config/gcpcmdauth.kubeconfig
389
- - test/config/nouser.kubeconfig
390
- - test/config/oidcauth.kubeconfig
391
- - test/config/timestamps.kubeconfig
392
- - test/config/userauth.kubeconfig
393
- - test/json/bindings_list.json
394
- - test/json/component_status.json
395
- - test/json/component_status_list.json
396
- - test/json/config.istio.io_api_resource_list.json
397
- - test/json/config_map_list.json
398
- - test/json/core_api_resource_list.json
399
- - test/json/core_api_resource_list_without_kind.json
400
- - test/json/core_oapi_resource_list_without_kind.json
401
- - test/json/created_endpoint.json
402
- - test/json/created_namespace.json
403
- - test/json/created_secret.json
404
- - test/json/created_security_context_constraint.json
405
- - test/json/created_service.json
406
- - test/json/empty_pod_list.json
407
- - test/json/endpoint_list.json
408
- - test/json/entity_list.json
409
- - test/json/event_list.json
410
- - test/json/extensions_v1beta1_api_resource_list.json
411
- - test/json/limit_range.json
412
- - test/json/limit_range_list.json
413
- - test/json/namespace.json
414
- - test/json/namespace_exception.json
415
- - test/json/namespace_list.json
416
- - test/json/node.json
417
- - test/json/node_list.json
418
- - test/json/node_notice.json
419
- - test/json/persistent_volume.json
420
- - test/json/persistent_volume_claim.json
421
- - test/json/persistent_volume_claim_list.json
422
- - test/json/persistent_volume_claims_nil_items.json
423
- - test/json/persistent_volume_list.json
424
- - test/json/pod.json
425
- - test/json/pod_list.json
426
- - test/json/pod_template_list.json
427
- - test/json/pods_1.json
428
- - test/json/pods_2.json
429
- - test/json/pods_410.json
430
- - test/json/processed_template.json
431
- - test/json/replication_controller.json
432
- - test/json/replication_controller_list.json
433
- - test/json/resource_quota.json
434
- - test/json/resource_quota_list.json
435
- - test/json/secret_list.json
436
- - test/json/security.openshift.io_api_resource_list.json
437
- - test/json/security_context_constraint_list.json
438
- - test/json/service.json
439
- - test/json/service_account.json
440
- - test/json/service_account_list.json
441
- - test/json/service_illegal_json_404.json
442
- - test/json/service_json_patch.json
443
- - test/json/service_list.json
444
- - test/json/service_merge_patch.json
445
- - test/json/service_patch.json
446
- - test/json/service_update.json
447
- - test/json/template.json
448
- - test/json/template.openshift.io_api_resource_list.json
449
- - test/json/template_list.json
450
- - test/json/versions_list.json
451
- - test/json/watch_stream.json
452
- - test/test_common.rb
453
- - test/test_component_status.rb
454
- - test/test_config.rb
455
- - test/test_endpoint.rb
456
- - test/test_exec_credentials.rb
457
- - test/test_gcp_command_credentials.rb
458
- - test/test_google_application_default_credentials.rb
459
- - test/test_guestbook_go.rb
460
- - test/test_helper.rb
461
- - test/test_kubeclient.rb
462
- - test/test_limit_range.rb
463
- - test/test_missing_methods.rb
464
- - test/test_namespace.rb
465
- - test/test_node.rb
466
- - test/test_oidc_auth_provider.rb
467
- - test/test_persistent_volume.rb
468
- - test/test_persistent_volume_claim.rb
469
- - test/test_pod.rb
470
- - test/test_pod_log.rb
471
- - test/test_process_template.rb
472
- - test/test_replication_controller.rb
473
- - test/test_resource_list_without_kind.rb
474
- - test/test_resource_quota.rb
475
- - test/test_secret.rb
476
- - test/test_security_context_constraint.rb
477
- - test/test_service.rb
478
- - test/test_service_account.rb
479
- - test/test_watch.rb
480
- - test/txt/pod_log.txt
481
- - test/valid_token_file
291
+ test_files: []
data/.travis.yml DELETED
@@ -1,29 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- cache: bundler
4
- script: bundle exec rake $TASK
5
-
6
- os:
7
- - linux
8
- - osx
9
- rvm:
10
- - "2.2.0"
11
- - "2.3.0"
12
- - "2.4.0"
13
- - "2.5.0"
14
- - "2.6.0"
15
- - "2.7.0"
16
- env:
17
- - TASK=test
18
- matrix:
19
- exclude:
20
- - os: osx
21
- rvm: "2.2.0"
22
- - os: osx
23
- rvm: "2.3.0"
24
- # No point running Rubocop on different rubies, results will be same.
25
- # The rubies it expects the code to target are controlled in .rubocop.yml.
26
- include:
27
- - os: linux
28
- rvm: "2.5.0"
29
- env: TASK=rubocop