k8s-client 0.6.3 → 0.6.4

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
2
  SHA256:
3
- metadata.gz: 9d7cce8f8084f9e3cd235ac55f5df20258050e7187567aa20d1fec847d4a5cf2
4
- data.tar.gz: 5a7ea616dbf3dbe85fd9482686f97ff2b06d878ad2e86c9dce5956692bed42e9
3
+ metadata.gz: eba459f35445e6a9712b9c13f4aae1a1e64ee54671c2e79312961814e128a8a0
4
+ data.tar.gz: 645af48b165e0d3993f76dee2f4e0cbf81a9df2175ba6b7faabecf88eb22fc11
5
5
  SHA512:
6
- metadata.gz: cfed2d41bdd6ce8f36da105f3277327afb2344ad480fdf8e5361c1c0df5826168b2f16546a9db9d76f22460dab09b7a724610e55e72a6c4860569d9938ef28c8
7
- data.tar.gz: b758e50f969330760d4846c9c42ad899f6d540fd0a475ef78562b86b071d17f3dc85068ffb5e83597957b324861a05ace3622ec46b922c3ab91b8d3cd5e20866
6
+ metadata.gz: 198809fd3961246fe35ac9f8b31bf986573978e1aa60281b38ba53e610f1620c8cefee834f8e12a6a782ea30c0a2ba61d9b660f10d7f3dd0ca28ae6d81f714f6
7
+ data.tar.gz: 244edac8e01d0896b3b6770f9e414393418aaeb3bc3152154c505f6d5288250b46aef9f0323ece7e74c79738ebb05546f2010bbc4ebfa467cee2847499e9f382
@@ -36,7 +36,8 @@ Options = Struct.new(
36
36
  :api,
37
37
  :list_api_resources,
38
38
  :patch_deployment,
39
- :replicas
39
+ :replicas,
40
+ :version
40
41
  )
41
42
 
42
43
  options = Options.new
@@ -63,6 +64,9 @@ opt_parser = OptionParser.new do |parser|
63
64
  K8s::Logging.quiet!
64
65
  K8s::Transport.quiet!
65
66
  end
67
+ parser.on('--version') do
68
+ options.version = true
69
+ end
66
70
  parser.on('--in-cluster-config') do
67
71
  options.in_cluster_config = true
68
72
  end
@@ -174,7 +178,11 @@ else
174
178
  ssl_verify_peer: !options.insecure_skip_tls_verify)
175
179
  end
176
180
 
177
- logger.info "Kube server version: #{client.version.gitVersion}"
181
+ if options.version
182
+ logger.info client.version
183
+ else
184
+ logger.info "Kube server version: #{client.version.gitVersion}"
185
+ end
178
186
 
179
187
  if options.prefetch_resources
180
188
  client.apis(prefetch_resources: true)
@@ -60,10 +60,7 @@ module K8s
60
60
  # @raise [K8s::Error]
61
61
  # @return [K8s::API::Version]
62
62
  def version
63
- @transport.get(
64
- '/version',
65
- response_class: K8s::API::Version
66
- )
63
+ @version ||= @transport.version
67
64
  end
68
65
 
69
66
  # @param api_version [String] "group/version" or "version" (core)
@@ -3,6 +3,6 @@
3
3
  module K8s
4
4
  class Client
5
5
  # Updated on releases using semver.
6
- VERSION = "0.6.3"
6
+ VERSION = "0.6.4"
7
7
  end
8
8
  end
@@ -22,6 +22,9 @@ module K8s
22
22
  'Accept' => 'application/json'
23
23
  }.freeze
24
24
 
25
+ # Min version of Kube API for which delete options need to be sent as request body
26
+ DELETE_OPTS_BODY_VERSION_MIN = Gem::Version.new('1.11')
27
+
25
28
  # Construct transport from kubeconfig
26
29
  #
27
30
  # @param config [K8s::Config]
@@ -217,6 +220,10 @@ module K8s
217
220
  # @param response_class [Class] decode response body using #from_json
218
221
  # @param options [Hash] @see Excon#request
219
222
  def request(response_class: nil, **options)
223
+ if options[:method] == 'DELETE' && need_delete_body?
224
+ options[:request_object] = options.delete(:query)
225
+ end
226
+
220
227
  excon_options = request_options(**options)
221
228
 
222
229
  start = Time.now
@@ -282,6 +289,19 @@ module K8s
282
289
  objects
283
290
  end
284
291
 
292
+ # @return [K8s::API::Version]
293
+ def version
294
+ @version ||= get(
295
+ '/version',
296
+ response_class: K8s::API::Version
297
+ )
298
+ end
299
+
300
+ # @return [true, false] true if delete options should be sent as bode of the DELETE request
301
+ def need_delete_body?
302
+ @need_delete_body ||= Gem::Version.new(version.gitVersion.match(/v*(.*)/)[1]) < DELETE_OPTS_BODY_VERSION_MIN
303
+ end
304
+
285
305
  # @param path [Array<String>] @see #path
286
306
  # @param options [Hash] @see #request
287
307
  def get(*path, **options)
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.6.3
4
+ version: 0.6.4
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-11-27 00:00:00.000000000 Z
11
+ date: 2018-12-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: excon