Add kubeletstatsv1alpha1 as the preferred alias for k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1

Change-Id: I05a8390a667dba307c09d95f836e08e0759c12ee
This commit is contained in:
Davanum Srinivas 2019-06-12 22:46:22 -04:00
parent 9f0050cb44
commit a6f8d575ba
No known key found for this signature in database
GPG Key ID: 80D83A796103BF59
9 changed files with 60 additions and 59 deletions

View File

@ -1,2 +1,3 @@
{ {
"k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1": "kubeletstatsv1alpha1"
} }

View File

@ -34,7 +34,7 @@ import (
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletstatsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
dockermetrics "k8s.io/kubernetes/pkg/kubelet/dockershim/metrics" dockermetrics "k8s.io/kubernetes/pkg/kubelet/dockershim/metrics"
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
"k8s.io/kubernetes/pkg/master/ports" "k8s.io/kubernetes/pkg/master/ports"
@ -284,7 +284,7 @@ func HighLatencyKubeletOperations(c clientset.Interface, threshold time.Duration
} }
// GetStatsSummary contacts kubelet for the container information. // GetStatsSummary contacts kubelet for the container information.
func GetStatsSummary(c clientset.Interface, nodeName string) (*stats.Summary, error) { func GetStatsSummary(c clientset.Interface, nodeName string) (*kubeletstatsv1alpha1.Summary, error) {
ctx, cancel := context.WithTimeout(context.Background(), SingleCallTimeout) ctx, cancel := context.WithTimeout(context.Background(), SingleCallTimeout)
defer cancel() defer cancel()
@ -300,7 +300,7 @@ func GetStatsSummary(c clientset.Interface, nodeName string) (*stats.Summary, er
return nil, err return nil, err
} }
summary := stats.Summary{} summary := kubeletstatsv1alpha1.Summary{}
err = json.Unmarshal(data, &summary) err = json.Unmarshal(data, &summary)
if err != nil { if err != nil {
return nil, err return nil, err
@ -355,7 +355,7 @@ func getOneTimeResourceUsageOnNode(
return nil, err return nil, err
} }
f := func(name string, newStats *stats.ContainerStats) *ContainerResourceUsage { f := func(name string, newStats *kubeletstatsv1alpha1.ContainerStats) *ContainerResourceUsage {
if newStats == nil || newStats.CPU == nil || newStats.Memory == nil { if newStats == nil || newStats.CPU == nil || newStats.Memory == nil {
return nil return nil
} }
@ -394,7 +394,7 @@ func getOneTimeResourceUsageOnNode(
return usageMap, nil return usageMap, nil
} }
func getNodeStatsSummary(c clientset.Interface, nodeName string) (*stats.Summary, error) { func getNodeStatsSummary(c clientset.Interface, nodeName string) (*kubeletstatsv1alpha1.Summary, error) {
data, err := c.CoreV1().RESTClient().Get(). data, err := c.CoreV1().RESTClient().Get().
Resource("nodes"). Resource("nodes").
SubResource("proxy"). SubResource("proxy").
@ -407,7 +407,7 @@ func getNodeStatsSummary(c clientset.Interface, nodeName string) (*stats.Summary
return nil, err return nil, err
} }
var summary *stats.Summary var summary *kubeletstatsv1alpha1.Summary
err = json.Unmarshal(data, &summary) err = json.Unmarshal(data, &summary)
if err != nil { if err != nil {
return nil, err return nil, err
@ -415,16 +415,16 @@ func getNodeStatsSummary(c clientset.Interface, nodeName string) (*stats.Summary
return summary, nil return summary, nil
} }
func getSystemContainerStats(summary *stats.Summary) map[string]*stats.ContainerStats { func getSystemContainerStats(summary *kubeletstatsv1alpha1.Summary) map[string]*kubeletstatsv1alpha1.ContainerStats {
statsList := summary.Node.SystemContainers statsList := summary.Node.SystemContainers
statsMap := make(map[string]*stats.ContainerStats) statsMap := make(map[string]*kubeletstatsv1alpha1.ContainerStats)
for i := range statsList { for i := range statsList {
statsMap[statsList[i].Name] = &statsList[i] statsMap[statsList[i].Name] = &statsList[i]
} }
// Create a root container stats using information available in // Create a root container stats using information available in
// stats.NodeStats. This is necessary since it is a different type. // stats.NodeStats. This is necessary since it is a different type.
statsMap[rootContainerName] = &stats.ContainerStats{ statsMap[rootContainerName] = &kubeletstatsv1alpha1.ContainerStats{
CPU: summary.Node.CPU, CPU: summary.Node.CPU,
Memory: summary.Node.Memory, Memory: summary.Node.Memory,
} }
@ -439,8 +439,8 @@ const (
func TargetContainers() []string { func TargetContainers() []string {
return []string{ return []string{
rootContainerName, rootContainerName,
stats.SystemContainerRuntime, kubeletstatsv1alpha1.SystemContainerRuntime,
stats.SystemContainerKubelet, kubeletstatsv1alpha1.SystemContainerKubelet,
} }
} }
@ -507,10 +507,10 @@ func GetKubeletHeapStats(c clientset.Interface, nodeName string) (string, error)
if errRaw != nil { if errRaw != nil {
return "", err return "", err
} }
stats := string(raw) kubeletstatsv1alpha1 := string(raw)
// Only dumping the runtime.MemStats numbers to avoid polluting the log. // Only dumping the runtime.MemStats numbers to avoid polluting the log.
numLines := 23 numLines := 23
lines := strings.Split(stats, "\n") lines := strings.Split(kubeletstatsv1alpha1, "\n")
return strings.Join(lines[len(lines)-numLines:], "\n"), nil return strings.Join(lines[len(lines)-numLines:], "\n"), nil
} }
@ -530,7 +530,7 @@ func PrintAllKubeletPods(c clientset.Interface, nodeName string) {
} }
} }
func computeContainerResourceUsage(name string, oldStats, newStats *stats.ContainerStats) *ContainerResourceUsage { func computeContainerResourceUsage(name string, oldStats, newStats *kubeletstatsv1alpha1.ContainerStats) *ContainerResourceUsage {
return &ContainerResourceUsage{ return &ContainerResourceUsage{
Name: name, Name: name,
Timestamp: newStats.CPU.Time.Time, Timestamp: newStats.CPU.Time.Time,
@ -570,7 +570,7 @@ func newResourceCollector(c clientset.Interface, nodeName string, containerNames
func (r *resourceCollector) Start() { func (r *resourceCollector) Start() {
r.stopCh = make(chan struct{}, 1) r.stopCh = make(chan struct{}, 1)
// Keep the last observed stats for comparison. // Keep the last observed stats for comparison.
oldStats := make(map[string]*stats.ContainerStats) oldStats := make(map[string]*kubeletstatsv1alpha1.ContainerStats)
go wait.Until(func() { r.collectStats(oldStats) }, r.pollingInterval, r.stopCh) go wait.Until(func() { r.collectStats(oldStats) }, r.pollingInterval, r.stopCh)
} }
@ -581,7 +581,7 @@ func (r *resourceCollector) Stop() {
// collectStats gets the latest stats from kubelet stats summary API, computes // collectStats gets the latest stats from kubelet stats summary API, computes
// the resource usage, and pushes it to the buffer. // the resource usage, and pushes it to the buffer.
func (r *resourceCollector) collectStats(oldStatsMap map[string]*stats.ContainerStats) { func (r *resourceCollector) collectStats(oldStatsMap map[string]*kubeletstatsv1alpha1.ContainerStats) {
summary, err := getNodeStatsSummary(r.client, r.node) summary, err := getNodeStatsSummary(r.client, r.node)
if err != nil { if err != nil {
e2elog.Logf("Error getting node stats summary on %q, err: %v", r.node, err) e2elog.Logf("Error getting node stats summary on %q, err: %v", r.node, err)
@ -612,15 +612,15 @@ func (r *resourceCollector) collectStats(oldStatsMap map[string]*stats.Container
func (r *resourceCollector) GetLatest() (ResourceUsagePerContainer, error) { func (r *resourceCollector) GetLatest() (ResourceUsagePerContainer, error) {
r.lock.RLock() r.lock.RLock()
defer r.lock.RUnlock() defer r.lock.RUnlock()
stats := make(ResourceUsagePerContainer) kubeletstatsv1alpha1 := make(ResourceUsagePerContainer)
for _, name := range r.containers { for _, name := range r.containers {
contStats, ok := r.buffers[name] contStats, ok := r.buffers[name]
if !ok || len(contStats) == 0 { if !ok || len(contStats) == 0 {
return nil, fmt.Errorf("Resource usage on node %q is not ready yet", r.node) return nil, fmt.Errorf("Resource usage on node %q is not ready yet", r.node)
} }
stats[name] = contStats[len(contStats)-1] kubeletstatsv1alpha1[name] = contStats[len(contStats)-1]
} }
return stats, nil return kubeletstatsv1alpha1, nil
} }
// Reset frees the stats and start over. // Reset frees the stats and start over.

View File

@ -24,7 +24,7 @@ import (
"k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/sets"
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletstatsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log" e2elog "k8s.io/kubernetes/test/e2e/framework/log"
testutils "k8s.io/kubernetes/test/utils" testutils "k8s.io/kubernetes/test/utils"
@ -234,24 +234,24 @@ var _ = SIGDescribe("Kubelet [Serial] [Slow]", func() {
{ {
podsPerNode: 0, podsPerNode: 0,
cpuLimits: framework.ContainersCPUSummary{ cpuLimits: framework.ContainersCPUSummary{
stats.SystemContainerKubelet: {0.50: 0.10, 0.95: 0.20}, kubeletstatsv1alpha1.SystemContainerKubelet: {0.50: 0.10, 0.95: 0.20},
stats.SystemContainerRuntime: {0.50: 0.10, 0.95: 0.20}, kubeletstatsv1alpha1.SystemContainerRuntime: {0.50: 0.10, 0.95: 0.20},
}, },
memLimits: framework.ResourceUsagePerContainer{ memLimits: framework.ResourceUsagePerContainer{
stats.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 200 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 200 * 1024 * 1024},
// The detail can be found at https://github.com/kubernetes/kubernetes/issues/28384#issuecomment-244158892 // The detail can be found at https://github.com/kubernetes/kubernetes/issues/28384#issuecomment-244158892
stats.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 125 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 125 * 1024 * 1024},
}, },
}, },
{ {
cpuLimits: framework.ContainersCPUSummary{ cpuLimits: framework.ContainersCPUSummary{
stats.SystemContainerKubelet: {0.50: 0.35, 0.95: 0.50}, kubeletstatsv1alpha1.SystemContainerKubelet: {0.50: 0.35, 0.95: 0.50},
stats.SystemContainerRuntime: {0.50: 0.10, 0.95: 0.50}, kubeletstatsv1alpha1.SystemContainerRuntime: {0.50: 0.10, 0.95: 0.50},
}, },
podsPerNode: 100, podsPerNode: 100,
memLimits: framework.ResourceUsagePerContainer{ memLimits: framework.ResourceUsagePerContainer{
stats.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 300 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 300 * 1024 * 1024},
stats.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 350 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 350 * 1024 * 1024},
}, },
}, },
} }

View File

@ -32,7 +32,7 @@ import (
"k8s.io/apimachinery/pkg/watch" "k8s.io/apimachinery/pkg/watch"
"k8s.io/client-go/tools/cache" "k8s.io/client-go/tools/cache"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletstatsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
kubemetrics "k8s.io/kubernetes/pkg/kubelet/metrics" kubemetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log" e2elog "k8s.io/kubernetes/test/e2e/framework/log"
@ -77,12 +77,12 @@ var _ = framework.KubeDescribe("Density [Serial] [Slow]", func() {
podsNr: 10, podsNr: 10,
interval: 0 * time.Millisecond, interval: 0 * time.Millisecond,
cpuLimits: framework.ContainersCPUSummary{ cpuLimits: framework.ContainersCPUSummary{
stats.SystemContainerKubelet: {0.50: 0.30, 0.95: 0.50}, kubeletstatsv1alpha1.SystemContainerKubelet: {0.50: 0.30, 0.95: 0.50},
stats.SystemContainerRuntime: {0.50: 0.40, 0.95: 0.60}, kubeletstatsv1alpha1.SystemContainerRuntime: {0.50: 0.40, 0.95: 0.60},
}, },
memLimits: framework.ResourceUsagePerContainer{ memLimits: framework.ResourceUsagePerContainer{
stats.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 100 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 100 * 1024 * 1024},
stats.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 500 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 500 * 1024 * 1024},
}, },
// percentile limit of single pod startup latency // percentile limit of single pod startup latency
podStartupLimits: framework.LatencyMetric{ podStartupLimits: framework.LatencyMetric{
@ -224,12 +224,12 @@ var _ = framework.KubeDescribe("Density [Serial] [Slow]", func() {
podsNr: 10, podsNr: 10,
bgPodsNr: 50, bgPodsNr: 50,
cpuLimits: framework.ContainersCPUSummary{ cpuLimits: framework.ContainersCPUSummary{
stats.SystemContainerKubelet: {0.50: 0.30, 0.95: 0.50}, kubeletstatsv1alpha1.SystemContainerKubelet: {0.50: 0.30, 0.95: 0.50},
stats.SystemContainerRuntime: {0.50: 0.40, 0.95: 0.60}, kubeletstatsv1alpha1.SystemContainerRuntime: {0.50: 0.40, 0.95: 0.60},
}, },
memLimits: framework.ResourceUsagePerContainer{ memLimits: framework.ResourceUsagePerContainer{
stats.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 100 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 100 * 1024 * 1024},
stats.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 500 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 500 * 1024 * 1024},
}, },
podStartupLimits: framework.LatencyMetric{ podStartupLimits: framework.LatencyMetric{
Perc50: 5000 * time.Millisecond, Perc50: 5000 * time.Millisecond,

View File

@ -30,7 +30,7 @@ import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/fields" "k8s.io/apimachinery/pkg/fields"
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletstatsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/eviction" "k8s.io/kubernetes/pkg/kubelet/eviction"
evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api" evictionapi "k8s.io/kubernetes/pkg/kubelet/eviction/api"
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
@ -751,7 +751,7 @@ func logMemoryMetrics() {
e2elog.Logf("Node.Memory.WorkingSetBytes: %d, Node.Memory.AvailableBytes: %d", *summary.Node.Memory.WorkingSetBytes, *summary.Node.Memory.AvailableBytes) e2elog.Logf("Node.Memory.WorkingSetBytes: %d, Node.Memory.AvailableBytes: %d", *summary.Node.Memory.WorkingSetBytes, *summary.Node.Memory.AvailableBytes)
} }
for _, sysContainer := range summary.Node.SystemContainers { for _, sysContainer := range summary.Node.SystemContainers {
if sysContainer.Name == stats.SystemContainerPods && sysContainer.Memory != nil && sysContainer.Memory.WorkingSetBytes != nil && sysContainer.Memory.AvailableBytes != nil { if sysContainer.Name == kubeletstatsv1alpha1.SystemContainerPods && sysContainer.Memory != nil && sysContainer.Memory.WorkingSetBytes != nil && sysContainer.Memory.AvailableBytes != nil {
e2elog.Logf("Allocatable.Memory.WorkingSetBytes: %d, Allocatable.Memory.AvailableBytes: %d", *sysContainer.Memory.WorkingSetBytes, *sysContainer.Memory.AvailableBytes) e2elog.Logf("Allocatable.Memory.WorkingSetBytes: %d, Allocatable.Memory.AvailableBytes: %d", *sysContainer.Memory.WorkingSetBytes, *sysContainer.Memory.AvailableBytes)
} }
} }
@ -776,7 +776,7 @@ func logPidMetrics() {
} }
} }
func eventuallyGetSummary() (s *stats.Summary) { func eventuallyGetSummary() (s *kubeletstatsv1alpha1.Summary) {
Eventually(func() error { Eventually(func() error {
summary, err := getNodeSummary() summary, err := getNodeSummary()
if err != nil { if err != nil {

View File

@ -40,7 +40,7 @@ import (
"k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/uuid" "k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apimachinery/pkg/util/wait" "k8s.io/apimachinery/pkg/util/wait"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletstatsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/pkg/util/procfs" "k8s.io/kubernetes/pkg/util/procfs"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log" e2elog "k8s.io/kubernetes/test/e2e/framework/log"
@ -91,8 +91,8 @@ func (r *ResourceCollector) Start() {
runtimeContainer, err2 := getContainerNameForProcess(framework.TestContext.ContainerRuntimeProcessName, framework.TestContext.ContainerRuntimePidFile) runtimeContainer, err2 := getContainerNameForProcess(framework.TestContext.ContainerRuntimeProcessName, framework.TestContext.ContainerRuntimePidFile)
if err1 == nil && err2 == nil { if err1 == nil && err2 == nil {
systemContainers = map[string]string{ systemContainers = map[string]string{
stats.SystemContainerKubelet: kubeletContainer, kubeletstatsv1alpha1.SystemContainerKubelet: kubeletContainer,
stats.SystemContainerRuntime: runtimeContainer, kubeletstatsv1alpha1.SystemContainerRuntime: runtimeContainer,
} }
} else { } else {
framework.Failf("Failed to get runtime container name in test-e2e-node resource collector.") framework.Failf("Failed to get runtime container name in test-e2e-node resource collector.")
@ -189,15 +189,15 @@ func computeContainerResourceUsage(name string, oldStats, newStats *cadvisorapiv
func (r *ResourceCollector) GetLatest() (framework.ResourceUsagePerContainer, error) { func (r *ResourceCollector) GetLatest() (framework.ResourceUsagePerContainer, error) {
r.lock.RLock() r.lock.RLock()
defer r.lock.RUnlock() defer r.lock.RUnlock()
stats := make(framework.ResourceUsagePerContainer) kubeletstatsv1alpha1 := make(framework.ResourceUsagePerContainer)
for key, name := range systemContainers { for key, name := range systemContainers {
contStats, ok := r.buffers[name] contStats, ok := r.buffers[name]
if !ok || len(contStats) == 0 { if !ok || len(contStats) == 0 {
return nil, fmt.Errorf("No resource usage data for %s container (%s)", key, name) return nil, fmt.Errorf("No resource usage data for %s container (%s)", key, name)
} }
stats[key] = contStats[len(contStats)-1] kubeletstatsv1alpha1[key] = contStats[len(contStats)-1]
} }
return stats, nil return kubeletstatsv1alpha1, nil
} }
type resourceUsageByCPU []*framework.ContainerResourceUsage type resourceUsageByCPU []*framework.ContainerResourceUsage

View File

@ -24,7 +24,7 @@ import (
"time" "time"
clientset "k8s.io/client-go/kubernetes" clientset "k8s.io/client-go/kubernetes"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletstatsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log" e2elog "k8s.io/kubernetes/test/e2e/framework/log"
imageutils "k8s.io/kubernetes/test/utils/image" imageutils "k8s.io/kubernetes/test/utils/image"
@ -69,12 +69,12 @@ var _ = SIGDescribe("Resource-usage [Serial] [Slow]", func() {
{ {
podsNr: 10, podsNr: 10,
cpuLimits: framework.ContainersCPUSummary{ cpuLimits: framework.ContainersCPUSummary{
stats.SystemContainerKubelet: {0.50: 0.30, 0.95: 0.35}, kubeletstatsv1alpha1.SystemContainerKubelet: {0.50: 0.30, 0.95: 0.35},
stats.SystemContainerRuntime: {0.50: 0.30, 0.95: 0.40}, kubeletstatsv1alpha1.SystemContainerRuntime: {0.50: 0.30, 0.95: 0.40},
}, },
memLimits: framework.ResourceUsagePerContainer{ memLimits: framework.ResourceUsagePerContainer{
stats.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 200 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerKubelet: &framework.ContainerResourceUsage{MemoryRSSInBytes: 200 * 1024 * 1024},
stats.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 400 * 1024 * 1024}, kubeletstatsv1alpha1.SystemContainerRuntime: &framework.ContainerResourceUsage{MemoryRSSInBytes: 400 * 1024 * 1024},
}, },
}, },
} }

View File

@ -26,7 +26,7 @@ import (
"k8s.io/api/core/v1" "k8s.io/api/core/v1"
"k8s.io/apimachinery/pkg/api/resource" "k8s.io/apimachinery/pkg/api/resource"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletstatsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/test/e2e/framework" "k8s.io/kubernetes/test/e2e/framework"
e2elog "k8s.io/kubernetes/test/e2e/framework/log" e2elog "k8s.io/kubernetes/test/e2e/framework/log"
"k8s.io/kubernetes/test/e2e/framework/volume" "k8s.io/kubernetes/test/e2e/framework/volume"
@ -382,13 +382,13 @@ func getSummaryTestPods(f *framework.Framework, numRestarts int32, names ...stri
// Mapping function for gstruct.MatchAllElements // Mapping function for gstruct.MatchAllElements
func summaryObjectID(element interface{}) string { func summaryObjectID(element interface{}) string {
switch el := element.(type) { switch el := element.(type) {
case stats.PodStats: case kubeletstatsv1alpha1.PodStats:
return fmt.Sprintf("%s::%s", el.PodRef.Namespace, el.PodRef.Name) return fmt.Sprintf("%s::%s", el.PodRef.Namespace, el.PodRef.Name)
case stats.ContainerStats: case kubeletstatsv1alpha1.ContainerStats:
return el.Name return el.Name
case stats.VolumeStats: case kubeletstatsv1alpha1.VolumeStats:
return el.Name return el.Name
case stats.UserDefinedMetric: case kubeletstatsv1alpha1.UserDefinedMetric:
return el.Name return el.Name
default: default:
framework.Failf("Unknown type: %T", el) framework.Failf("Unknown type: %T", el)

View File

@ -43,7 +43,7 @@ import (
kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config" kubeletconfig "k8s.io/kubernetes/pkg/kubelet/apis/config"
"k8s.io/kubernetes/pkg/kubelet/apis/podresources" "k8s.io/kubernetes/pkg/kubelet/apis/podresources"
podresourcesapi "k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1" podresourcesapi "k8s.io/kubernetes/pkg/kubelet/apis/podresources/v1alpha1"
stats "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1" kubeletstatsv1alpha1 "k8s.io/kubernetes/pkg/kubelet/apis/stats/v1alpha1"
"k8s.io/kubernetes/pkg/kubelet/cm" "k8s.io/kubernetes/pkg/kubelet/cm"
kubeletconfigcodec "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec" kubeletconfigcodec "k8s.io/kubernetes/pkg/kubelet/kubeletconfig/util/codec"
kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics" kubeletmetrics "k8s.io/kubernetes/pkg/kubelet/metrics"
@ -75,7 +75,7 @@ const (
defaultPodResourcesMaxSize = 1024 * 1024 * 16 // 16 Mb defaultPodResourcesMaxSize = 1024 * 1024 * 16 // 16 Mb
) )
func getNodeSummary() (*stats.Summary, error) { func getNodeSummary() (*kubeletstatsv1alpha1.Summary, error) {
req, err := http.NewRequest("GET", *kubeletAddress+"/stats/summary", nil) req, err := http.NewRequest("GET", *kubeletAddress+"/stats/summary", nil)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to build http request: %v", err) return nil, fmt.Errorf("failed to build http request: %v", err)
@ -95,7 +95,7 @@ func getNodeSummary() (*stats.Summary, error) {
} }
decoder := json.NewDecoder(strings.NewReader(string(contentsBytes))) decoder := json.NewDecoder(strings.NewReader(string(contentsBytes)))
summary := stats.Summary{} summary := kubeletstatsv1alpha1.Summary{}
err = decoder.Decode(&summary) err = decoder.Decode(&summary)
if err != nil { if err != nil {
return nil, fmt.Errorf("failed to parse /stats/summary to go struct: %+v", resp) return nil, fmt.Errorf("failed to parse /stats/summary to go struct: %+v", resp)