github nolar/kopf 0.28rc2

latest releases: 1.37.2, 1.37.1, 1.37.0...
pre-release4 years ago

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 NoneNone 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

Don't miss a new kopf release

NewReleases is sending notifications on new releases.