bpfman / bpfman/bpfman-operator
Handle deleting BpfProgram objects when parent program isn’t also being deleted
- Dominant language
- Go
- Stars
- 38
- Forks
- 27
- PR merge metrics
- No merged PRs in 30d
Description
There are times when BpfProgram objects are deleted when the parent *Program object isn't also being deleted. For example, when InterfaceSelectors or ContainerSelectors are modified, or containers come and go. The parent operator controller needs to be triggered when this happens so that the global status can be updated. This currently happens because the state of the BpfProgram objects is changed to BpfProgCondUnloaded; however, I don't believe that it's guaranteed that the operator controller will run before the BpfProgram object is actually deleted. We may need to modify the way we handle finalizers on the BpfProgram objects to ensure that the Operator controller has a chance to run before the BpfProgram object is deleted.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by tracing how BpfProgram deletion triggers the parent operator controller and how BpfProgram finalizers are handled. Check the reconciliation path for InterfaceSelectors, ContainerSelectors, and container changes; done means the controller reliably runs before deletion and updates global status.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- devops, infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100