This repository has been archived by the owner on Sep 14, 2020. It is now read-only.
0.27rc1
Pre-release
Pre-release
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@kopf.timer
for regular and/or delayed activities & checks. #330kopf.PRESENT
for labels/annotations filters (instead of misleadingNone
). #327kopf.ABSENT
for labels/annotations filters. #327- Arbitrary callbacks for labels/annotations filters. #328
- A proper official documented way to configure operators; plus docs. #336 #337
- Operators can be configured to use their own names for persistence, allowing multiple non-colliding operators for the same resources. #331
Improvements:
- Internals instant functions (lifecycles, when-filters) do not use thread pools anymore. #326
- Documentation is restructured for separate pages for all aspects of handling (kwargs, filters, etc). #325
- 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
- Configurable client-side timeouts for watch requests. #322 #336
- Configurable storages for handling state & diff-bases. #331
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
Internal changes:
- Compatibility with Kubernetes 1.18 in CI/CD. #335