Open sharnoff opened 7 months ago
Optional for neondatabase/company_projects#187.
The neonvm-controller's reconcile functions are huge and complex, with the majority of testing coming from system-wide end-to-end tests.
This leaves us over-exposed to uncommon scenarios or edge cases, along with little testing against degradations.
More testing for the reconcile functions, mostly just to get it started. This is a continuing process
We may want to do something like what pkg/agent/core/state.go does, where the core of the logic is pure, and just returns the desired action to take.
pkg/agent/core/state.go
While that would be a lot of work, maybe it's worth it to "force" all of the state to exist outside the control flow.
Also to look at how other k8s controllers are tested.
### Tasks
Status:
Optional for neondatabase/company_projects#187.
Problem description / Motivation
The neonvm-controller's reconcile functions are huge and complex, with the majority of testing coming from system-wide end-to-end tests.
This leaves us over-exposed to uncommon scenarios or edge cases, along with little testing against degradations.
Feature idea(s) / DoD
More testing for the reconcile functions, mostly just to get it started. This is a continuing process
Implementation ideas
We may want to do something like what
pkg/agent/core/state.go
does, where the core of the logic is pure, and just returns the desired action to take.While that would be a lot of work, maybe it's worth it to "force" all of the state to exist outside the control flow.
Also to look at how other k8s controllers are tested.
Related issues
716
733