Kopf

Latest version: v1.37.2

Safety actively analyzes 626325 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 12 of 17

0.23

> _Originally released on 2019-11-20 10:15:07+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.23))._

**TL;DR:** Massive refactoring, renames, code moves. Generally, should be backward-compatible.

RISKY CHANGES (can be BREAKING, should be not):

* Authentication and API talking are fully reworked: `pykube-ng` and `kubernetes` clients are now piggybacked by default to extract the endpoints and credentials, but are not used for the API communication. This can break API connectivity in some cases. 226 227
* In-memory structures were introduced to carry the technical information/objects/flags for individual resources. This can lead to **increased memory usage in huge clusters** with _thousands_ of monitored resources. 230
* `kopf.on.resume()` handlers were fixed, and now execute when previously they were not executed by mistake, but this could be taken as an expected behaviour. This can lead to massive **patches of all resumable objects on every operator startup** (if there are 2+ handlers), which can be a problem in huge clusters. 230 236
* Massive internal renames and code moves; not exposed publicly, unless hacks or monkey-patching were used. 209 210 211

New features:

* `kopf.on.startup()` handlers for operator initialisation. 225
* `kopf.on.cleanup()` handlers for operator shutdown. 225
* `kopf.on.login()` custom authentication handlers. 226
* `kopf.on.probe()` handlers for liveness metrics. 226
* Liveness probes with `kopf run --liveness`. 228
* `memo` kwargs to keep runtime-only operator-lifetime-limited arbitrary values. 234
* `retries=` limiter for handlers in addition to `timeout=`. 222
* `errors=TEMPORARY`, `errors=PERMANENT`, `errors=IGNORED` modes for handlers. 222
* Explicit owner is not needed in `kopf.adopt()` and hierarchy methods, current object is used by default. 203

Bugfixes:

* `kopf.on.resume()` handlers fixed:
* There can be more than one resuming handler. 230
* Are executed if they go after the on-create/on-update handlers. 230
* Are not repeated every few minutes for no reason, guaranteed to be called once. 229 230
* Can be retried in case of temporary or arbitrary errors. 230
* Can have sub-handlers. 230
* Are not invoked if the object is being deleted. 233
* Can be explicitly marked as deletion-safe, and hence be invoked on resuming during deletion. 233
* `spec`, `status`, `metadata` fields are not added to the `body` when originally absent. 198
* OS signal handlers are ignored on Windows (not supported by asyncio). 220

Internal changes:

* Fully type-annotated in the code (not in the tests). 195 196 197 200 201
* Fully asynchronous internally (asyncio/aiohttp); synchronous pykube-ng client is removed. 217 227
* Handler outcomes and persistent state management separated from each other. 221
* E2E tests are now isolated from each other, preventing false-positives. 205
* The latest k8s & minikube versions are used in e2e tests. 193
* No logging of empty meaningless diffs in on-resume and other handlers. 236
* No patching of the objects if there is no need to patch (and no logging). 236
* No purging of the handler progress if there is only one handler (and no logging). 236
* `cause.event` is renamed to `cause.reason` to avoid terminology conflicts. 201
* `kex` is added as an alias for `KopfExample` CRD for demos/docs. 235

0.23rc5

> _Originally released on 2019-11-20 01:11:43+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.23rc5))._

Bugfixes:

* Raw data for CA, client certificates and private keys are accepted. 244
* `Authorization: Bearer` is not injected by default, breaking username+password auth. 243

0.23rc4

> _Originally released on 2019-11-15 11:42:02+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.23rc4))._

Internal changes:

* Avoid logging of empty meaningless diffs in on-resume handlers. 236
* Avoid patching the objects if there is no need to patch (and skip logging). 236
* Avoid purging the handler progress if there is only one handler (and skip logging). 236
* Add `kex` as an alias for `KopfExample` CRD for demos/docs. 235

0.23rc3

> _Originally released on 2019-11-14 13:47:58+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.23rc3))._

New features:

* `memo` kwargs to keep the runtime-only operator-lifetime-limited arbitrary values. 234

0.23rc2

> _Originally released on 2019-11-14 11:10:09+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.23rc2))._

Improvements:

* `kopf.on.resume()` handlers are not invoked if the object is being deleted. 233
* `kopf.on.resume()` can be explicitly marked as a deletion-safe handler. 233

0.23rc1

> _Originally released on 2019-11-13 14:07:04+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.23rc1))._

**TL;DR:** Massive refactoring, renames, code moves. Generally, should be backward-compatible.

RISKY CHANGES (can be BREAKING, should be not):

* Authentication and API talking are fully reworked: `pykube-ng` and `kubernetes` clients are now piggybacked by default to extract the endpoints and credentials, but are not used for the API communication. This can break API connectivity in some cases. 226 227
* In-memory containers introduced to carry the technical information/objects/flags for individual resources. This can lead to increased memory usage in huge clusters with _thousands_ of monitored resources. 230
* `kopf.on.resume()` handlers were fixed, and can now execute when previously they were not executed by mistake, but this could be taken as an expected behaviour. This can lead to massive patches of all objects on every operator startup. 230
* Massive internal renames and code moves; not exposed publicly, unless hacks or monkey-patching were used. 209 210 211
* `cause.event` is renamed to `cause.reason` to avoid terminology conflicts. 201

New features:

* `kopf.on.startup()` handlers for operator initialisation. 225
* `kopf.on.cleanup()` handlers for operator shutdown. 225
* `kopf.on.login()` custom authentication handlers. 226
* `kopf.on.probe()` handlers for liveness metrics. 226
* Pod's liveness probes with `kopf run --liveness`. 228
* Explicit owner is not needed in `kopf.adopt()` and hierarchy methods, current object is used by default. 203
* `retries=` limiter for handlers in addition to `timeout=`. 222
* `errors=TEMPORARY`, `errors=PERMANENT`, `errors=IGNORED` modes for handlers. 222

Bugfixes:

* `kopf.on.resume()` handlers are not repeated every few minutes for no reason. 229 230
* `kopf.on.resume()` are executed if they go after the on-create/on-update handlers. 230
* `kopf.on.resume()` can be retried in case of temporary or arbitrary errors. 230
* `kopf.on.resume()` can have sub-handlers. 230
* There can be 2+ of the`kopf.on.resume()` handlers. 230
* `spec`, `status`, `metadata` fields are not added to the body when absent. 198
* Ignore asyncio signal handlers on Windows. 220


Internal changes:

* Fully type-annotated in the code (not in the tests). 195 196 197 200 201
* Fully asynchronous internally (asyncio/aiohttp); synchronous pykube-ng client is removed. 217 227
* Handler outcomes and persistent state management separated from each other. 221
* E2E tests are now isolated from each other, preventing false-positives. 205
* The latest k8s & minikube versions are used in e2e tests. 193

Page 12 of 17

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.