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.
- checksums.yaml +4 -4
- data/lib/kubernetes-operator.rb +13 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 83963b3c22a901a21e928ef4d683280d133248d07f1ed7d1cf02d83b916561f9
|
4
|
+
data.tar.gz: 7d2d04740dcdb702005726cef792aa4092da283c9b03f76cf87b80d3375b0ad0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5146353f6e711946675360d29ff113b83e5e275899681b2aab5c2e7495f306eb6eef5b5eca9e06f341765919d70d4752056e7a05269c11da328b8d2dbea0515c
|
7
|
+
data.tar.gz: fbda282a918ccb75283b6500890c95c1cfa64ae703041d94a656d32488e5f1757e486f2602a92a8cbd937d2c48fc7cbb720c8b54f691820b796c62b9024b8638
|
data/lib/kubernetes-operator.rb
CHANGED
@@ -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',@
|
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',@
|
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
|
-
@
|
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',@
|
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',@
|
290
|
+
patched = @k8sclient.patch_entity(@crdPlural,notice[:object][:metadata][:name], {metadata: {finalizers: nil}},'merge-patch',@objOrgNamespace)
|
286
291
|
end
|
287
292
|
else
|
288
|
-
@
|
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.
|
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-
|
11
|
+
date: 2020-04-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: kubeclient
|