Skip to content

Releases: SAP/component-operator-runtime

v0.3.63: fix(go.mod/go.sum): update module golang.org/x/time to v0.9.0 (#196)

06 Jan 07:16
73d56e1
Compare
Choose a tag to compare
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v0.3.62

01 Jan 16:25
d52dc52
Compare
Choose a tag to compare

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

30 Dec 07:16
Compare
Choose a tag to compare
fix code comment

v0.3.60: fix(deps): update node.js to v23.5.0 (#191)

23 Dec 07:16
8635352
Compare
Choose a tag to compare
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v0.3.59

18 Dec 22:20
a0f784a
Compare
Choose a tag to compare

This release is non-functional (preparation for future work). It ships a new status field .status.inventory[].lastAppliedAt.

v0.3.58

12 Dec 17:28
315b7eb
Compare
Choose a tag to compare

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

10 Dec 21:56
Compare
Choose a tag to compare
workflows: disable cgo

v0.3.56

10 Dec 19:10
f0bb9b9
Compare
Choose a tag to compare

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

09 Dec 15:38
88c5286
Compare
Choose a tag to compare

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:

  1. 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.
  2. 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

09 Dec 07:17
9a01b9e
Compare
Choose a tag to compare

This release adds some new template functions to HelmGenerator and KustomizeGenerator.

  1. 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)
  2. Functions for IPv4 address handling:

    • func parseIPv4Address(data any) (uint32, error)
    • func formatIPv4Address(data any) (string, error)