mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-21 10:51:29 +00:00
Initialize pod resource allocation checkpoint manager to noop
This avoids accidentally introducing null pointer access if manager functions were called outside of InPlacePodVerticalScaling feature gate.
This commit is contained in:
parent
3c6e419cc3
commit
1e01358ea2
@ -177,3 +177,50 @@ func (sc *stateCheckpoint) ClearState() error {
|
|||||||
sc.cache.ClearState()
|
sc.cache.ClearState()
|
||||||
return sc.storeState()
|
return sc.storeState()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
type noopStateCheckpoint struct{}
|
||||||
|
|
||||||
|
// NewNoopStateCheckpoint creates a dummy state checkpoint manager
|
||||||
|
func NewNoopStateCheckpoint() State {
|
||||||
|
return &noopStateCheckpoint{}
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) GetContainerResourceAllocation(_ string, _ string) (v1.ResourceList, bool) {
|
||||||
|
return nil, false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) GetPodResourceAllocation() PodResourceAllocation {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) GetPodResizeStatus(_ string) (v1.PodResizeStatus, bool) {
|
||||||
|
return "", false
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) GetResizeStatus() PodResizeStatus {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) SetContainerResourceAllocation(_ string, _ string, _ v1.ResourceList) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) SetPodResourceAllocation(_ PodResourceAllocation) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) SetPodResizeStatus(_ string, _ v1.PodResizeStatus) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) SetResizeStatus(_ PodResizeStatus) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) Delete(_ string, _ string) error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
|
func (sc *noopStateCheckpoint) ClearState() error {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
@ -186,6 +186,9 @@ func isPodStatusByKubeletEqual(oldStatus, status *v1.PodStatus) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (m *manager) Start() {
|
func (m *manager) Start() {
|
||||||
|
// Initialize m.state to no-op state checkpoint manager
|
||||||
|
m.state = state.NewNoopStateCheckpoint()
|
||||||
|
|
||||||
// Create pod allocation checkpoint manager even if client is nil so as to allow local get/set of AllocatedResources & Resize
|
// Create pod allocation checkpoint manager even if client is nil so as to allow local get/set of AllocatedResources & Resize
|
||||||
if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodVerticalScaling) {
|
if utilfeature.DefaultFeatureGate.Enabled(features.InPlacePodVerticalScaling) {
|
||||||
stateImpl, err := state.NewStateCheckpoint(m.stateFileDirectory, podStatusManagerStateFile)
|
stateImpl, err := state.NewStateCheckpoint(m.stateFileDirectory, podStatusManagerStateFile)
|
||||||
|
Loading…
Reference in New Issue
Block a user