kubernetes-operator 0.1.2 → 0.1.4

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 +14 -7
  3. metadata +6 -6
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 3358ac68090f121f15b4bfa168326d9cfd33e4d530f60ae2e3242ba301bae1a4
4
- data.tar.gz: 2e62d68f997c3053be146015e03871107abbb623a702686dd61548b05f57820e
3
+ metadata.gz: e7350d464cdc46279d21c63ce9a2a75910f96263f7a99c76dcfd4169d4564e27
4
+ data.tar.gz: 256af9750804a911f0c508c798f1ec4a9cfd73bb830b1a3cf7a970f98dff1ce9
5
5
  SHA512:
6
- metadata.gz: a03d0fe648c787b302b80ce1c679a8a205cf8932a8a25e36337da2f42f201960c77447cfbcb1944adea10a5552ef96f45e82d11b14d10e6d02c85c83fd0f052e
7
- data.tar.gz: 63e672371e83231a590b5399fbe887e71bb9ee2782e8cf57897a7532de8ad5d11fd797c7b49eee916c969f639349bd09d3f585d1abcae55b2901cf91ab504f43
6
+ metadata.gz: d4d7dff6dd41200ac97dea9aca4229bebdd76dc3d25b127370aba33021f62abb3fa8f14cc2ae97794dc3ab73eac806faf7e207e5df5ac036908ef9187c47e95f
7
+ data.tar.gz: 5f8d81f10d17c8bf1bcaac4dfef27afd643a8dd6685b9d6171225bffdf6002988bcbd4e7e6340c8cd61072230d9d29b08251c7b9104b0c0e9eeab7464f53f0ba
@@ -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,10 +129,11 @@ 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"
134
- Dir.mkdir(@options[:persistence_location]) unless File.exists?(@options[:persistence_location])
136
+ Dir.mkdir(@options[:persistence_location]) unless File.exist?(@options[:persistence_location])
135
137
  @store = YAML::Store.new("#{@options[:persistence_location]}/#{@crdGroup}_#{@crdVersion}_#{@crdPlural}.yaml")
136
138
 
137
139
  # logging
@@ -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.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tobias Kuntzsch
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-03-31 00:00:00.000000000 Z
11
+ date: 2024-06-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: kubeclient
@@ -63,7 +63,7 @@ files:
63
63
  homepage: https://gitlab.com/tobiaskuntzsch/kubernetes-operator
64
64
  licenses: []
65
65
  metadata: {}
66
- post_install_message:
66
+ post_install_message:
67
67
  rdoc_options: []
68
68
  require_paths:
69
69
  - lib
@@ -78,8 +78,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
78
78
  - !ruby/object:Gem::Version
79
79
  version: '0'
80
80
  requirements: []
81
- rubygems_version: 3.0.3
82
- signing_key:
81
+ rubygems_version: 3.3.27
82
+ signing_key:
83
83
  specification_version: 4
84
84
  summary: lib
85
85
  test_files: []