bpfman / bpfman/bpfman-operator

Handle deleting BpfProgram objects when parent program isn’t also being deleted

Open
#88 0 comments 0 reactions 0 assignees View on GitHub
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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.