Skip to content

ControllerManager/DefaultController error handling #2689

@olegsavin

Description

@olegsavin

Describe the bug
ControllerManager/DefaultController do not throw/retry if any of controllers fails preFlightCheck.
DefaultController silently exits run() func, ControllerManager doesn't do anything about it, doesn't re-try or throw also.
There is no way for outside consumer to figure out if all controllers have been started fine or not and retry if not.

Client Version
18

Kubernetes Version
1.26

Java Version
Java 11

To Reproduce
Hard repro, API server REST call timeout caused this.

Expected behavior
Client/consumer of ControllerManager should be able to specify what happens in case not all controllers start successfully - best effort or hard fail ControllerManager.run(). Expose running status of controllers. Exception in preFlightCheck should be propagated to client or client is able to provide custom handler - for individual controller and combined all failures of controllers registered in ControllerManager,

Metadata

Metadata

Assignees

No one assigned

    Labels

    lifecycle/rottenDenotes an issue or PR that has aged beyond stale and will be auto-closed.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions