Releases: nolar/kopf
0.21rc1
Originally released on 2019-08-07 17:45:34+00:00 (link).
New features:
- Expose the functions to make Kopf embeddable into other apps. #156
Improvements:
- Terminate the operator better, with graceful period for clean shutdown. #156
- K8s-events for cluster-scoped objects are posted to the current namespace, not "default". #165
- Kopf's handler errors renamed to
kopf.PermanentError/kopf.TemporaryError
. #159 - Kopf's permanent/temporary errors do not dump strack-traces anymore. #159
Internal changes:
0.20
0.19
Originally released on 2019-07-16 10:09:39+00:00 (link).
New features:
- Built-in resources (pods, services, namespaces) are now supported. #110
- Per-object messages logged via
logger
kwarg (INFO+ level) are sent as Kubernetes events implicitly. #128 #148
Improvements:
- Almost proper operator termination on SIGINT/SIGTERM. #147 #151
- Note: blocking socket reads are not yet fixed and can freeze on exit.
Internal changes:
0.19rc2
0.19rc1
0.18
Originally released on 2019-07-08 12:42:48+00:00 (link).
Improvements:
- Finalizer is not added if there are no deletion handlers. #118
- Deletion handlers can be optional to prevent adding finalizer. #118
- Script's dir is added to import paths to mimic Python's behaviour. #93 #133
.status
is ignored in the last-handled state checks (except for fields used in field-handlers). #131.metadata
is ignored in the last-handled state checks (except for labels & annotations). #131- Operator freezes if the same-priority operator appears (previously, only warned). #114
Bugfixes:
- The peering self-record was not properly removed on exit. #114
- Restrict to
kubernetes<10.0.0
to keep Kopf runnable at all. #134
Internal changes:
- Examples can now have their own dedicated tests. #126
0.17.post1
Originally released on 2019-07-04 12:45:51+00:00 (link).
Hotfix:
- Restrict to
kubernetes<10.0.0
to keep Kopf runnable at all.
See: #134 and kubernetes-client/python#866
0.17
Originally released on 2019-07-03 08:23:43+00:00 (link).
Improvements:
- Performance improvements when handling hundreds of resources. #109
Internal changes:
- Internal (non-public) packages restructured — to deal with the growing complexity. #124
kopf.engines
extracted fromkopf.reactor
(peering & posting & logging).kopf.utilities
extracted fromkopf.reactor
(reacting to k8s changes).kopf.clients
is the newkopf.k8s
(renamed).kopf.clients.auth
extracted fromkopf.config
(only auth-related routines).kopf.config
got the configuration constants from all over the code.
- New configuration added:
- Configurable timeouts and thread pool sizes.
- Configurable level of k8s-events posted; others are skipped.
- Everything has been made asynchronous:
- All internal K8s API wrappers/adapters are made async.
- All blocking operations (incl. API requests) moved to thread pools.
- All k8s-event posting is done via a queue with a background posting task. #125
0.16
Originally released on 2019-06-14 09:18:57+00:00 (link).
New features:
- Resource "resuming" handlers
@kopf.on.resume
for threads/tasks. #105
Internal changes:
- Tests and docs for RBAC status codes for peering. #95
- Handlers are de-duplicated if registered twice and both do match the event/cause. #105
- The initial listing of objects is done separately from watching the objects, and is fed into the reactor differently (not
event['type']=="ADDED"
, butevent['type']==None
). The watching continues from the resource-version of the list, as it must be by design. #105
0.15
Originally released on 2019-06-13 16:14:01+00:00 (link).
New features:
- Silent spy-handlers
@kopf.on.event
(currently only for custom resources). #86 - Labels can now be added recursively (e.g. to pod templates within jobs/deployments). #108
Improvements:
- Diffs are logged on update events. #104
- Handling is skipped if there are no handlers for the event/cause (and produces no fake logs/statuses). #103
Internal changes:
The release is done as a rollback point from 0.16 if the resume-handlers introduce breaking changes (they shouldn't).