kubernetes-operator 0.1.2 → 0.1.3

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