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 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