v0.3.9
Incompatible changes
- New fields were added to
component.InventoryItem; as this struct is used in the status include, all consumers must regenerate their CRDs. - The annotation
mycomponent-operator.mydomain.io/orderwas renamed tomycomponent-operator.mydomain.io/apply-order; also the according constanttypes.AnnotationKeySuffixOrderwas renamed totypes.AnnotationKeySuffixApplyOrder. - The internal standard backoff was changed from a purely per-item exponential backoff to a more agile backoff: in detail, it is a combined per-item backoff of a 300-times-20ms-then-maxDelay limiter, and an overall 10-per-second-burst-20 bucket limiter; as a consequence, we have up to 20 almost immediate retries, then a phase of 10 retries per second for approximately 30s, and then slow retries at the rate given by maxDelay; as a consequence, retries (e.g. happening during a multi-wave apply or delete activity) will happen faster, and, on the other hand, be potentially more demanding for the API server.
Enhancements
-
Delete waves; there is a new annotation
mycomponent-operator.mydomain.io/delete-orderwhich can be used to delete dependents in waves; valid values are between -32768 and 32767; if unspecified, the default of 0 is assumed. -
Status hints; many custom resource types nowadays have a
status.observedGenerationfields, and aReadycondition; unfortunately some controllers are not populating these in a proper way; which means: they do it too late, which makes it difficult to observe the according instances; for example, kstatus assumes that an object which has nostatus.observedGeneration, and noReadycondition is ready, although it just might not yet have been seen or updated by its responsible controller. To overcome this problem, the manifests of dependent objects can be annotated such asannotations: mycomponent-operator.mydomain.io/status-hint: has-observed-generation,has-ready-condition
(supplying only one of the two hints is also possible, of course); in that case, the framework will add an
observedGeneration, or aReadycondition withUnknownstate to the object, before passing it tokstatus, which will then detect and return the proper state of the object.
Version updates
- controller-tools was updated to 0.14.0
- go was updated to 1.22
- various dependencies got updates