Releases: SAP/component-operator-runtime
v0.3.58
This release is a bugfix release for the clm cli. So far, while applying or deleting a release, clm was aborting immediately if an error occurred. This is not very convenient. At least in some ephemeral error situations, it should behave in a more resilient way. So, with this release, clm tries to recognise such ephemeral errors (for example 409 - Conflict responses from the API server), and retries the failing operation a couple of times.
v0.3.57
workflows: disable cgo
v0.3.56
Enhancements
A new flag --create-namespace was added to clm apply. If specified the specified release namespace will be auto-created if missing. Note that in that case, the namespace is not part of the release inventory. In particular, it will not be deleted if the component gets deleted.
v0.3.55
This release adds a new interface PolicyConfiguration that component types (or their spec types) can implement:
type PolicyConfiguration interface {
// Get adoption policy.
// Must return a valid AdoptionPolicy, or the empty string (then the reconciler/framework default applies).
GetAdoptionPolicy() reconciler.AdoptionPolicy
// Get update policy.
// Must return a valid UpdatePolicy, or the empty string (then the reconciler/framework default applies).
GetUpdatePolicy() reconciler.UpdatePolicy
// Get delete policy.
// Must return a valid DeletePolicy, or the empty string (then the reconciler/framework default applies).
GetDeletePolicy() reconciler.DeletePolicy
}Through this interface, components can override the framework default policies that would otherwise apply. Of course, dependent resources can still override the behaviour using the well-known annotations. For easier consumption (similar to the already existing Configuration interfaces), there is a standard implementation PolicySpec that components may embed into their spec).
Furthermore, the semantics of the deletion policy was slightly changed:
- Other than before, the deletion policy is now ignored during apply. That is, if an existing object becomes obsolete while applying a new revision of the depdendents' manifests, it will be always deleted now, even if it has an effective deletion policy 'orphan'. In other words, the deletion policy will only be honoured if the owning component itself is deleted.
- So far, a component's deletion will block if it contains extension types, and there exist any foreign instances of these types in the cluster; this check will now be skipped if all dependents of the component have an effective deletion policy 'orphan'.
v0.3.54
This release adds some new template functions to HelmGenerator and KustomizeGenerator.
-
Template functions for bitwise operations:
func bitwiseShiftLeft(by any, arg any) (uint64, error)func bitwiseShiftRight(by any, arg any) (uint64, error)func bitwiseAnd(args ...any) (uint64, error)func bitwiseOr(args ...any) (uint64, error)func bitwiseXor(args ...any) (uint64, error)
-
Functions for IPv4 address handling:
func parseIPv4Address(data any) (uint32, error)func formatIPv4Address(data any) (string, error)
v0.3.53
add comments
v0.3.52
This is a bugfix release, but it slightly changes the procedure how dependent objects are reconciled. In detail:
Until now, reconciler.Apply() (which is what happens if a component is reconciled, not deleted) first deleted all redundant objects, that is objects which appear in the component's inventory, but are no longer part of the current manifest list. Only after all redundant objects were gone, the reconciliation of the current dependents was started. This potentially caused some deadlock situations, e.g. in component-operator. To overcome, the deletion part was shifted to the end of
reconciler.Apply(), after the application of the current manifest list. This should not be a noticeable change. However, the completion handling still happens early (before the reconciliation of the dependents), and was slightly changed as well; for example, object deletions happening as consequence of a completion now no longer honour delete-order or delete-policy.
v0.3.51
fix(deps): update module sigs.k8s.io/controller-runtime to v0.19.2 (#…
v0.3.50: fix(deps): update non-minor dependencies (#169)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
v0.3.49: fix(deps): update non-minor dependencies (#166)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>