Initialize CPUManager containerMap to set of initial containers

A recent change made it so that the CPUManager receives a list of
initial containers that exist on the system at startup. This list can be
non-empty, for example, after a kubelet retart.

This commit ensures that the CPUManagers containerMap structure is
initialized with the containers from this list.
This commit is contained in:
Kevin Klues 2020-01-20 20:30:40 +01:00
parent 37ee6425ef
commit bd9d8fa42f

View File

@ -167,7 +167,6 @@ func NewManager(cpuPolicyName string, reconcilePeriod time.Duration, machineInfo
manager := &manager{
policy: policy,
reconcilePeriod: reconcilePeriod,
containerMap: containermap.NewContainerMap(),
topology: topo,
nodeAllocatableReservation: nodeAllocatableReservation,
stateFileDirectory: stateFileDirectory,
@ -183,8 +182,9 @@ func (m *manager) Start(activePods ActivePodsFunc, sourcesReady config.SourcesRe
m.activePods = activePods
m.podStatusProvider = podStatusProvider
m.containerRuntime = containerRuntime
m.containerMap = initialContainers
stateImpl, err := state.NewCheckpointState(m.stateFileDirectory, cpuManagerStateFileName, m.policy.Name(), initialContainers)
stateImpl, err := state.NewCheckpointState(m.stateFileDirectory, cpuManagerStateFileName, m.policy.Name(), m.containerMap)
if err != nil {
klog.Errorf("[cpumanager] could not initialize checkpoint manager: %v, please drain node and remove policy state file", err)
return err