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.
- checksums.yaml +4 -4
- data/.github/workflows/actions.yml +42 -0
- data/CHANGELOG.md +54 -0
- data/README.md +7 -0
- data/kubeclient.gemspec +4 -2
- data/lib/kubeclient/common.rb +18 -6
- data/lib/kubeclient/config.rb +22 -10
- data/lib/kubeclient/version.rb +1 -1
- metadata +22 -212
- data/.travis.yml +0 -29
- data/test/cassettes/kubernetes_guestbook.yml +0 -879
- data/test/config/allinone.kubeconfig +0 -20
- data/test/config/execauth.kubeconfig +0 -62
- data/test/config/external-ca.pem +0 -18
- data/test/config/external-cert.pem +0 -19
- data/test/config/external-key.rsa +0 -27
- data/test/config/external.kubeconfig +0 -20
- data/test/config/gcpauth.kubeconfig +0 -22
- data/test/config/gcpcmdauth.kubeconfig +0 -26
- data/test/config/nouser.kubeconfig +0 -16
- data/test/config/oidcauth.kubeconfig +0 -25
- data/test/config/timestamps.kubeconfig +0 -25
- data/test/config/userauth.kubeconfig +0 -28
- data/test/json/bindings_list.json +0 -10
- data/test/json/component_status.json +0 -17
- data/test/json/component_status_list.json +0 -52
- data/test/json/config.istio.io_api_resource_list.json +0 -679
- data/test/json/config_map_list.json +0 -9
- data/test/json/core_api_resource_list.json +0 -181
- data/test/json/core_api_resource_list_without_kind.json +0 -129
- data/test/json/core_oapi_resource_list_without_kind.json +0 -197
- data/test/json/created_endpoint.json +0 -28
- data/test/json/created_namespace.json +0 -20
- data/test/json/created_secret.json +0 -16
- data/test/json/created_security_context_constraint.json +0 -65
- data/test/json/created_service.json +0 -31
- data/test/json/empty_pod_list.json +0 -9
- data/test/json/endpoint_list.json +0 -48
- data/test/json/entity_list.json +0 -56
- data/test/json/event_list.json +0 -35
- data/test/json/extensions_v1beta1_api_resource_list.json +0 -217
- data/test/json/limit_range.json +0 -23
- data/test/json/limit_range_list.json +0 -31
- data/test/json/namespace.json +0 -13
- data/test/json/namespace_exception.json +0 -8
- data/test/json/namespace_list.json +0 -32
- data/test/json/node.json +0 -29
- data/test/json/node_list.json +0 -37
- data/test/json/node_notice.json +0 -160
- data/test/json/persistent_volume.json +0 -37
- data/test/json/persistent_volume_claim.json +0 -32
- data/test/json/persistent_volume_claim_list.json +0 -40
- data/test/json/persistent_volume_claims_nil_items.json +0 -8
- data/test/json/persistent_volume_list.json +0 -45
- data/test/json/pod.json +0 -92
- data/test/json/pod_list.json +0 -79
- data/test/json/pod_template_list.json +0 -9
- data/test/json/pods_1.json +0 -265
- data/test/json/pods_2.json +0 -102
- data/test/json/pods_410.json +0 -9
- data/test/json/processed_template.json +0 -27
- data/test/json/replication_controller.json +0 -57
- data/test/json/replication_controller_list.json +0 -66
- data/test/json/resource_quota.json +0 -46
- data/test/json/resource_quota_list.json +0 -54
- data/test/json/secret_list.json +0 -44
- data/test/json/security.openshift.io_api_resource_list.json +0 -69
- data/test/json/security_context_constraint_list.json +0 -375
- data/test/json/service.json +0 -33
- data/test/json/service_account.json +0 -25
- data/test/json/service_account_list.json +0 -82
- data/test/json/service_illegal_json_404.json +0 -1
- data/test/json/service_json_patch.json +0 -26
- data/test/json/service_list.json +0 -97
- data/test/json/service_merge_patch.json +0 -26
- data/test/json/service_patch.json +0 -25
- data/test/json/service_update.json +0 -22
- data/test/json/template.json +0 -27
- data/test/json/template.openshift.io_api_resource_list.json +0 -75
- data/test/json/template_list.json +0 -35
- data/test/json/versions_list.json +0 -6
- data/test/json/watch_stream.json +0 -3
- data/test/test_common.rb +0 -95
- data/test/test_component_status.rb +0 -29
- data/test/test_config.rb +0 -222
- data/test/test_endpoint.rb +0 -54
- data/test/test_exec_credentials.rb +0 -225
- data/test/test_gcp_command_credentials.rb +0 -27
- data/test/test_google_application_default_credentials.rb +0 -15
- data/test/test_guestbook_go.rb +0 -235
- data/test/test_helper.rb +0 -18
- data/test/test_kubeclient.rb +0 -881
- data/test/test_limit_range.rb +0 -25
- data/test/test_missing_methods.rb +0 -80
- data/test/test_namespace.rb +0 -59
- data/test/test_node.rb +0 -70
- data/test/test_oidc_auth_provider.rb +0 -103
- data/test/test_persistent_volume.rb +0 -29
- data/test/test_persistent_volume_claim.rb +0 -28
- data/test/test_pod.rb +0 -81
- data/test/test_pod_log.rb +0 -157
- data/test/test_process_template.rb +0 -80
- data/test/test_replication_controller.rb +0 -47
- data/test/test_resource_list_without_kind.rb +0 -78
- data/test/test_resource_quota.rb +0 -23
- data/test/test_secret.rb +0 -62
- data/test/test_security_context_constraint.rb +0 -62
- data/test/test_service.rb +0 -357
- data/test/test_service_account.rb +0 -26
- data/test/test_watch.rb +0 -195
- data/test/txt/pod_log.txt +0 -6
- data/test/valid_token_file +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 3f402a08fef66f160df49d507487769073b248828869a2c874d78e947b1d6686
|
|
4
|
+
data.tar.gz: 5d371f47861538f1e3e9deced8d1c41be1e0ca857ab8ed0607a75417948bb6f6
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
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
|
-
|
|
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 =
|
|
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'
|
data/lib/kubeclient/common.rb
CHANGED
|
@@ -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
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
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
|
|
259
|
-
apply_entity(entity.resource_name,
|
|
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
|
data/lib/kubeclient/config.rb
CHANGED
|
@@ -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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
data/lib/kubeclient/version.rb
CHANGED
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.
|
|
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:
|
|
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.
|
|
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
|