kubernetes-operator 0.1.2 → 0.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/kubernetes-operator.rb +13 -6
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3358ac68090f121f15b4bfa168326d9cfd33e4d530f60ae2e3242ba301bae1a4
4
- data.tar.gz: 2e62d68f997c3053be146015e03871107abbb623a702686dd61548b05f57820e
3
+ metadata.gz: 83963b3c22a901a21e928ef4d683280d133248d07f1ed7d1cf02d83b916561f9
4
+ data.tar.gz: 7d2d04740dcdb702005726cef792aa4092da283c9b03f76cf87b80d3375b0ad0
5
5
  SHA512:
6
- metadata.gz: a03d0fe648c787b302b80ce1c679a8a205cf8932a8a25e36337da2f42f201960c77447cfbcb1944adea10a5552ef96f45e82d11b14d10e6d02c85c83fd0f052e
7
- data.tar.gz: 63e672371e83231a590b5399fbe887e71bb9ee2782e8cf57897a7532de8ad5d11fd797c7b49eee916c969f639349bd09d3f585d1abcae55b2901cf91ab504f43
6
+ metadata.gz: 5146353f6e711946675360d29ff113b83e5e275899681b2aab5c2e7495f306eb6eef5b5eca9e06f341765919d70d4752056e7a05269c11da328b8d2dbea0515c
7
+ data.tar.gz: fbda282a918ccb75283b6500890c95c1cfa64ae703041d94a656d32488e5f1757e486f2602a92a8cbd937d2c48fc7cbb720c8b54f691820b796c62b9024b8638
@@ -117,6 +117,7 @@ class KubernetesOperator
117
117
  # @param options [Hash] Additional options
118
118
  # @option options [Hash] sleepTimer Time to wait for retry if the watch event stops
119
119
  # @option options [Hash] namespace Watch only an namespace, default watch all namespaces
120
+ # @option options [Hash] showSkipEvents Log an message on each event from kubernetes watch api
120
121
  # @option options [Hash] persistence_location Location for the yaml store, default is /tmp/persistence
121
122
  def initialize(crdGroup, crdVersion, crdPlural, options = {} )
122
123
  # parameter
@@ -128,6 +129,7 @@ class KubernetesOperator
128
129
  @options = options
129
130
  @options[:sleepTimer] ||= 10
130
131
  @options[:namespace] ||= nil
132
+ @options[:showSkipEvents] ||= false
131
133
 
132
134
  # create persistence
133
135
  @options[:persistence_location] ||= "/tmp/persistence"
@@ -234,6 +236,7 @@ class KubernetesOperator
234
236
  end
235
237
  watcher.each do |notice|
236
238
  begin
239
+ @objOrgNamespace = notice[:object][:metadata][:namespace]
237
240
  isCached = @store.transaction{@store[notice[:object][:metadata][:uid]]}
238
241
  case notice[:type]
239
242
  # new cr was added
@@ -245,18 +248,20 @@ class KubernetesOperator
245
248
  resp = @addMethod.call(notice[:object])
246
249
  # update status
247
250
  if resp.is_a?(Hash) && resp[:status]
248
- @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name]+"/status", {status: resp[:status]},'merge-patch',@options[:namespace])
251
+ @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name]+"/status", {status: resp[:status]},'merge-patch',@objOrgNamespace)
249
252
  end
250
253
  # add finalizer
251
254
  @logger.info("add finalizer to #{notice[:object][:metadata][:name]} (#{notice[:object][:metadata][:uid]})")
252
- patched = @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name], {metadata: {finalizers: ["#{@crdPlural}.#{@crdVersion}.#{@crdGroup}"]}},'merge-patch',@options[:namespace])
255
+ patched = @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name], {metadata: {finalizers: ["#{@crdPlural}.#{@crdVersion}.#{@crdGroup}"]}},'merge-patch',@objOrgNamespace)
253
256
  # save version
254
257
  @store.transaction do
255
258
  @store[patched[:metadata][:uid]] = patched[:metadata][:resourceVersion]
256
259
  @store.commit
257
260
  end
258
261
  else
259
- @logger.info("skip add action for #{notice[:object][:metadata][:name]} (#{notice[:object][:metadata][:uid]}), found version in cache")
262
+ if @options[:showSkipEvents]
263
+ @logger.info("skip add action for #{notice[:object][:metadata][:name]} (#{notice[:object][:metadata][:uid]}), found version in cache")
264
+ end
260
265
  end
261
266
  # cr was change or deleted (if finalizer is set, it an modified call, not an delete)
262
267
  when "MODIFIED"
@@ -269,7 +274,7 @@ class KubernetesOperator
269
274
  resp = @updateMethod.call(notice[:object])
270
275
  # update status
271
276
  if resp[:status]
272
- @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name]+"/status", {status: resp[:status]},'merge-patch',@options[:namespace])
277
+ @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name]+"/status", {status: resp[:status]},'merge-patch',@objOrgNamespace)
273
278
  end
274
279
  # save version
275
280
  @store.transaction do
@@ -282,10 +287,12 @@ class KubernetesOperator
282
287
  @deleteMethod.call(notice[:object])
283
288
  # remove finalizer
284
289
  @logger.info("remove finalizer to #{notice[:object][:metadata][:name]} (#{notice[:object][:metadata][:uid]})")
285
- patched = @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name], {metadata: {finalizers: nil}},'merge-patch',@options[:namespace])
290
+ patched = @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name], {metadata: {finalizers: nil}},'merge-patch',@objOrgNamespace)
286
291
  end
287
292
  else
288
- @logger.info("skip update action for #{notice[:object][:metadata][:name]} (#{notice[:object][:metadata][:uid]}), found version in cache")
293
+ if @options[:showSkipEvents]
294
+ @logger.info("skip update action for #{notice[:object][:metadata][:name]} (#{notice[:object][:metadata][:uid]}), found version in cache")
295
+ end
289
296
  end
290
297
  when "DELETED"
291
298
  # clear events, if delete was successfuly
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kubernetes-operator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Kuntzsch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-31 00:00:00.000000000 Z
11
+ date: 2020-04-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kubeclient