kubernetes-sigs / kubernetes-sigs/node-readiness-controller
Inconsistent Dry-Run Behavior Between Controllers
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 164
- Forks
- 75
- Avg merge
- 8d 23h
- Merged PRs (30d)
- 13
Description
Dry-run behavior differs between RuleController and NodeController
Current Behavior
RuleControllerevaluates dry-run rules and reports what would happen(here: https://github.com/kubernetes-sigs/node-readiness-controller/blob/main/internal/controller/nodereadinessrule_controller.go#L544).NodeControllerskips dry-run rules entirely, producing no output when nodes change(here: https://github.com/kubernetes-sigs/node-readiness-controller/blob/main/internal/controller/node_controller.go#L88).
Problem
When node labels or conditions change, we will get no visibility into whether rules would match or what taint operations would occur.
Question: is that by design? If no we should evaluate in nodeController too when we do dryRun=True and update the nodeStatus maybe(here: https://github.com/kubernetes-sigs/node-readiness-controller/blob/main/internal/controller/nodereadinessrule_controller.go#L350)
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the dry-run paths at internal/controller/nodereadinessrule_controller.go:544 and :350 with internal/controller/node_controller.go:88. Trace how node changes reach NodeController and how nodeStatus is updated, then use the comment discussion to determine whether skipping dry-run rules is intentional. Done means the intended behavior is documented and both controller paths provide consistent dry-run visibility.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, kubernetes
- Domain
- infrastructure
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100