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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: b5e15417577d1810e7aa7471b6f6f713f3c461ce
4
- data.tar.gz: a9f881d9bc59b774f1cb57f5c66003b4a6d5080a
2
+ SHA256:
3
+ metadata.gz: e41fdd25707bd063607b40f12a7f5ce09030fea59d54c35934c9cae0392df1e5
4
+ data.tar.gz: 6fe3f509d0a9f0e47a1c42498e1aa329d18205c5d5b09d6dde15716a3e3d72f4
5
5
  SHA512:
6
- metadata.gz: 29076b2093df4f4cc795be596f592011f46c1f19739a68143ae901382665b320828927aa15743be487bac0df30765092211e09b71f8f9c16433de27b82cb2cba
7
- data.tar.gz: 1752d5e67ee699d0a799dac014b5997cd60b5309351213a73597428a709e62e1442a4e34fed13603a34984ef1e9596e7727c1113411e44c23c8167ca84a37cd8
6
+ metadata.gz: dc80198faad81e54d58e2f5c70db0baf05c5096a236b937b2d10883d91dbe3447674f64e64cf7ef7f92bb0dd14de1cf2be1407cd8c62a2cbfdd9598968a68eef
7
+ data.tar.gz: a4da4e0d39328b33d44c672851f4dbcf7fb970a1907c1fa7150b75a035f6a2ff40b651c3cff8365d4dc495d2ad5c2c49e52d6b7240c6b0820ca5a6e002a582ed
@@ -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: VuKEUIKjQtxQmhd/bnJTdSS/xAlOkqecAl6GBqjITHX3Gt21nWalhzP37BOItYzxuAtLTptX9UgYJ5QRW/hBD0Rkv91+3E7QOX/L4E65xECzwrzVc03pcftxL/xTi28AIgrR5ML/BNsjDJQrOH+Drj9qH8KmJOGMLMCIL+xBkf8hwUmNfSu+eBBHkHHXJ1vP+JgMSOvdNh+cqUbUARBXvGOtz3jSEHDXbvUfyxxxJ1EcepP0SYBdv+JiYzi0AdLko+ZuMY7Q7A8sP3mMjlZVNJASE40yAmla2PIUuLtogNq5GcMox1b2oYt8JnxpJGBuTCic0nst2Rzt0UTimmBNVBbZyuWIRZnbzhBmCgfmX+1b3SmXIC1iZ/BboZKDR+Pz9LeAzepOYXOQWdTK+RsiBmiUC/GyoDVM6w0M01bTPj/vaNWCIhS7elBtsnATKtGI5ySjVedv+hqOUox646Vn1VkyMa73YHTk2vwV4dZIr98+v5Rnqnu++r92S0WpJwCtKhwg3vwsbhAi9DOuP5QQvK6eL6qsbH9qF7oMXk/sAr/7jG+ALY9oTgbRVLjHddP/q4EP/vxHbF4KJgfXtqZ8ljpRi//N7MKJqQMba2aplAwt0CdntEV9CLoJ9HriPz6PrdVFMsY3qLovIQ8dTZuNdiktCJjPFBaYGwPG0pppWFY=
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'
@@ -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
@@ -1,5 +1,5 @@
1
1
  module K8s
2
2
  class Client
3
- VERSION = "0.1.0"
3
+ VERSION = "0.2.1"
4
4
  end
5
5
  end
@@ -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'
@@ -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'] = 'application/json'
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.0
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-01 00:00:00.000000000 Z
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.6.14
182
+ rubygems_version: 2.7.7
183
183
  signing_key:
184
184
  specification_version: 4
185
185
  summary: Kubernetes client library