
This PR adds two features: 1. add support for isolating the emptyDir volume use. If user sets a size limit for emptyDir volume, kubelet's eviction manager monitors its usage and evict the pod if the usage exceeds the limit. 2. add support for isolating the local storage for container overlay. If the container's overly usage exceeds the limit defined in container spec, eviction manager will evict the pod.
63 lines
1.6 KiB
Go
63 lines
1.6 KiB
Go
/*
|
|
Copyright 2017 The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
package api
|
|
|
|
import (
|
|
"k8s.io/apimachinery/pkg/api/resource"
|
|
)
|
|
|
|
func (self ResourceName) String() string {
|
|
return string(self)
|
|
}
|
|
|
|
// Returns the CPU limit if specified.
|
|
func (self *ResourceList) Cpu() *resource.Quantity {
|
|
if val, ok := (*self)[ResourceCPU]; ok {
|
|
return &val
|
|
}
|
|
return &resource.Quantity{Format: resource.DecimalSI}
|
|
}
|
|
|
|
// Returns the Memory limit if specified.
|
|
func (self *ResourceList) Memory() *resource.Quantity {
|
|
if val, ok := (*self)[ResourceMemory]; ok {
|
|
return &val
|
|
}
|
|
return &resource.Quantity{Format: resource.BinarySI}
|
|
}
|
|
|
|
func (self *ResourceList) Pods() *resource.Quantity {
|
|
if val, ok := (*self)[ResourcePods]; ok {
|
|
return &val
|
|
}
|
|
return &resource.Quantity{}
|
|
}
|
|
|
|
func (self *ResourceList) NvidiaGPU() *resource.Quantity {
|
|
if val, ok := (*self)[ResourceNvidiaGPU]; ok {
|
|
return &val
|
|
}
|
|
return &resource.Quantity{}
|
|
}
|
|
|
|
func (self *ResourceList) StorageOverlay() *resource.Quantity {
|
|
if val, ok := (*self)[ResourceStorageOverlay]; ok {
|
|
return &val
|
|
}
|
|
return &resource.Quantity{}
|
|
}
|