Releases: SAP/component-operator-runtime
v0.3.63: fix(go.mod/go.sum): update module golang.org/x/time to v0.9.0 (#196)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
v0.3.62
Incompatible changes
Previously, the forced re-apply of dependent objects was based on a timestamp that was coded into the object digest. As a consequence, the digest annotation of every dependent object was updated more or less every 60 minutes. Which caused problems (e.g. with crossplane).
From this release onwards, the force-re-apply mechanism is based on the new status field status.inventory[].lastAppliedAt
.
Note: YOU MUST, REALLY MUST, regenerate your component CRD when using a version of component-operator-runtime containing this release, and ship the module update together with the updated CRD!!!
v0.3.61
fix code comment
v0.3.60: fix(deps): update node.js to v23.5.0 (#191)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
v0.3.59
This release is non-functional (preparation for future work). It ships a new status field .status.inventory[].lastAppliedAt
.
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)