...

Source file src/k8s.io/kubernetes/pkg/kubelet/cm/container_manager_stub.go

Documentation: k8s.io/kubernetes/pkg/kubelet/cm

     1  /*
     2  Copyright 2015 The Kubernetes Authors.
     3  
     4  Licensed under the Apache License, Version 2.0 (the "License");
     5  you may not use this file except in compliance with the License.
     6  You may obtain a copy of the License at
     7  
     8      http://www.apache.org/licenses/LICENSE-2.0
     9  
    10  Unless required by applicable law or agreed to in writing, software
    11  distributed under the License is distributed on an "AS IS" BASIS,
    12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
    13  See the License for the specific language governing permissions and
    14  limitations under the License.
    15  */
    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