Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Promote Realtime Compositions to Beta #4828

Open
4 tasks
sttts opened this issue Oct 17, 2023 · 4 comments
Open
4 tasks

Promote Realtime Compositions to Beta #4828

sttts opened this issue Oct 17, 2023 · 4 comments
Labels
composition enhancement New feature or request feature-lifecycle realtime-composition roadmap Issues that have priority and are included in the roadmap, or are candidates to add to the roadmap
Milestone

Comments

@sttts
Copy link
Contributor

sttts commented Oct 17, 2023

What problem are you facing?

This is the tracking issue for promoting realtime compositions to Beta.
With the feature recently merged into the master under the --enable-realtime-compositions feature gate, we don't have any issues yet, but we will list them here as they appear.

How could Crossplane help solve your problem?

Promote realtime compositions to Beta once we feel confident about it.

Tasks

  1. bug composition e2e flaky-test realtime-composition
    negz
  2. backport release-1.14 backport release-1.15 bug realtime-composition
    sttts
  3. bug composition realtime-composition
    negz
  4. bug composition realtime-composition
@negz
Copy link
Member

negz commented Oct 17, 2023

I just closed #4316, as a "duplicate" of this tracking issue. Part of what that issue was tracking was removing polling support altogether. Perhaps we could bring that into scope for beta. I know the main constraint will be figuring out how/when to invoke the Function pipeline, assuming folks might want it to be invoked even when the XR/composed resources haven't changed.

@sttts
Copy link
Contributor Author

sttts commented Oct 17, 2023

@negz compare #4822 for a quick attempt to see what explodes in CI. Not much actually.

@negz
Copy link
Member

negz commented May 7, 2024

I noticed while working on #5651 that there might be a data race in the realtime compositions implementation:

i.cdCaches[gvk] = cdCache{
cache: ca,
cancelFn: cancelFn,
}

These both write to a map, but they don't have a write lock on the mutex that guards that map. In the first case there's a read lock on an RWMutex. In the second case there's no lock at all.

Perhaps this is contributing to some of the flakiness we've seen?

@negz
Copy link
Member

negz commented May 22, 2024

Something to be aware of: crossplane-contrib/provider-kubernetes#246 (comment)

It seems like in some cases SSA will bump the resource version of the applied object even if nothing changed. In theory this could cause a tight loop of reconciles if functions and realtime compositions are used together:

  1. Crossplane uses SSA to apply function desired composed resource state
  2. API server updates composed resource resource version
  3. Realtime compositions notices updated resource version and queues a reconcile
  4. Back to step 1

No-one has reported this yet, so it's possibly only a hypothetical issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
composition enhancement New feature or request feature-lifecycle realtime-composition roadmap Issues that have priority and are included in the roadmap, or are candidates to add to the roadmap
Projects
Status: Backlog
Status: Alpha to Beta
Development

No branches or pull requests

3 participants