kubeclient 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of kubeclient might be problematic. Click here for more details.
- checksums.yaml +5 -13
- data/README.md +6 -5
- data/lib/kubeclient/namespace.rb +4 -0
- data/lib/kubeclient/version.rb +1 -1
- data/lib/kubeclient.rb +112 -85
- data/test/json/namespace_b3.json +13 -0
- data/test/json/namespace_list_b3.json +32 -0
- data/test/kubeclient_test.rb +7 -1
- data/test/namespace_test.rb +34 -0
- metadata +26 -19
checksums.yaml
CHANGED
@@ -1,15 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
|
5
|
-
data.tar.gz: !binary |-
|
6
|
-
OWZhYTM1ZWY1ZTViOGVmMGVkYzNiZmNjZTgyYzQwMDJjMTRlNjY1Yw==
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: fbba708e9cb9c3075c713fbbeb857f1d40862e74
|
4
|
+
data.tar.gz: 6ae82fd5ed84ca5c8cb0cf4b5dc75f469673b8b7
|
7
5
|
SHA512:
|
8
|
-
metadata.gz:
|
9
|
-
|
10
|
-
MTIyMTE1ODZmYzExMjM5NDQ2NDc0YTEyNTcyNWU1OTFkYzMyZTQzNzRjOWNj
|
11
|
-
ZGI5MDM4YmVhNWM4ZjE3YmFlNDJhMjY4NmI5ZjFmODBlOTkzNDI=
|
12
|
-
data.tar.gz: !binary |-
|
13
|
-
YzU3MjViNjAxYTI3NDk1YzU4NjM1NTdjNWUxZjBiNDJlMzFhZDVmODI4NTU2
|
14
|
-
MTdkNDE4MmVhMzY3YTg2OGI1ODBjNzU2MDk1M2VhOGZlMjBmMmZmN2M3ZDcw
|
15
|
-
NzdkZTlkZmU2YTFhNmQ4Y2YzNjhkMGU0MTNmODc4OWY0ZjAzYTA=
|
6
|
+
metadata.gz: 27c5a0e7b4ffb85ba71fe6e5400dd4a31daba72dbe4448df99477268f73d1903bdcd6ff57f34cf04ec896849286e3cc7cc552833e5d3e376f97cde78469491f6
|
7
|
+
data.tar.gz: 40c6d213114e6e07605132dc8e012886c68e191319e08c5ad9016a18494f0e9f474e32fa02ed0dc839c9ede26fbb505b4338f4bfa4a5ad93ea95914fc2f2f790
|
data/README.md
CHANGED
@@ -6,8 +6,7 @@
|
|
6
6
|
[![Dependency Status](https://gemnasium.com/abonas/kubeclient.svg)](https://gemnasium.com/abonas/kubeclient)
|
7
7
|
|
8
8
|
A Ruby client for Kubernetes REST api.
|
9
|
-
The client supports GET, POST, PUT, DELETE on pods, services
|
10
|
-
Also, GET and DELETE is supported for nodes.
|
9
|
+
The client supports GET, POST, PUT, DELETE on nodes, pods, services, replication controllers and namespaces.
|
11
10
|
The client currently supports Kubernetes REST api version v1beta1 and v1beta3.
|
12
11
|
|
13
12
|
## Installation
|
@@ -109,9 +108,11 @@ It is possible to interrupt the watcher from another thread with:
|
|
109
108
|
|
110
109
|
1. Fork it ( https://github.com/[my-github-username]/kubeclient/fork )
|
111
110
|
2. Create your feature branch (`git checkout -b my-new-feature`)
|
112
|
-
3.
|
113
|
-
4.
|
114
|
-
5.
|
111
|
+
3. Test your changes with `rake test rubocop`, add new tests if needed.
|
112
|
+
4. If you added a new functionality, add it to README
|
113
|
+
5. Commit your changes (`git commit -am 'Add some feature'`)
|
114
|
+
6. Push to the branch (`git push origin my-new-feature`)
|
115
|
+
7. Create a new Pull Request
|
115
116
|
|
116
117
|
## Tests
|
117
118
|
|
data/lib/kubeclient/version.rb
CHANGED
data/lib/kubeclient.rb
CHANGED
@@ -17,7 +17,9 @@ module Kubeclient
|
|
17
17
|
# Kubernetes Client
|
18
18
|
class Client
|
19
19
|
attr_reader :api_endpoint
|
20
|
-
|
20
|
+
|
21
|
+
ENTITY_TYPES = %w(Pod Service ReplicationController Node Event Endpoint
|
22
|
+
Namespace)
|
21
23
|
|
22
24
|
def initialize(uri, version)
|
23
25
|
@api_endpoint = (uri.is_a? URI) ? uri : URI.parse(uri)
|
@@ -48,17 +50,98 @@ module Kubeclient
|
|
48
50
|
raise KubeException.new(e.http_code, JSON.parse(e.response)['message'])
|
49
51
|
end
|
50
52
|
|
53
|
+
def get_entities(entity_type)
|
54
|
+
# TODO: labels support
|
55
|
+
# TODO: namespace support?
|
56
|
+
response = handling_kube_exception do
|
57
|
+
rest_client[get_resource_name(entity_type)].get # nil, labels
|
58
|
+
end
|
59
|
+
|
60
|
+
result = JSON.parse(response)
|
61
|
+
|
62
|
+
resource_version = result.fetch('resourceVersion', nil)
|
63
|
+
if resource_version.nil?
|
64
|
+
resource_version =
|
65
|
+
result.fetch('metadata', {}).fetch('resourceVersion', nil)
|
66
|
+
end
|
67
|
+
|
68
|
+
collection = EntityList.new(entity_type, resource_version)
|
69
|
+
|
70
|
+
result['items'].each do |item|
|
71
|
+
collection.push(new_entity(item, entity_type))
|
72
|
+
end
|
73
|
+
|
74
|
+
collection
|
75
|
+
end
|
76
|
+
|
77
|
+
def watch_entities(entity_type, resource_version = nil)
|
78
|
+
resource_name = get_resource_name(entity_type.to_s)
|
79
|
+
|
80
|
+
uri = api_endpoint.merge(
|
81
|
+
File.join(api_endpoint.path, 'watch', resource_name))
|
82
|
+
|
83
|
+
unless resource_version.nil?
|
84
|
+
uri.query = URI.encode_www_form('resourceVersion' => resource_version)
|
85
|
+
end
|
86
|
+
|
87
|
+
options = {
|
88
|
+
use_ssl: uri.scheme == 'https',
|
89
|
+
ca_file: @ssl_options[:ca_file],
|
90
|
+
verify_ssl: @ssl_options[:verify_ssl],
|
91
|
+
client_cert: @ssl_options[:client_cert],
|
92
|
+
client_key: @ssl_options[:client_key]
|
93
|
+
}
|
94
|
+
|
95
|
+
WatchStream.new(uri, options)
|
96
|
+
end
|
97
|
+
|
98
|
+
def get_entity(entity_type, id)
|
99
|
+
response = handling_kube_exception do
|
100
|
+
rest_client[get_resource_name(entity_type) + "/#{id}"].get
|
101
|
+
end
|
102
|
+
result = JSON.parse(response)
|
103
|
+
new_entity(result, entity_type)
|
104
|
+
end
|
105
|
+
|
106
|
+
def delete_entity(entity_type, id)
|
107
|
+
handling_kube_exception do
|
108
|
+
rest_client[get_resource_name(entity_type) + "/#{id}"].delete
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
112
|
+
def create_entity(entity_type, entity_config)
|
113
|
+
# to_hash should be called because of issue #9 in recursive open
|
114
|
+
# struct
|
115
|
+
hash = entity_config.to_hash
|
116
|
+
handling_kube_exception do
|
117
|
+
rest_client[get_resource_name(entity_type)].post(hash.to_json)
|
118
|
+
end
|
119
|
+
end
|
120
|
+
|
121
|
+
def update_entity(entity_type, entity_config)
|
122
|
+
id = entity_config.id
|
123
|
+
# to_hash should be called because of issue #9 in recursive open
|
124
|
+
# struct
|
125
|
+
hash = entity_config.to_hash
|
126
|
+
# TODO: temporary solution to delete id till this issue is solved
|
127
|
+
# https://github.com/GoogleCloudPlatform/kubernetes/issues/3085
|
128
|
+
hash.delete(:id)
|
129
|
+
handling_kube_exception do
|
130
|
+
rest_client[get_resource_name(entity_type) + "/#{id}"].put(hash.to_json)
|
131
|
+
end
|
132
|
+
end
|
133
|
+
|
51
134
|
protected
|
52
135
|
|
53
|
-
def
|
54
|
-
|
136
|
+
def new_entity(hash, entity_type)
|
137
|
+
entity_type.classify.constantize.new(hash)
|
55
138
|
end
|
56
139
|
|
57
|
-
def get_resource_name(
|
140
|
+
def get_resource_name(entity_type)
|
58
141
|
if @api_version == 'v1beta1'
|
59
|
-
|
142
|
+
entity_type.pluralize.camelize(:lower)
|
60
143
|
else
|
61
|
-
|
144
|
+
entity_type.pluralize.downcase
|
62
145
|
end
|
63
146
|
end
|
64
147
|
|
@@ -74,100 +157,44 @@ module Kubeclient
|
|
74
157
|
}
|
75
158
|
end
|
76
159
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
# TODO: labels support
|
81
|
-
# TODO: namespace support?
|
82
|
-
response = handling_kube_exception do
|
83
|
-
rest_client[get_resource_name(entity)].get # nil, labels
|
84
|
-
end
|
85
|
-
|
86
|
-
result = JSON.parse(response)
|
87
|
-
|
88
|
-
resource_version = result.fetch('resourceVersion', nil)
|
89
|
-
if resource_version.nil?
|
90
|
-
resource_version =
|
91
|
-
result.fetch('metadata', {}).fetch('resourceVersion', nil)
|
92
|
-
end
|
93
|
-
|
94
|
-
collection = EntityList.new(entity, resource_version)
|
160
|
+
ENTITY_TYPES.each do |entity_type|
|
161
|
+
entity_name = entity_type.underscore
|
162
|
+
entity_name_plural = entity_name.pluralize
|
95
163
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
collection
|
164
|
+
# get all entities of a type e.g. get_nodes, get_pods, etc.
|
165
|
+
define_method("get_#{entity_name_plural}") do
|
166
|
+
get_entities(entity_type)
|
101
167
|
end
|
102
168
|
|
103
169
|
# watch all entities of a type e.g. watch_nodes, watch_pods, etc.
|
104
|
-
define_method("watch_#{
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
uri = api_endpoint.merge(
|
109
|
-
File.join(api_endpoint.path, 'watch', resource_name))
|
170
|
+
define_method("watch_#{entity_name_plural}") do |resource_version = nil|
|
171
|
+
watch_entities(entity_type, resource_version)
|
172
|
+
end
|
110
173
|
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
174
|
+
# get a single entity of a specific type by id
|
175
|
+
define_method("get_#{entity_name}") do |id|
|
176
|
+
get_entity(entity_type, id)
|
177
|
+
end
|
115
178
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
verify_ssl: @ssl_options[:verify_ssl],
|
120
|
-
client_cert: @ssl_options[:client_cert],
|
121
|
-
client_key: @ssl_options[:client_key]
|
122
|
-
}
|
179
|
+
define_method("delete_#{entity_name}") do |id|
|
180
|
+
delete_entity(entity_type, id)
|
181
|
+
end
|
123
182
|
|
124
|
-
|
183
|
+
define_method("create_#{entity_name}") do |entity_config|
|
184
|
+
create_entity(entity_type, entity_config)
|
125
185
|
end
|
126
186
|
|
127
|
-
#
|
128
|
-
|
129
|
-
response = handling_kube_exception do
|
130
|
-
rest_client[get_resource_name(entity) + "/#{id}"].get
|
131
|
-
end
|
132
|
-
result = JSON.parse(response)
|
133
|
-
create_entity(result, entity)
|
134
|
-
end
|
135
|
-
|
136
|
-
define_method("delete_#{entity.underscore}") do |id|
|
137
|
-
handling_kube_exception do
|
138
|
-
rest_client[get_resource_name(entity) + "/#{id}"].delete
|
139
|
-
end
|
140
|
-
end
|
141
|
-
|
142
|
-
define_method("create_#{entity.underscore}") do |entity_config|
|
143
|
-
# to_hash should be called because of issue #9 in recursive open
|
144
|
-
# struct
|
145
|
-
hash = entity_config.to_hash
|
146
|
-
handling_kube_exception do
|
147
|
-
rest_client[get_resource_name(entity)].post(hash.to_json)
|
148
|
-
end
|
149
|
-
end
|
150
|
-
|
151
|
-
define_method("update_#{entity.underscore}") do |entity_config|
|
152
|
-
id = entity_config.id
|
153
|
-
# to_hash should be called because of issue #9 in recursive open
|
154
|
-
# struct
|
155
|
-
hash = entity_config.to_hash
|
156
|
-
# TODO: temporary solution to delete id till this issue is solved
|
157
|
-
# https://github.com/GoogleCloudPlatform/kubernetes/issues/3085
|
158
|
-
hash.delete(:id)
|
159
|
-
handling_kube_exception do
|
160
|
-
rest_client[get_resource_name(entity) + "/#{id}"].put(hash.to_json)
|
161
|
-
end
|
187
|
+
define_method("update_#{entity_name}") do |entity_config|
|
188
|
+
update_entity(entity_type, entity_config)
|
162
189
|
end
|
163
190
|
end
|
164
191
|
|
165
192
|
def all_entities
|
166
|
-
|
193
|
+
ENTITY_TYPES.each_with_object({}) do |entity_type, result_hash|
|
167
194
|
# method call for get each entities
|
168
195
|
# build hash of entity name to array of the entities
|
169
|
-
method_name = "get_#{
|
170
|
-
key_name =
|
196
|
+
method_name = "get_#{entity_type.underscore.pluralize}"
|
197
|
+
key_name = entity_type.underscore
|
171
198
|
result_hash[key_name] = send(method_name)
|
172
199
|
end
|
173
200
|
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
{
|
2
|
+
"kind": "Namespace",
|
3
|
+
"apiVersion": "v1beta3",
|
4
|
+
"metadata": {
|
5
|
+
"name": "staging",
|
6
|
+
"selfLink": "/api/v1beta3/namespaces/staging",
|
7
|
+
"uid": "e388bc10-c021-11e4-a514-3c970e4a436a",
|
8
|
+
"resourceVersion": "1168",
|
9
|
+
"creationTimestamp": "2015-03-01T16:47:31+02:00"
|
10
|
+
},
|
11
|
+
"spec": {},
|
12
|
+
"status": {}
|
13
|
+
}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
{
|
2
|
+
"kind": "NamespaceList",
|
3
|
+
"apiVersion": "v1beta3",
|
4
|
+
"metadata": {
|
5
|
+
"selfLink": "/api/v1beta3/namespaces",
|
6
|
+
"resourceVersion": "1707"
|
7
|
+
},
|
8
|
+
"items": [
|
9
|
+
{
|
10
|
+
"metadata": {
|
11
|
+
"name": "default",
|
12
|
+
"selfLink": "/api/v1beta3/namespaces/default",
|
13
|
+
"uid": "56c3eb7c-c009-11e4-a514-3c970e4a436a",
|
14
|
+
"resourceVersion": "4",
|
15
|
+
"creationTimestamp": "2015-03-01T13:51:47+02:00"
|
16
|
+
},
|
17
|
+
"spec": {},
|
18
|
+
"status": {}
|
19
|
+
},
|
20
|
+
{
|
21
|
+
"metadata": {
|
22
|
+
"name": "staging",
|
23
|
+
"selfLink": "/api/v1beta3/namespaces/staging",
|
24
|
+
"uid": "e388bc10-c021-11e4-a514-3c970e4a436a",
|
25
|
+
"resourceVersion": "1168",
|
26
|
+
"creationTimestamp": "2015-03-01T16:47:31+02:00"
|
27
|
+
},
|
28
|
+
"spec": {},
|
29
|
+
"status": {}
|
30
|
+
}
|
31
|
+
]
|
32
|
+
}
|
data/test/kubeclient_test.rb
CHANGED
@@ -85,18 +85,24 @@ class KubeClientTest < MiniTest::Test
|
|
85
85
|
.to_return(body: open_test_json_file('endpoint_list_b3.json'),
|
86
86
|
status: 200)
|
87
87
|
|
88
|
+
stub_request(:get, /\/namespaces/)
|
89
|
+
.to_return(body: open_test_json_file('namespace_list_b3.json'),
|
90
|
+
status: 200)
|
91
|
+
|
88
92
|
client = Kubeclient::Client.new 'http://localhost:8080/api/', 'v1beta1'
|
89
93
|
result = client.all_entities
|
90
|
-
assert_equal(
|
94
|
+
assert_equal(7, result.keys.size)
|
91
95
|
assert_instance_of(EntityList, result['node'])
|
92
96
|
assert_instance_of(EntityList, result['service'])
|
93
97
|
assert_instance_of(EntityList, result['replication_controller'])
|
94
98
|
assert_instance_of(EntityList, result['pod'])
|
95
99
|
assert_instance_of(EntityList, result['event'])
|
100
|
+
assert_instance_of(EntityList, result['namespace'])
|
96
101
|
assert_instance_of(Service, result['service'][0])
|
97
102
|
assert_instance_of(Node, result['node'][0])
|
98
103
|
assert_instance_of(Event, result['event'][0])
|
99
104
|
assert_instance_of(Endpoint, result['endpoint'][0])
|
105
|
+
assert_instance_of(Namespace, result['namespace'][0])
|
100
106
|
end
|
101
107
|
|
102
108
|
private
|
@@ -0,0 +1,34 @@
|
|
1
|
+
require 'minitest/autorun'
|
2
|
+
require 'webmock/minitest'
|
3
|
+
require 'kubeclient/namespace'
|
4
|
+
require 'json'
|
5
|
+
require './lib/kubeclient'
|
6
|
+
|
7
|
+
# Namespace entity tests
|
8
|
+
class NamespaceTest < MiniTest::Test
|
9
|
+
def test_get_namespace_v1beta3
|
10
|
+
stub_request(:get, /\/namespaces/)
|
11
|
+
.to_return(body: open_test_json_file('namespace_b3.json'),
|
12
|
+
status: 200)
|
13
|
+
|
14
|
+
client = Kubeclient::Client.new 'http://localhost:8080/api/', 'v1beta3'
|
15
|
+
namespace = client.get_namespace 'staging'
|
16
|
+
|
17
|
+
assert_instance_of(Namespace, namespace)
|
18
|
+
assert_equal('e388bc10-c021-11e4-a514-3c970e4a436a', namespace.metadata.uid)
|
19
|
+
assert_equal('staging', namespace.metadata.name)
|
20
|
+
assert_equal('1168', namespace.metadata.resourceVersion)
|
21
|
+
assert_equal('v1beta3', namespace.apiVersion)
|
22
|
+
end
|
23
|
+
|
24
|
+
def test_delete_namespace_v1beta3
|
25
|
+
our_namespace = Namespace.new
|
26
|
+
our_namespace.name = 'staging'
|
27
|
+
|
28
|
+
stub_request(:delete, /\/namespaces/)
|
29
|
+
.to_return(status: 200)
|
30
|
+
|
31
|
+
client = Kubeclient::Client.new 'http://localhost:8080/api/', 'v1beta3'
|
32
|
+
client.delete_namespace our_namespace.name
|
33
|
+
end
|
34
|
+
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: 0.1.
|
4
|
+
version: 0.1.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Alissa Bonas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-03-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -42,98 +42,98 @@ dependencies:
|
|
42
42
|
name: minitest
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - '>='
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - '>='
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: webmock
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - '>='
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - '>='
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: rubocop
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - '>='
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :development
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - '>='
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: rest-client
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - '>='
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - '>='
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: activesupport
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - '>='
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - '>='
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: json
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - '>='
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
122
|
+
- - '>='
|
123
123
|
- !ruby/object:Gem::Version
|
124
124
|
version: '0'
|
125
125
|
- !ruby/object:Gem::Dependency
|
126
126
|
name: recursive-open-struct
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- -
|
129
|
+
- - '>='
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- -
|
136
|
+
- - '>='
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
139
|
description: A client for Kubernetes REST api
|
@@ -156,6 +156,7 @@ files:
|
|
156
156
|
- lib/kubeclient/entity_list.rb
|
157
157
|
- lib/kubeclient/event.rb
|
158
158
|
- lib/kubeclient/kube_exception.rb
|
159
|
+
- lib/kubeclient/namespace.rb
|
159
160
|
- lib/kubeclient/node.rb
|
160
161
|
- lib/kubeclient/pod.rb
|
161
162
|
- lib/kubeclient/replication_controller.rb
|
@@ -170,6 +171,8 @@ files:
|
|
170
171
|
- test/json/get_all_pods_b1.json
|
171
172
|
- test/json/get_all_replication_b1.json
|
172
173
|
- test/json/get_all_services_b1.json
|
174
|
+
- test/json/namespace_b3.json
|
175
|
+
- test/json/namespace_list_b3.json
|
173
176
|
- test/json/node_b1.json
|
174
177
|
- test/json/node_b3.json
|
175
178
|
- test/json/pod_b1.json
|
@@ -181,6 +184,7 @@ files:
|
|
181
184
|
- test/json/service_exception_b1.json
|
182
185
|
- test/json/watch_stream_b3.json
|
183
186
|
- test/kubeclient_test.rb
|
187
|
+
- test/namespace_test.rb
|
184
188
|
- test/node_test.rb
|
185
189
|
- test/pod_test.rb
|
186
190
|
- test/replication_controller_test.rb
|
@@ -196,17 +200,17 @@ require_paths:
|
|
196
200
|
- lib
|
197
201
|
required_ruby_version: !ruby/object:Gem::Requirement
|
198
202
|
requirements:
|
199
|
-
- -
|
203
|
+
- - '>='
|
200
204
|
- !ruby/object:Gem::Version
|
201
205
|
version: 2.0.0
|
202
206
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
207
|
requirements:
|
204
|
-
- -
|
208
|
+
- - '>='
|
205
209
|
- !ruby/object:Gem::Version
|
206
210
|
version: '0'
|
207
211
|
requirements: []
|
208
212
|
rubyforge_project:
|
209
|
-
rubygems_version: 2.
|
213
|
+
rubygems_version: 2.4.5
|
210
214
|
signing_key:
|
211
215
|
specification_version: 4
|
212
216
|
summary: A client for Kubernetes REST api
|
@@ -218,6 +222,8 @@ test_files:
|
|
218
222
|
- test/json/get_all_pods_b1.json
|
219
223
|
- test/json/get_all_replication_b1.json
|
220
224
|
- test/json/get_all_services_b1.json
|
225
|
+
- test/json/namespace_b3.json
|
226
|
+
- test/json/namespace_list_b3.json
|
221
227
|
- test/json/node_b1.json
|
222
228
|
- test/json/node_b3.json
|
223
229
|
- test/json/pod_b1.json
|
@@ -229,6 +235,7 @@ test_files:
|
|
229
235
|
- test/json/service_exception_b1.json
|
230
236
|
- test/json/watch_stream_b3.json
|
231
237
|
- test/kubeclient_test.rb
|
238
|
+
- test/namespace_test.rb
|
232
239
|
- test/node_test.rb
|
233
240
|
- test/pod_test.rb
|
234
241
|
- test/replication_controller_test.rb
|