Kopf

Latest version: v1.37.2

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

Scan your dependencies

Page 8 of 17

0.28.2rc1

Bugfixes:

* Fixed superseding of one cause by another (deletion-during-creation/-update/-resume, update-during-resume, etc). 607 606

0.28.1

Bugfixes:

* No more false "patching failed with inconsistencies" warning for CRDs with status as a subresource. 588

Internal:

* Back-ported GitHub Actions for CI tests. 592, originally 582

0.28

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
* Timers were ticking forever after the resource was deleted (if there were no finalizers). 548
* Persisted states of executed and then filtered-out handlers were not purged. 557

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
* Log when the patched object unexpectedly disappeared (e.g. was deleted). 559
* Log K8s API error explanations from K8s API itself, not from the HTTP client library. 558
* 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
* Python 3.9 support. 561

0.28rc6

Experience improvements:

* Log when the patched object disappears (e.g. is deleted). Omit inconsistency warnings for this. 559

0.28rc5

Experience improvements:

* K8s API errors contain the explanations from K8s API itself, not from an HTTP client library. 558

0.28rc4

Bugfixes:

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

Page 8 of 17

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.