...
1
16
17 package cm
18
19 import (
20 "fmt"
21
22 v1 "k8s.io/api/core/v1"
23 "k8s.io/klog/v2"
24
25 "k8s.io/apimachinery/pkg/api/resource"
26 "k8s.io/apimachinery/pkg/types"
27 internalapi "k8s.io/cri-api/pkg/apis"
28 podresourcesapi "k8s.io/kubelet/pkg/apis/podresources/v1"
29 "k8s.io/kubernetes/pkg/kubelet/cm/cpumanager"
30 "k8s.io/kubernetes/pkg/kubelet/cm/memorymanager"
31 "k8s.io/kubernetes/pkg/kubelet/cm/topologymanager"
32 "k8s.io/kubernetes/pkg/kubelet/config"
33 kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
34 "k8s.io/kubernetes/pkg/kubelet/lifecycle"
35 "k8s.io/kubernetes/pkg/kubelet/pluginmanager/cache"
36 "k8s.io/kubernetes/pkg/kubelet/status"
37 schedulerframework "k8s.io/kubernetes/pkg/scheduler/framework"
38 )
39
40 type containerManagerStub struct {
41 shouldResetExtendedResourceCapacity bool
42 extendedPluginResources v1.ResourceList
43 }
44
45 var _ ContainerManager = &containerManagerStub{}
46
47 func (cm *containerManagerStub) Start(_ *v1.Node, _ ActivePodsFunc, _ config.SourcesReady, _ status.PodStatusProvider, _ internalapi.RuntimeService, _ bool) error {
48 klog.V(2).InfoS("Starting stub container manager")
49 return nil
50 }
51
52 func (cm *containerManagerStub) SystemCgroupsLimit() v1.ResourceList {
53 return v1.ResourceList{}
54 }
55
56 func (cm *containerManagerStub) GetNodeConfig() NodeConfig {
57 return NodeConfig{}
58 }
59
60 func (cm *containerManagerStub) GetMountedSubsystems() *CgroupSubsystems {
61 return &CgroupSubsystems{}
62 }
63
64 func (cm *containerManagerStub) GetQOSContainersInfo() QOSContainersInfo {
65 return QOSContainersInfo{}
66 }
67
68 func (cm *containerManagerStub) UpdateQOSCgroups() error {
69 return nil
70 }
71
72 func (cm *containerManagerStub) Status() Status {
73 return Status{}
74 }
75
76 func (cm *containerManagerStub) GetNodeAllocatableReservation() v1.ResourceList {
77 return nil
78 }
79
80 func (cm *containerManagerStub) GetCapacity(localStorageCapacityIsolation bool) v1.ResourceList {
81 if !localStorageCapacityIsolation {
82 return v1.ResourceList{}
83 }
84 c := v1.ResourceList{
85 v1.ResourceEphemeralStorage: *resource.NewQuantity(
86 int64(0),
87 resource.BinarySI),
88 }
89 return c
90 }
91
92 func (cm *containerManagerStub) GetPluginRegistrationHandler() cache.PluginHandler {
93 return nil
94 }
95
96 func (cm *containerManagerStub) GetDevicePluginResourceCapacity() (v1.ResourceList, v1.ResourceList, []string) {
97 return cm.extendedPluginResources, cm.extendedPluginResources, []string{}
98 }
99
100 func (m *podContainerManagerStub) GetPodCgroupConfig(_ *v1.Pod, _ v1.ResourceName) (*ResourceConfig, error) {
101 return nil, fmt.Errorf("not implemented")
102 }
103
104 func (m *podContainerManagerStub) SetPodCgroupConfig(_ *v1.Pod, _ v1.ResourceName, _ *ResourceConfig) error {
105 return fmt.Errorf("not implemented")
106 }
107
108 func (cm *containerManagerStub) NewPodContainerManager() PodContainerManager {
109 return &podContainerManagerStub{}
110 }
111
112 func (cm *containerManagerStub) GetResources(pod *v1.Pod, container *v1.Container) (*kubecontainer.RunContainerOptions, error) {
113 return &kubecontainer.RunContainerOptions{}, nil
114 }
115
116 func (cm *containerManagerStub) UpdatePluginResources(*schedulerframework.NodeInfo, *lifecycle.PodAdmitAttributes) error {
117 return nil
118 }
119
120 func (cm *containerManagerStub) InternalContainerLifecycle() InternalContainerLifecycle {
121 return &internalContainerLifecycleImpl{cpumanager.NewFakeManager(), memorymanager.NewFakeManager(), topologymanager.NewFakeManager()}
122 }
123
124 func (cm *containerManagerStub) GetPodCgroupRoot() string {
125 return ""
126 }
127
128 func (cm *containerManagerStub) GetDevices(_, _ string) []*podresourcesapi.ContainerDevices {
129 return nil
130 }
131
132 func (cm *containerManagerStub) GetAllocatableDevices() []*podresourcesapi.ContainerDevices {
133 return nil
134 }
135
136 func (cm *containerManagerStub) ShouldResetExtendedResourceCapacity() bool {
137 return cm.shouldResetExtendedResourceCapacity
138 }
139
140 func (cm *containerManagerStub) GetAllocateResourcesPodAdmitHandler() lifecycle.PodAdmitHandler {
141 return topologymanager.NewFakeManager()
142 }
143
144 func (cm *containerManagerStub) UpdateAllocatedDevices() {
145 return
146 }
147
148 func (cm *containerManagerStub) GetCPUs(_, _ string) []int64 {
149 return nil
150 }
151
152 func (cm *containerManagerStub) GetAllocatableCPUs() []int64 {
153 return nil
154 }
155
156 func (cm *containerManagerStub) GetMemory(_, _ string) []*podresourcesapi.ContainerMemory {
157 return nil
158 }
159
160 func (cm *containerManagerStub) GetAllocatableMemory() []*podresourcesapi.ContainerMemory {
161 return nil
162 }
163
164 func (cm *containerManagerStub) GetDynamicResources(pod *v1.Pod, container *v1.Container) []*podresourcesapi.DynamicResource {
165 return nil
166 }
167
168 func (cm *containerManagerStub) GetNodeAllocatableAbsolute() v1.ResourceList {
169 return nil
170 }
171
172 func (cm *containerManagerStub) PrepareDynamicResources(pod *v1.Pod) error {
173 return nil
174 }
175
176 func (cm *containerManagerStub) UnprepareDynamicResources(*v1.Pod) error {
177 return nil
178 }
179
180 func (cm *containerManagerStub) PodMightNeedToUnprepareResources(UID types.UID) bool {
181 return false
182 }
183
184 func NewStubContainerManager() ContainerManager {
185 return &containerManagerStub{shouldResetExtendedResourceCapacity: false}
186 }
187
188 func NewStubContainerManagerWithExtendedResource(shouldResetExtendedResourceCapacity bool) ContainerManager {
189 return &containerManagerStub{shouldResetExtendedResourceCapacity: shouldResetExtendedResourceCapacity}
190 }
191
192 func NewStubContainerManagerWithDevicePluginResource(extendedPluginResources v1.ResourceList) ContainerManager {
193 return &containerManagerStub{
194 shouldResetExtendedResourceCapacity: false,
195 extendedPluginResources: extendedPluginResources,
196 }
197 }
198
View as plain text