crossplane / crossplane/crossplane

Zero downtime upgrades for composition functions

Open
#7,298 5 comments 2 reactions 0 assignees View on GitHub
enhancement
Dominant language
Go
Stars
12.1k
Forks
1.3k
Avg merge
1d 6h
Merged PRs (30d)
46

Description

### What problem are you facing?

When deploying new versions of composition functions crossplane replaces the whole function deployment causing XRs become unhealthy for a short period. Its only a ~30second blip, but it causes a lot of noise as it in turn causes all argo applications which contains an XR to also become unhealthy.
Example error:

Image

### How could Crossplane help solve your problem?

I think the root cause is that the deployments get created with the name of the functionrevision, so each change to the function spec replaces the whole deployment. If the function deployments were created with a stable name we could use kubernetes deployment spec to control the rollout.

Contributor guide

Open the contributing guide

Research direction

No file or test is named. Start by locating the controller that creates composition-function deployments and trace how FunctionRevisions determine deployment names; done means upgrading a function rolls out without making XRs unhealthy during the reported ~30-second gap.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes
Domain
backend, infrastructure
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.