k8s-client 0.1.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.travis.yml +3 -1
- data/bin/k8s-client +14 -0
- data/lib/k8s/client/version.rb +1 -1
- data/lib/k8s/resource_client.rb +20 -0
- data/lib/k8s/transport.rb +2 -2
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: e41fdd25707bd063607b40f12a7f5ce09030fea59d54c35934c9cae0392df1e5
|
4
|
+
data.tar.gz: 6fe3f509d0a9f0e47a1c42498e1aa329d18205c5d5b09d6dde15716a3e3d72f4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc80198faad81e54d58e2f5c70db0baf05c5096a236b937b2d10883d91dbe3447674f64e64cf7ef7f92bb0dd14de1cf2be1407cd8c62a2cbfdd9598968a68eef
|
7
|
+
data.tar.gz: a4da4e0d39328b33d44c672851f4dbcf7fb970a1907c1fa7150b75a035f6a2ff40b651c3cff8365d4dc495d2ad5c2c49e52d6b7240c6b0820ca5a6e002a582ed
|
data/.travis.yml
CHANGED
@@ -10,7 +10,9 @@ matrix:
|
|
10
10
|
before_install: gem install bundler -v 1.16.2
|
11
11
|
deploy:
|
12
12
|
provider: rubygems
|
13
|
+
gem: k8s-client
|
13
14
|
api_key:
|
14
|
-
secure:
|
15
|
+
secure: ArI9RehHbuJIZklO3FA0cGp4WOc2QYkO26BsKZDWLkTOpRo0GSQRt4WMeOmVpdYfR7yNRgyV8eaGnEYr6ZNS8ejjmwWUnRhBaoEzEC4e9RxaDPTVJDpFOPi38eAtUyAZ7bMeJzhgPev7Y7ofrymuVmsXq/48mJZtSHJckii0UYjaveiH8aGeXxCVFY1csexN36AYr3NCkCqQp9ICXAhQI+UXftVKoN/uXMJC2l8VgjRuxn61x68/XCAxoPr44kYY4PSDAF9eYX/2UTDx4Vu4g4CzCCEC8vYQ36peuFGiCt5lzAIZdu07Xotch6rpHpRRGAhiahNrZVc3oma2IWkPmAJgPWHjjXraq5gjB1O3avLNmmH3rZOPl6kv/FGmafrfu4IbNx78V+SLMWu8+m98xbBLDk/wphtfQuMHAF1huQS0lsKZ2G58OYd7SyJL9RibhOZXgSC4D5YU1uT1m1wIpTw1e7aNkHiSR+zmhmhhKXFW1lJhDsHYQ6prIpKFTkrxChRX4dOyF0ua/hDJP5PdniPEe2ANcao6giEhB5Sr/IdHgFoIiQ1dwuDW6UiNgkLyGAgLVlH61Ie3BBUf8faPs36bgrgwmG5s7/9fF8w892m+Ho+Xx0vSGpup8L64ew9xgrjnW4cLcFUesaVyG+t8uPequosf+wHd8fi9r7KF+PQ=
|
15
16
|
on:
|
16
17
|
tags: true
|
18
|
+
rvm: '2.4'
|
data/bin/k8s-client
CHANGED
@@ -33,6 +33,8 @@ Options = Struct.new(
|
|
33
33
|
:delete_stack,
|
34
34
|
:api,
|
35
35
|
:list_api_resources,
|
36
|
+
:patch_deployment,
|
37
|
+
:replicas,
|
36
38
|
)
|
37
39
|
|
38
40
|
options = Options.new()
|
@@ -143,6 +145,12 @@ parser = OptionParser.new do |parser|
|
|
143
145
|
parser.on('--list-api-resources') do
|
144
146
|
options.list_api_resources = options.api
|
145
147
|
end
|
148
|
+
parser.on('--patch-deployment=NAME') do |name|
|
149
|
+
options.patch_deployment = name
|
150
|
+
end
|
151
|
+
parser.on('--replicas=COUNT', Integer) do |count|
|
152
|
+
options.replicas = count
|
153
|
+
end
|
146
154
|
end
|
147
155
|
|
148
156
|
parser.parse!
|
@@ -299,3 +307,9 @@ elsif options.stack
|
|
299
307
|
prune: options.prune_stack,
|
300
308
|
)
|
301
309
|
end
|
310
|
+
|
311
|
+
if name = options.patch_deployment
|
312
|
+
client.api('apps/v1').resource('deployments', namespace: namespace).merge_patch(name, {
|
313
|
+
spec: { replicas: options.replicas },
|
314
|
+
})
|
315
|
+
end
|
data/lib/k8s/client/version.rb
CHANGED
data/lib/k8s/resource_client.rb
CHANGED
@@ -213,6 +213,26 @@ module K8s
|
|
213
213
|
)
|
214
214
|
end
|
215
215
|
|
216
|
+
# @return [Bool]
|
217
|
+
def patch?
|
218
|
+
@api_resource.verbs.include? 'patch'
|
219
|
+
end
|
220
|
+
|
221
|
+
# @param name [String]
|
222
|
+
# @param obj [Object] supporting to_json
|
223
|
+
# @param namespace [String]
|
224
|
+
# @param strategic_merge [Boolean] use kube Strategic Merge Patch instead of standard Merge Patch (arrays of objects are merged by name)
|
225
|
+
# @return [resource_class]
|
226
|
+
def merge_patch(name, obj, namespace: @namespace, strategic_merge: true)
|
227
|
+
@transport.request(
|
228
|
+
method: 'PATCH',
|
229
|
+
path: self.path(name, namespace: namespace),
|
230
|
+
content_type: strategic_merge ? 'application/strategic-merge-patch+json' : 'application/merge-patch+json',
|
231
|
+
request_object: obj,
|
232
|
+
response_class: @resource_class,
|
233
|
+
)
|
234
|
+
end
|
235
|
+
|
216
236
|
# @return [Bool]
|
217
237
|
def delete?
|
218
238
|
@api_resource.verbs.include? 'delete'
|
data/lib/k8s/transport.rb
CHANGED
@@ -102,7 +102,7 @@ module K8s
|
|
102
102
|
end
|
103
103
|
|
104
104
|
# @return [Hash]
|
105
|
-
def request_options(request_object: nil, **options)
|
105
|
+
def request_options(request_object: nil, content_type: 'application/json', **options)
|
106
106
|
options[:headers] ||= {}
|
107
107
|
|
108
108
|
if @auth_token
|
@@ -110,7 +110,7 @@ module K8s
|
|
110
110
|
end
|
111
111
|
|
112
112
|
if request_object
|
113
|
-
options[:headers]['Content-Type'] =
|
113
|
+
options[:headers]['Content-Type'] = content_type
|
114
114
|
options[:body] = request_object.to_json
|
115
115
|
end
|
116
116
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: k8s-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kontena, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: excon
|
@@ -179,7 +179,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
179
179
|
version: '0'
|
180
180
|
requirements: []
|
181
181
|
rubyforge_project:
|
182
|
-
rubygems_version: 2.
|
182
|
+
rubygems_version: 2.7.7
|
183
183
|
signing_key:
|
184
184
|
specification_version: 4
|
185
185
|
summary: Kubernetes client library
|