crossplane / crossplane/crossplane
Zero downtime upgrades for composition functions
- 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:
### 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
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