Skip to content

Releases: SAP/component-operator-runtime

v0.3.110

08 Sep 07:17
0c8fae6

Choose a tag to compare

fix(deps): update module github.com/prometheus/client_golang to v1.23…

v0.3.109: fix(deps): update module github.com/onsi/ginkgo/v2 to v2.25.2 (#323)

01 Sep 07:17
0744c9a

Choose a tag to compare

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v0.3.108: fix(deps): update non-minor dependencies (#318)

25 Aug 07:17
3f0541d

Choose a tag to compare

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v0.3.107

21 Aug 17:29
0ce7b6d

Choose a tag to compare

Enhancements

Status handling

So far, the observed generation of dependent objects was expected at status.observedGeneration. Some newer projects seem to populate status.conditions[type=*].observedGeneration, additionally, or even exclusively.

Starting with this release, if a status hint of has-observed-generation is present, but no status.observedGeneration is found, the framework will look at .status.conditions[type=Ready].observedGeneration as a fallback.

Secret handling

It is well known that the stringData field of secrets is not handled properly during server-side-apply:

Note:
The stringData field for a Secret does not work well with server-side apply.

To overcome, we will now merge stringData into data before applying and clear stringData. This should be consistent with the logic that would otherwise happen in the API server:

All key-value pairs in the stringData field are internally merged into the data field. If a key appears in both the data and the stringData field, the value specified in the stringData field takes precedence.

See #313.

Deletion handling

It is difficult to move dependent objects from one component to another. That means: adding it to the source manifest of the new one, and removing it from the sources of the old one.

The typical flow looks like this:

  • ensure that the receiving component (the new owner) is reconciled before the sending component (the previous owner)
  • annotate the dependent object (in the manifest source used by the new component) with adoption-policy: always, at least for a certain time, until the change is rolled out everywhere.

Then, when applying that, the new component will force-adopt the existing object, and the old component will run into an owner conflict error. This either has then to be solved manually by patching the old component's inventory, or (in a previous apply), the object must have been applied by the old component with delete-policy: orphan or delete-policy: orphan-on-apply.

It would be nice (and reasonable) if - upon dependent deletion, either due to component apply or component deletion - dependents with no or a different owner would be auto-orphaned. This would eliminate the need of the manual post-processing or the preflight apply run setting delete policies (as explained above).

v0.3.106: fix(go.mod/go.sum): update module sigs.k8s.io/yaml to v1.5.0 (#309)

30 Jun 07:17
26bb588

Choose a tag to compare

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v0.3.105: fix(deps): update non-minor dependencies to v0.33.2 (#308)

23 Jun 07:17
2c0dbf1

Choose a tag to compare

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>

v0.3.104

16 Jun 07:17

Choose a tag to compare

add comment

v03.103

11 Jun 08:18
b298f82

Choose a tag to compare

Bug fixes

Fixes #305.

v0.3.102

08 Jun 17:29
5eb2c02

Choose a tag to compare

Bug fixes

This release fixes #302.

v03.101

03 Jun 17:09
52cb6b4

Choose a tag to compare

Bug fixes

Fixes #299.