Releases: nolar/kopf
Releases · nolar/kopf
0.25
0.25rc1
0.24
Originally released on 2019-12-19 13:44:56+00:00 (link).
Improvements:
- Process the changes happened during the freeze mode once unfrozen. #256 #257
- CRD's status field references fixed to match the examples. #262
cooldown
is renamed tobackoff
to match the usual terminology. #266
Bugfixes:
- "Line is too long" for objects longer than 128 KB in JSON (e.g. encrypted secrets). #276
Internal changes:
0.24rc1
Originally released on 2019-12-19 13:44:56+00:00 (link).
Improvements:
- Process the changes happened during the freeze mode once unfrozen. #256 #257
- CRD's status field references fixed to match the examples. #262
cooldown
is renamed tobackoff
to match the usual terminology. #266
Bugfixes:
- "Line is too long" for objects longer than 128 KB in JSON (e.g. encrypted secrets). #276
Internal changes:
0.23.2
0.23.1
0.23
Originally released on 2019-11-20 10:15:07+00:00 (link).
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
andkubernetes
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. #234retries=
limiter for handlers in addition totimeout=
. #222errors=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 thebody
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 tocause.reason
to avoid terminology conflicts. #201kex
is added as an alias forKopfExample
CRD for demos/docs. #235
0.23rc5
0.23rc4
Originally released on 2019-11-15 11:42:02+00:00 (link).
Internal changes: