k8s-client 0.1.0 → 0.2.1
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 +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
|