Kopf

Latest version: v1.37.3

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

Scan your dependencies

Page 9 of 18

0.28rc4

Bugfixes:

* Persisted states of executed and then filtered-out handlers were not purged. 557

0.28rc3

Bugfixes:

* Timers were ticking forever after the resource was deleted (if there were no finalizers). 548

0.28rc2

General topic: stability, resilience, recoverability, better logging and error handling.

New features:

* JSON logging with `--log-format=json`. 544
* Plain-text logging `--log-format=plain`. 544

Bugfixes:

* On-field handlers were triggered for non-existent fields with `None`→`None` change. 523
* Sub-handlers' state was not purged, preventing their execution in the future. 517

Resilience improvements:

* Annotations from other Kopf-based operators are fully ignored to avoid ping-pong effects. 539 538
* The operator will force-stop itself by SIGKILL after 10 minutes of attempts to stop gracefully. 543
* Crash the whole operator on unrecoverable errors in watchers/workers. 509
* Throttle individual resource processing on unexpected errors. 510
* Extra exceptions are intercepted and ignored for k8s-event posting. 507
* Treat client timeouts during watches similar to other API errors. 506
* Handle all connection errors from the initial streaming request. 512

Experience improvements:

* Annotations restrictions on key length are reworked to allow longer names (v2/v1 keys). 529
* Annotations values are now compacted (no spaces) for the better visual outlook. 516
* Log/warn when the resulting patched object does not match the intended patch. 527
* Filtered-out resources do not create phantom logs & do not get annotated anymore. 545
* Cluster-scoped objects are logged by their name, without "None" as the namespace. 544
* Better phrasing for some log messages to avoid confusion. 540
* Documentation fixes. 530

Internal changes:

* The first release since the fork. 502 500 505 546
* CI feedback is sped up from ≈40-50 mins to ≈5 mins per push. 536 537
* K3d/K3s is used for CI functional/integration testing; Minikube is for nightly tests. 536 547
* K8s versions are updated for CI builds. 501
* Imports are sorted with `isort`. 525 531
* Added tests for operators' peering. 519
* Added tests for logging & loggers. 544
* Get rid of mocks for causes & registries, use normal classes. 521
* Time-based tests are stabilised (though not fully fixed). 534 528 520 522
* Asyncio tasks are now named in Python 3.8+, which makes the debugging easier. 542

0.27.1

Bugfixes:

* Support Python 3.9 with Kopf's 0.27 codebase and features. 562

0.27

> _Originally released on 2020-05-11 16:37:41+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.27))._

**WARNING:** The changes are backward-compatible (in theory). But the changes are also massive, so things can break unexpectedly (in practice). Test this upgrade carefully.

New features:

* `kopf.daemon` for background resource-accompanying tasks/threads. 330 342 360
* `kopf.timer` for regular and/or delayed activities & checks. 330 342 360
* `kopf.PRESENT` for labels/annotations filters (instead of misleading `None`). 327
* `kopf.ABSENT` for labels/annotations filters. 327
* Arbitrary callbacks for labels/annotations filters. 328
* `kopf.all_()`, `kopf.any_()`, `kopf.not_()`, `kopf.none_()` helpers for callbacks aggregation. 345
* A proper official documented way to configure operators; plus docs. 336 337 331
* Identities of operators, allowing multiple non-colliding operators for the same resources. 331 344
* Configurable client-side timeouts for watch requests. 322 336
* Configurable storages for handling state & diff-bases. 331 346 353

Improvements:

* Internal instant functions (lifecycles, when-filters) do not use thread pools anymore. 326
* Bodies & patches now have magical properties for metadata, spec, status, with "live view" into data. 327
* Labels and annotations are passed as additional kwargs (similar to body/spec/meta/status). 327
* All user-facing types and classes are published as framework's public interface (via top-level package). 341
* Switch `KopfExample` & `KopfPeering` from v1beta1 to v1 CRD API; keep v1beta1 nearby. 364
* Documentation is restructured for separate pages for all aspects of handling (kwargs, filters, etc). 325
* Explain the "structural schemas" of K8s 1.16+, and v1-vs-v1beta1 CRD differences. 364

Fixes:

* Threads from the sync handlers executors are not leaked (not left orphaned) at exit. 326
* Handlers' state is now persisted in annotations, not in status: for custom & built-in resources. This solves the issues with built-ins not handled properly in K8s 1.16+. 331
* Fix the on-field handler not being invoked when the diff is too generic (relative to the field). 340
* Provoke after-sleep handling cycles even on resources with no arbitrary field preservation. 343
* Fix premature finalizer removal with 2+ deletion handlers. 361
* Avoid no-effect patching and potentially delaying handling cycles. 362

Internal changes:

* Coveralls is made optional. 363
* Compatibility with Kubernetes 1.18 in CI/CD. 335
* `pytest` & `pytest-asyncio` are pinned temporarily until fixed on their side. 352

0.27rc6

> _Originally released on 2020-05-11 16:37:41+00:00 ([link](https://github.com/zalando-incubator/kopf/releases/tag/0.27rc6))._

Documentation:

* Explain the "structural schemas" of K8s 1.16+, and v1-vs-v1beta1 CRD differences. 364
* Switch `KopfExample` & `KopfPeering` from v1beta1 to v1 CRD API; keep v1beta1 nearby. 364

Fixes:

* Better detection of instantly exiting daemons/timers. 360
* Fix premature finalizer removal with 2+ deletion handlers. 361
* Avoid no-effect patching and potentially delaying handling cycles. 362

Internal changes:

* Coveralls is made optional. 363

Page 9 of 18

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.