mirror of
https://github.com/ceph/ceph-csi.git
synced 2025-06-14 10:53:34 +00:00
Fresh dep ensure
This commit is contained in:
24
vendor/k8s.io/kubernetes/pkg/kubelet/images/BUILD
generated
vendored
24
vendor/k8s.io/kubernetes/pkg/kubelet/images/BUILD
generated
vendored
@ -23,14 +23,14 @@ go_library(
|
||||
"//pkg/kubelet/events:go_default_library",
|
||||
"//pkg/kubelet/util/sliceutils:go_default_library",
|
||||
"//pkg/util/parsers:go_default_library",
|
||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
|
||||
"//vendor/github.com/docker/distribution/reference:go_default_library",
|
||||
"//vendor/github.com/golang/glog:go_default_library",
|
||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/errors:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/sets:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/wait:go_default_library",
|
||||
"//vendor/k8s.io/client-go/tools/record:go_default_library",
|
||||
"//vendor/k8s.io/client-go/util/flowcontrol:go_default_library",
|
||||
"//vendor/k8s.io/klog:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
@ -46,13 +46,13 @@ go_test(
|
||||
"//pkg/kubelet/container:go_default_library",
|
||||
"//pkg/kubelet/container/testing:go_default_library",
|
||||
"//pkg/kubelet/server/stats/testing:go_default_library",
|
||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/util/clock:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/tools/record:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
|
||||
"//vendor/github.com/stretchr/testify/assert:go_default_library",
|
||||
"//vendor/github.com/stretchr/testify/require:go_default_library",
|
||||
"//vendor/k8s.io/api/core/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
|
||||
"//vendor/k8s.io/apimachinery/pkg/util/clock:go_default_library",
|
||||
"//vendor/k8s.io/client-go/tools/record:go_default_library",
|
||||
"//vendor/k8s.io/client-go/util/flowcontrol:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
|
2
vendor/k8s.io/kubernetes/pkg/kubelet/images/helpers.go
generated
vendored
2
vendor/k8s.io/kubernetes/pkg/kubelet/images/helpers.go
generated
vendored
@ -46,5 +46,5 @@ func (ts throttledImageService) PullImage(image kubecontainer.ImageSpec, secrets
|
||||
if ts.limiter.TryAccept() {
|
||||
return ts.ImageService.PullImage(image, secrets)
|
||||
}
|
||||
return "", fmt.Errorf("pull QPS exceeded.")
|
||||
return "", fmt.Errorf("pull QPS exceeded")
|
||||
}
|
||||
|
43
vendor/k8s.io/kubernetes/pkg/kubelet/images/image_gc_manager.go
generated
vendored
43
vendor/k8s.io/kubernetes/pkg/kubelet/images/image_gc_manager.go
generated
vendored
@ -24,7 +24,7 @@ import (
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/klog"
|
||||
|
||||
"k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/util/errors"
|
||||
@ -44,8 +44,7 @@ type StatsProvider interface {
|
||||
ImageFsStats() (*statsapi.FsStats, error)
|
||||
}
|
||||
|
||||
// Manages lifecycle of all images.
|
||||
//
|
||||
// ImageGCManager is an interface for managing lifecycle of all images.
|
||||
// Implementation is thread-safe.
|
||||
type ImageGCManager interface {
|
||||
// Applies the garbage collection policy. Errors include being unable to free
|
||||
@ -61,7 +60,7 @@ type ImageGCManager interface {
|
||||
DeleteUnusedImages() error
|
||||
}
|
||||
|
||||
// A policy for garbage collecting images. Policy defines an allowed band in
|
||||
// ImageGCPolicy is a policy for garbage collecting images. Policy defines an allowed band in
|
||||
// which garbage collection will be run.
|
||||
type ImageGCPolicy struct {
|
||||
// Any usage above this threshold will always trigger garbage collection.
|
||||
@ -144,6 +143,7 @@ type imageRecord struct {
|
||||
size int64
|
||||
}
|
||||
|
||||
// NewImageGCManager instantiates a new ImageGCManager object.
|
||||
func NewImageGCManager(runtime container.Runtime, statsProvider StatsProvider, recorder record.EventRecorder, nodeRef *v1.ObjectReference, policy ImageGCPolicy, sandboxImage string) (ImageGCManager, error) {
|
||||
// Validate policy.
|
||||
if policy.HighThresholdPercent < 0 || policy.HighThresholdPercent > 100 {
|
||||
@ -178,7 +178,7 @@ func (im *realImageGCManager) Start() {
|
||||
}
|
||||
_, err := im.detectImages(ts)
|
||||
if err != nil {
|
||||
glog.Warningf("[imageGCManager] Failed to monitor images: %v", err)
|
||||
klog.Warningf("[imageGCManager] Failed to monitor images: %v", err)
|
||||
} else {
|
||||
im.initialized = true
|
||||
}
|
||||
@ -189,7 +189,7 @@ func (im *realImageGCManager) Start() {
|
||||
go wait.Until(func() {
|
||||
images, err := im.runtime.ListImages()
|
||||
if err != nil {
|
||||
glog.Warningf("[imageGCManager] Failed to update image list: %v", err)
|
||||
klog.Warningf("[imageGCManager] Failed to update image list: %v", err)
|
||||
} else {
|
||||
im.imageCache.set(images)
|
||||
}
|
||||
@ -223,7 +223,7 @@ func (im *realImageGCManager) detectImages(detectTime time.Time) (sets.String, e
|
||||
// Make a set of images in use by containers.
|
||||
for _, pod := range pods {
|
||||
for _, container := range pod.Containers {
|
||||
glog.V(5).Infof("Pod %s/%s, container %s uses image %s(%s)", pod.Namespace, pod.Name, container.Name, container.Image, container.ImageID)
|
||||
klog.V(5).Infof("Pod %s/%s, container %s uses image %s(%s)", pod.Namespace, pod.Name, container.Name, container.Image, container.ImageID)
|
||||
imagesInUse.Insert(container.ImageID)
|
||||
}
|
||||
}
|
||||
@ -234,12 +234,12 @@ func (im *realImageGCManager) detectImages(detectTime time.Time) (sets.String, e
|
||||
im.imageRecordsLock.Lock()
|
||||
defer im.imageRecordsLock.Unlock()
|
||||
for _, image := range images {
|
||||
glog.V(5).Infof("Adding image ID %s to currentImages", image.ID)
|
||||
klog.V(5).Infof("Adding image ID %s to currentImages", image.ID)
|
||||
currentImages.Insert(image.ID)
|
||||
|
||||
// New image, set it as detected now.
|
||||
if _, ok := im.imageRecords[image.ID]; !ok {
|
||||
glog.V(5).Infof("Image ID %s is new", image.ID)
|
||||
klog.V(5).Infof("Image ID %s is new", image.ID)
|
||||
im.imageRecords[image.ID] = &imageRecord{
|
||||
firstDetected: detectTime,
|
||||
}
|
||||
@ -247,18 +247,18 @@ func (im *realImageGCManager) detectImages(detectTime time.Time) (sets.String, e
|
||||
|
||||
// Set last used time to now if the image is being used.
|
||||
if isImageUsed(image.ID, imagesInUse) {
|
||||
glog.V(5).Infof("Setting Image ID %s lastUsed to %v", image.ID, now)
|
||||
klog.V(5).Infof("Setting Image ID %s lastUsed to %v", image.ID, now)
|
||||
im.imageRecords[image.ID].lastUsed = now
|
||||
}
|
||||
|
||||
glog.V(5).Infof("Image ID %s has size %d", image.ID, image.Size)
|
||||
klog.V(5).Infof("Image ID %s has size %d", image.ID, image.Size)
|
||||
im.imageRecords[image.ID].size = image.Size
|
||||
}
|
||||
|
||||
// Remove old images from our records.
|
||||
for image := range im.imageRecords {
|
||||
if !currentImages.Has(image) {
|
||||
glog.V(5).Infof("Image ID %s is no longer present; removing from imageRecords", image)
|
||||
klog.V(5).Infof("Image ID %s is no longer present; removing from imageRecords", image)
|
||||
delete(im.imageRecords, image)
|
||||
}
|
||||
}
|
||||
@ -282,7 +282,7 @@ func (im *realImageGCManager) GarbageCollect() error {
|
||||
}
|
||||
|
||||
if available > capacity {
|
||||
glog.Warningf("available %d is larger than capacity %d", available, capacity)
|
||||
klog.Warningf("available %d is larger than capacity %d", available, capacity)
|
||||
available = capacity
|
||||
}
|
||||
|
||||
@ -297,7 +297,7 @@ func (im *realImageGCManager) GarbageCollect() error {
|
||||
usagePercent := 100 - int(available*100/capacity)
|
||||
if usagePercent >= im.policy.HighThresholdPercent {
|
||||
amountToFree := capacity*int64(100-im.policy.LowThresholdPercent)/100 - available
|
||||
glog.Infof("[imageGCManager]: Disk usage on image filesystem is at %d%% which is over the high threshold (%d%%). Trying to free %d bytes", usagePercent, im.policy.HighThresholdPercent, amountToFree)
|
||||
klog.Infof("[imageGCManager]: Disk usage on image filesystem is at %d%% which is over the high threshold (%d%%). Trying to free %d bytes down to the low threshold (%d%%).", usagePercent, im.policy.HighThresholdPercent, amountToFree, im.policy.LowThresholdPercent)
|
||||
freed, err := im.freeSpace(amountToFree, time.Now())
|
||||
if err != nil {
|
||||
return err
|
||||
@ -314,7 +314,7 @@ func (im *realImageGCManager) GarbageCollect() error {
|
||||
}
|
||||
|
||||
func (im *realImageGCManager) DeleteUnusedImages() error {
|
||||
glog.Infof("attempting to delete unused images")
|
||||
klog.Infof("attempting to delete unused images")
|
||||
_, err := im.freeSpace(math.MaxInt64, time.Now())
|
||||
return err
|
||||
}
|
||||
@ -338,7 +338,7 @@ func (im *realImageGCManager) freeSpace(bytesToFree int64, freeTime time.Time) (
|
||||
images := make([]evictionInfo, 0, len(im.imageRecords))
|
||||
for image, record := range im.imageRecords {
|
||||
if isImageUsed(image, imagesInUse) {
|
||||
glog.V(5).Infof("Image ID %s is being used", image)
|
||||
klog.V(5).Infof("Image ID %s is being used", image)
|
||||
continue
|
||||
}
|
||||
images = append(images, evictionInfo{
|
||||
@ -352,10 +352,10 @@ func (im *realImageGCManager) freeSpace(bytesToFree int64, freeTime time.Time) (
|
||||
var deletionErrors []error
|
||||
spaceFreed := int64(0)
|
||||
for _, image := range images {
|
||||
glog.V(5).Infof("Evaluating image ID %s for possible garbage collection", image.id)
|
||||
klog.V(5).Infof("Evaluating image ID %s for possible garbage collection", image.id)
|
||||
// Images that are currently in used were given a newer lastUsed.
|
||||
if image.lastUsed.Equal(freeTime) || image.lastUsed.After(freeTime) {
|
||||
glog.V(5).Infof("Image ID %s has lastUsed=%v which is >= freeTime=%v, not eligible for garbage collection", image.id, image.lastUsed, freeTime)
|
||||
klog.V(5).Infof("Image ID %s has lastUsed=%v which is >= freeTime=%v, not eligible for garbage collection", image.id, image.lastUsed, freeTime)
|
||||
continue
|
||||
}
|
||||
|
||||
@ -363,12 +363,12 @@ func (im *realImageGCManager) freeSpace(bytesToFree int64, freeTime time.Time) (
|
||||
// In such a case, the image may have just been pulled down, and will be used by a container right away.
|
||||
|
||||
if freeTime.Sub(image.firstDetected) < im.policy.MinAge {
|
||||
glog.V(5).Infof("Image ID %s has age %v which is less than the policy's minAge of %v, not eligible for garbage collection", image.id, freeTime.Sub(image.firstDetected), im.policy.MinAge)
|
||||
klog.V(5).Infof("Image ID %s has age %v which is less than the policy's minAge of %v, not eligible for garbage collection", image.id, freeTime.Sub(image.firstDetected), im.policy.MinAge)
|
||||
continue
|
||||
}
|
||||
|
||||
// Remove image. Continue despite errors.
|
||||
glog.Infof("[imageGCManager]: Removing image %q to free %d bytes", image.id, image.size)
|
||||
klog.Infof("[imageGCManager]: Removing image %q to free %d bytes", image.id, image.size)
|
||||
err := im.runtime.RemoveImage(container.ImageSpec{Image: image.id})
|
||||
if err != nil {
|
||||
deletionErrors = append(deletionErrors, err)
|
||||
@ -401,9 +401,8 @@ func (ev byLastUsedAndDetected) Less(i, j int) bool {
|
||||
// Sort by last used, break ties by detected.
|
||||
if ev[i].lastUsed.Equal(ev[j].lastUsed) {
|
||||
return ev[i].firstDetected.Before(ev[j].firstDetected)
|
||||
} else {
|
||||
return ev[i].lastUsed.Before(ev[j].lastUsed)
|
||||
}
|
||||
return ev[i].lastUsed.Before(ev[j].lastUsed)
|
||||
}
|
||||
|
||||
func isImageUsed(imageID string, imagesInUse sets.String) bool {
|
||||
|
28
vendor/k8s.io/kubernetes/pkg/kubelet/images/image_manager.go
generated
vendored
28
vendor/k8s.io/kubernetes/pkg/kubelet/images/image_manager.go
generated
vendored
@ -20,10 +20,10 @@ import (
|
||||
"fmt"
|
||||
|
||||
dockerref "github.com/docker/distribution/reference"
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/api/core/v1"
|
||||
"k8s.io/client-go/tools/record"
|
||||
"k8s.io/client-go/util/flowcontrol"
|
||||
"k8s.io/klog"
|
||||
kubecontainer "k8s.io/kubernetes/pkg/kubelet/container"
|
||||
"k8s.io/kubernetes/pkg/kubelet/events"
|
||||
"k8s.io/kubernetes/pkg/util/parsers"
|
||||
@ -40,6 +40,7 @@ type imageManager struct {
|
||||
|
||||
var _ ImageManager = &imageManager{}
|
||||
|
||||
// NewImageManager instantiates a new ImageManager object.
|
||||
func NewImageManager(recorder record.EventRecorder, imageService kubecontainer.ImageService, imageBackOff *flowcontrol.Backoff, serialized bool, qps float32, burst int) ImageManager {
|
||||
imageService = throttleImagePulling(imageService, qps, burst)
|
||||
|
||||
@ -87,14 +88,14 @@ func (m *imageManager) EnsureImageExists(pod *v1.Pod, container *v1.Container, p
|
||||
logPrefix := fmt.Sprintf("%s/%s", pod.Name, container.Image)
|
||||
ref, err := kubecontainer.GenerateContainerRef(pod, container)
|
||||
if err != nil {
|
||||
glog.Errorf("Couldn't make a ref to pod %v, container %v: '%v'", pod.Name, container.Name, err)
|
||||
klog.Errorf("Couldn't make a ref to pod %v, container %v: '%v'", pod.Name, container.Name, err)
|
||||
}
|
||||
|
||||
// If the image contains no tag or digest, a default tag should be applied.
|
||||
image, err := applyDefaultImageTag(container.Image)
|
||||
if err != nil {
|
||||
msg := fmt.Sprintf("Failed to apply default image tag %q: %v", container.Image, err)
|
||||
m.logIt(ref, v1.EventTypeWarning, events.FailedToInspectImage, logPrefix, msg, glog.Warning)
|
||||
m.logIt(ref, v1.EventTypeWarning, events.FailedToInspectImage, logPrefix, msg, klog.Warning)
|
||||
return "", msg, ErrInvalidImageName
|
||||
}
|
||||
|
||||
@ -102,7 +103,7 @@ func (m *imageManager) EnsureImageExists(pod *v1.Pod, container *v1.Container, p
|
||||
imageRef, err := m.imageService.GetImageRef(spec)
|
||||
if err != nil {
|
||||
msg := fmt.Sprintf("Failed to inspect image %q: %v", container.Image, err)
|
||||
m.logIt(ref, v1.EventTypeWarning, events.FailedToInspectImage, logPrefix, msg, glog.Warning)
|
||||
m.logIt(ref, v1.EventTypeWarning, events.FailedToInspectImage, logPrefix, msg, klog.Warning)
|
||||
return "", msg, ErrImageInspect
|
||||
}
|
||||
|
||||
@ -110,36 +111,35 @@ func (m *imageManager) EnsureImageExists(pod *v1.Pod, container *v1.Container, p
|
||||
if !shouldPullImage(container, present) {
|
||||
if present {
|
||||
msg := fmt.Sprintf("Container image %q already present on machine", container.Image)
|
||||
m.logIt(ref, v1.EventTypeNormal, events.PulledImage, logPrefix, msg, glog.Info)
|
||||
m.logIt(ref, v1.EventTypeNormal, events.PulledImage, logPrefix, msg, klog.Info)
|
||||
return imageRef, "", nil
|
||||
} else {
|
||||
msg := fmt.Sprintf("Container image %q is not present with pull policy of Never", container.Image)
|
||||
m.logIt(ref, v1.EventTypeWarning, events.ErrImageNeverPullPolicy, logPrefix, msg, glog.Warning)
|
||||
return "", msg, ErrImageNeverPull
|
||||
}
|
||||
msg := fmt.Sprintf("Container image %q is not present with pull policy of Never", container.Image)
|
||||
m.logIt(ref, v1.EventTypeWarning, events.ErrImageNeverPullPolicy, logPrefix, msg, klog.Warning)
|
||||
return "", msg, ErrImageNeverPull
|
||||
}
|
||||
|
||||
backOffKey := fmt.Sprintf("%s_%s", pod.UID, container.Image)
|
||||
if m.backOff.IsInBackOffSinceUpdate(backOffKey, m.backOff.Clock.Now()) {
|
||||
msg := fmt.Sprintf("Back-off pulling image %q", container.Image)
|
||||
m.logIt(ref, v1.EventTypeNormal, events.BackOffPullImage, logPrefix, msg, glog.Info)
|
||||
m.logIt(ref, v1.EventTypeNormal, events.BackOffPullImage, logPrefix, msg, klog.Info)
|
||||
return "", msg, ErrImagePullBackOff
|
||||
}
|
||||
m.logIt(ref, v1.EventTypeNormal, events.PullingImage, logPrefix, fmt.Sprintf("pulling image %q", container.Image), glog.Info)
|
||||
m.logIt(ref, v1.EventTypeNormal, events.PullingImage, logPrefix, fmt.Sprintf("pulling image %q", container.Image), klog.Info)
|
||||
pullChan := make(chan pullResult)
|
||||
m.puller.pullImage(spec, pullSecrets, pullChan)
|
||||
imagePullResult := <-pullChan
|
||||
if imagePullResult.err != nil {
|
||||
m.logIt(ref, v1.EventTypeWarning, events.FailedToPullImage, logPrefix, fmt.Sprintf("Failed to pull image %q: %v", container.Image, imagePullResult.err), glog.Warning)
|
||||
m.logIt(ref, v1.EventTypeWarning, events.FailedToPullImage, logPrefix, fmt.Sprintf("Failed to pull image %q: %v", container.Image, imagePullResult.err), klog.Warning)
|
||||
m.backOff.Next(backOffKey, m.backOff.Clock.Now())
|
||||
if imagePullResult.err == RegistryUnavailable {
|
||||
if imagePullResult.err == ErrRegistryUnavailable {
|
||||
msg := fmt.Sprintf("image pull failed for %s because the registry is unavailable.", container.Image)
|
||||
return "", msg, imagePullResult.err
|
||||
}
|
||||
|
||||
return "", imagePullResult.err.Error(), ErrImagePull
|
||||
}
|
||||
m.logIt(ref, v1.EventTypeNormal, events.PulledImage, logPrefix, fmt.Sprintf("Successfully pulled image %q", container.Image), glog.Info)
|
||||
m.logIt(ref, v1.EventTypeNormal, events.PulledImage, logPrefix, fmt.Sprintf("Successfully pulled image %q", container.Image), klog.Info)
|
||||
m.backOff.GC()
|
||||
return imagePullResult.imageRef, "", nil
|
||||
}
|
||||
|
14
vendor/k8s.io/kubernetes/pkg/kubelet/images/types.go
generated
vendored
14
vendor/k8s.io/kubernetes/pkg/kubelet/images/types.go
generated
vendored
@ -23,22 +23,22 @@ import (
|
||||
)
|
||||
|
||||
var (
|
||||
// Container image pull failed, kubelet is backing off image pull
|
||||
// ErrImagePullBackOff - Container image pull failed, kubelet is backing off image pull
|
||||
ErrImagePullBackOff = errors.New("ImagePullBackOff")
|
||||
|
||||
// Unable to inspect image
|
||||
// ErrImageInspect - Unable to inspect image
|
||||
ErrImageInspect = errors.New("ImageInspectError")
|
||||
|
||||
// General image pull error
|
||||
// ErrImagePull - General image pull error
|
||||
ErrImagePull = errors.New("ErrImagePull")
|
||||
|
||||
// Required Image is absent on host and PullPolicy is NeverPullImage
|
||||
// ErrImageNeverPull - Required Image is absent on host and PullPolicy is NeverPullImage
|
||||
ErrImageNeverPull = errors.New("ErrImageNeverPull")
|
||||
|
||||
// Get http error when pulling image from registry
|
||||
RegistryUnavailable = errors.New("RegistryUnavailable")
|
||||
// ErrRegistryUnavailable - Get http error when pulling image from registry
|
||||
ErrRegistryUnavailable = errors.New("RegistryUnavailable")
|
||||
|
||||
// Unable to parse the image name.
|
||||
// ErrInvalidImageName - Unable to parse the image name.
|
||||
ErrInvalidImageName = errors.New("InvalidImageName")
|
||||
)
|
||||
|
||||
|
Reference in New Issue
Block a user