A Python framework to write Kubernetes operators in just few lines of code.
New features:
when=
option. #258 #288Bugfixes:
Internal improvements:
Improvements:
cooldown
is renamed to backoff
to match the usual terminology. #266Bugfixes:
Internal changes:
Improvements:
cooldown
is renamed to backoff
to match the usual terminology. #266Bugfixes:
Internal changes:
Bugfixes:
Bugfixes:
TL;DR: Massive refactoring, renames, code moves. Generally, should be backward-compatible.
RISKY CHANGES (can be BREAKING, should be not):
pykube-ng
and kubernetes
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@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 #236New 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. #226kopf run --liveness
. #228memo
kwargs to keep runtime-only operator-lifetime-limited arbitrary values. #234retries=
limiter for handlers in addition to timeout=
. #222errors=TEMPORARY
, errors=PERMANENT
, errors=IGNORED
modes for handlers. #222kopf.adopt()
and hierarchy methods, current object is used by default. #203Bugfixes:
@kopf.on.resume()
handlers fixed:
spec
, status
, metadata
fields are not added to the body
when originally absent. #198Internal changes:
cause.event
is renamed to cause.reason
to avoid terminology conflicts. #201kex
is added as an alias for KopfExample
CRD for demos/docs. #235Bugfixes:
Authorization: Bearer
is not injected by default, breaking username+password auth. #243Internal changes:
kex
as an alias for KopfExample
CRD for demos/docs. #235New features:
memo
kwargs to keep the runtime-only operator-lifetime-limited arbitrary values. #234Improvements:
@kopf.on.resume()
handlers are not invoked if the object is being deleted. #233@kopf.on.resume()
can be explicitly marked as a deletion-safe handler. #233