Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
e31eff09
Commit
e31eff09
authored
Jun 28, 2018
by
Mike Dame
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Update metrics API to include autoscaling/v2beta2 changes
parent
c7102ee5
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
174 additions
and
69 deletions
+174
-69
Godeps.json
staging/src/k8s.io/metrics/Godeps/Godeps.json
+4
-0
BUILD
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD
+1
-0
BUILD
.../src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD
+4
-6
install.go
...k8s.io/metrics/pkg/apis/custom_metrics/install/install.go
+3
-1
BUILD
.../src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/BUILD
+1
-0
conversion.go
....io/metrics/pkg/apis/custom_metrics/v1beta1/conversion.go
+48
-0
register.go
...8s.io/metrics/pkg/apis/custom_metrics/v1beta1/register.go
+1
-1
zz_generated.conversion.go
...kg/apis/custom_metrics/v1beta1/zz_generated.conversion.go
+33
-3
zz_generated.deepcopy.go
.../metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go
+17
-0
BUILD
staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD
+6
-9
client.go
...ng/src/k8s.io/metrics/pkg/client/custom_metrics/client.go
+33
-23
BUILD
...g/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD
+4
-7
fake_client.go
....io/metrics/pkg/client/custom_metrics/fake/fake_client.go
+15
-15
interfaces.go
...rc/k8s.io/metrics/pkg/client/custom_metrics/interfaces.go
+3
-3
interfaces.go
.../k8s.io/metrics/pkg/client/external_metrics/interfaces.go
+1
-1
No files found.
staging/src/k8s.io/metrics/Godeps/Godeps.json
View file @
e31eff09
...
...
@@ -195,6 +195,10 @@
"Rev"
:
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"ImportPath"
:
"k8s.io/api/autoscaling/v2beta2"
,
"Rev"
:
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
{
"ImportPath"
:
"k8s.io/api/batch/v1"
,
"Rev"
:
"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
...
...
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/BUILD
View file @
e31eff09
...
...
@@ -37,6 +37,7 @@ filegroup(
":package-srcs",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install:all-srcs",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1:all-srcs",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2:all-srcs",
],
tags = ["automanaged"],
)
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/BUILD
View file @
e31eff09
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["install.go"],
importmap = "k8s.io/kubernetes/vendor/k8s.io/metrics/pkg/apis/custom_metrics/install",
importpath = "k8s.io/metrics/pkg/apis/custom_metrics/install",
visibility = ["//visibility:public"],
deps = [
"//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/util/runtime:go_default_library",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics:go_default_library",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1:go_default_library",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2:go_default_library",
],
)
...
...
@@ -29,4 +26,5 @@ filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/install/install.go
View file @
e31eff09
...
...
@@ -23,11 +23,13 @@ import (
utilruntime
"k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/metrics/pkg/apis/custom_metrics"
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta1"
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta2"
)
// Install registers the API group and adds types to a scheme
func
Install
(
scheme
*
runtime
.
Scheme
)
{
utilruntime
.
Must
(
custom_metrics
.
AddToScheme
(
scheme
))
utilruntime
.
Must
(
v1beta2
.
AddToScheme
(
scheme
))
utilruntime
.
Must
(
v1beta1
.
AddToScheme
(
scheme
))
utilruntime
.
Must
(
scheme
.
SetVersionPriority
(
v1beta1
.
SchemeGroupVersion
))
utilruntime
.
Must
(
scheme
.
SetVersionPriority
(
v1beta1
.
SchemeGroupVersion
,
v1beta2
.
SchemeGroupVersion
))
}
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/BUILD
View file @
e31eff09
...
...
@@ -8,6 +8,7 @@ load(
go_library(
name = "go_default_library",
srcs = [
"conversion.go",
"doc.go",
"generated.pb.go",
"register.go",
...
...
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/conversion.go
0 → 100644
View file @
e31eff09
/*
Copyright 2018 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
v1beta1
import
(
"k8s.io/apimachinery/pkg/conversion"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/metrics/pkg/apis/custom_metrics"
)
func
addConversionFuncs
(
scheme
*
runtime
.
Scheme
)
error
{
// Add non-generated conversion functions
err
:=
scheme
.
AddConversionFuncs
(
Convert_v1beta1_MetricValue_To_custom_metrics_MetricValue
,
Convert_custom_metrics_MetricValue_To_v1beta1_MetricValue
,
)
if
err
!=
nil
{
return
err
}
return
nil
}
func
Convert_v1beta1_MetricValue_To_custom_metrics_MetricValue
(
in
*
MetricValue
,
out
*
custom_metrics
.
MetricValue
,
s
conversion
.
Scope
)
error
{
out
.
Metric
.
Name
=
in
.
MetricName
out
.
Metric
.
Selector
=
in
.
Selector
return
nil
}
func
Convert_custom_metrics_MetricValue_To_v1beta1_MetricValue
(
in
*
custom_metrics
.
MetricValue
,
out
*
MetricValue
,
s
conversion
.
Scope
)
error
{
out
.
MetricName
=
in
.
Metric
.
Name
out
.
Selector
=
in
.
Metric
.
Selector
return
nil
}
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/register.go
View file @
e31eff09
...
...
@@ -34,7 +34,7 @@ func Resource(resource string) schema.GroupResource {
}
var
(
SchemeBuilder
=
runtime
.
NewSchemeBuilder
(
addKnownTypes
)
SchemeBuilder
=
runtime
.
NewSchemeBuilder
(
addKnownTypes
,
addConversionFuncs
)
localSchemeBuilder
=
&
SchemeBuilder
AddToScheme
=
localSchemeBuilder
.
AddToScheme
)
...
...
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1/zz_generated.conversion.go
View file @
e31eff09
...
...
@@ -63,30 +63,35 @@ func autoConvert_v1beta1_MetricValue_To_custom_metrics_MetricValue(in *MetricVal
if
err
:=
s
.
Convert
(
&
in
.
DescribedObject
,
&
out
.
DescribedObject
,
0
);
err
!=
nil
{
return
err
}
out
.
MetricName
=
in
.
MetricNam
e
// WARNING: in.MetricName requires manual conversion: does not exist in peer-typ
e
out
.
Timestamp
=
in
.
Timestamp
out
.
WindowSeconds
=
(
*
int64
)(
unsafe
.
Pointer
(
in
.
WindowSeconds
))
out
.
Value
=
in
.
Value
return
nil
}
<<<<<<<
HEAD
// Convert_v1beta1_MetricValue_To_custom_metrics_MetricValue is an autogenerated conversion function.
func
Convert_v1beta1_MetricValue_To_custom_metrics_MetricValue
(
in
*
MetricValue
,
out
*
custommetrics
.
MetricValue
,
s
conversion
.
Scope
)
error
{
return
autoConvert_v1beta1_MetricValue_To_custom_metrics_MetricValue
(
in
,
out
,
s
)
}
func
autoConvert_custom_metrics_MetricValue_To_v1beta1_MetricValue
(
in
*
custommetrics
.
MetricValue
,
out
*
MetricValue
,
s
conversion
.
Scope
)
error
{
=======
func
autoConvert_custom_metrics_MetricValue_To_v1beta1_MetricValue
(
in
*
custom_metrics
.
MetricValue
,
out
*
MetricValue
,
s
conversion
.
Scope
)
error
{
>>>>>>>
Update
metrics
API
to
include
autoscaling
/
v2beta2
changes
// TODO: Inefficient conversion - can we improve it?
if
err
:=
s
.
Convert
(
&
in
.
DescribedObject
,
&
out
.
DescribedObject
,
0
);
err
!=
nil
{
return
err
}
out
.
MetricName
=
in
.
MetricNam
e
// WARNING: in.Metric requires manual conversion: does not exist in peer-typ
e
out
.
Timestamp
=
in
.
Timestamp
out
.
WindowSeconds
=
(
*
int64
)(
unsafe
.
Pointer
(
in
.
WindowSeconds
))
out
.
Value
=
in
.
Value
return
nil
}
<<<<<<<
HEAD
// Convert_custom_metrics_MetricValue_To_v1beta1_MetricValue is an autogenerated conversion function.
func
Convert_custom_metrics_MetricValue_To_v1beta1_MetricValue
(
in
*
custommetrics
.
MetricValue
,
out
*
MetricValue
,
s
conversion
.
Scope
)
error
{
return
autoConvert_custom_metrics_MetricValue_To_v1beta1_MetricValue
(
in
,
out
,
s
)
...
...
@@ -95,6 +100,21 @@ func Convert_custom_metrics_MetricValue_To_v1beta1_MetricValue(in *custommetrics
func
autoConvert_v1beta1_MetricValueList_To_custom_metrics_MetricValueList
(
in
*
MetricValueList
,
out
*
custommetrics
.
MetricValueList
,
s
conversion
.
Scope
)
error
{
out
.
ListMeta
=
in
.
ListMeta
out
.
Items
=
*
(
*
[]
custommetrics
.
MetricValue
)(
unsafe
.
Pointer
(
&
in
.
Items
))
=======
func
autoConvert_v1beta1_MetricValueList_To_custom_metrics_MetricValueList
(
in
*
MetricValueList
,
out
*
custom_metrics
.
MetricValueList
,
s
conversion
.
Scope
)
error
{
out
.
ListMeta
=
in
.
ListMeta
if
in
.
Items
!=
nil
{
in
,
out
:=
&
in
.
Items
,
&
out
.
Items
*
out
=
make
([]
custom_metrics
.
MetricValue
,
len
(
*
in
))
for
i
:=
range
*
in
{
if
err
:=
Convert_v1beta1_MetricValue_To_custom_metrics_MetricValue
(
&
(
*
in
)[
i
],
&
(
*
out
)[
i
],
s
);
err
!=
nil
{
return
err
}
}
}
else
{
out
.
Items
=
nil
}
>>>>>>>
Update
metrics
API
to
include
autoscaling
/
v2beta2
changes
return
nil
}
...
...
@@ -105,7 +125,17 @@ func Convert_v1beta1_MetricValueList_To_custom_metrics_MetricValueList(in *Metri
func
autoConvert_custom_metrics_MetricValueList_To_v1beta1_MetricValueList
(
in
*
custommetrics
.
MetricValueList
,
out
*
MetricValueList
,
s
conversion
.
Scope
)
error
{
out
.
ListMeta
=
in
.
ListMeta
out
.
Items
=
*
(
*
[]
MetricValue
)(
unsafe
.
Pointer
(
&
in
.
Items
))
if
in
.
Items
!=
nil
{
in
,
out
:=
&
in
.
Items
,
&
out
.
Items
*
out
=
make
([]
MetricValue
,
len
(
*
in
))
for
i
:=
range
*
in
{
if
err
:=
Convert_custom_metrics_MetricValue_To_v1beta1_MetricValue
(
&
(
*
in
)[
i
],
&
(
*
out
)[
i
],
s
);
err
!=
nil
{
return
err
}
}
}
else
{
out
.
Items
=
nil
}
return
nil
}
...
...
staging/src/k8s.io/metrics/pkg/apis/custom_metrics/zz_generated.deepcopy.go
View file @
e31eff09
...
...
@@ -25,10 +25,27 @@ import (
)
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func
(
in
*
MetricIdent
)
DeepCopyInto
(
out
*
MetricIdent
)
{
*
out
=
*
in
return
}
// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MetricIdent.
func
(
in
*
MetricIdent
)
DeepCopy
()
*
MetricIdent
{
if
in
==
nil
{
return
nil
}
out
:=
new
(
MetricIdent
)
in
.
DeepCopyInto
(
out
)
return
out
}
// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.
func
(
in
*
MetricValue
)
DeepCopyInto
(
out
*
MetricValue
)
{
*
out
=
*
in
out
.
TypeMeta
=
in
.
TypeMeta
out
.
DescribedObject
=
in
.
DescribedObject
out
.
Metric
=
in
.
Metric
in
.
Timestamp
.
DeepCopyInto
(
&
out
.
Timestamp
)
if
in
.
WindowSeconds
!=
nil
{
in
,
out
:=
&
in
.
WindowSeconds
,
&
out
.
WindowSeconds
...
...
staging/src/k8s.io/metrics/pkg/client/custom_metrics/BUILD
View file @
e31eff09
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
...
...
@@ -13,16 +8,16 @@ go_library(
],
importmap = "k8s.io/kubernetes/vendor/k8s.io/metrics/pkg/client/custom_metrics",
importpath = "k8s.io/metrics/pkg/client/custom_metrics",
visibility = ["//visibility:public"],
deps = [
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/serializer:go_default_library",
"//staging/src/k8s.io/client-go/kubernetes/scheme:go_default_library",
"//staging/src/k8s.io/client-go/rest:go_default_library",
"//staging/src/k8s.io/client-go/util/flowcontrol:go_default_library",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta1:go_default_library",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta2:go_default_library",
"//staging/src/k8s.io/metrics/pkg/client/custom_metrics/scheme:go_default_library",
],
)
...
...
@@ -38,6 +33,8 @@ filegroup(
srcs = [
":package-srcs",
"//staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake:all-srcs",
"//staging/src/k8s.io/metrics/pkg/client/custom_metrics/scheme:all-srcs",
],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
staging/src/k8s.io/metrics/pkg/client/custom_metrics/client.go
View file @
e31eff09
...
...
@@ -20,14 +20,13 @@ import (
"fmt"
"k8s.io/apimachinery/pkg/api/meta"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime/schema"
serializer
"k8s.io/apimachinery/pkg/runtime/serializer"
"k8s.io/client-go/kubernetes/scheme"
"k8s.io/client-go/rest"
"k8s.io/client-go/util/flowcontrol"
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta1"
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta2"
"k8s.io/metrics/pkg/client/custom_metrics/scheme"
)
type
customMetricsClient
struct
{
...
...
@@ -50,7 +49,7 @@ func NewForConfig(c *rest.Config) (CustomMetricsClient, error) {
if
configShallowCopy
.
UserAgent
==
""
{
configShallowCopy
.
UserAgent
=
rest
.
DefaultKubernetesUserAgent
()
}
configShallowCopy
.
GroupVersion
=
&
v1beta
1
.
SchemeGroupVersion
configShallowCopy
.
GroupVersion
=
&
v1beta
2
.
SchemeGroupVersion
configShallowCopy
.
NegotiatedSerializer
=
serializer
.
DirectCodecFactory
{
CodecFactory
:
scheme
.
Codecs
}
client
,
err
:=
rest
.
RESTClientFor
(
&
configShallowCopy
)
...
...
@@ -112,12 +111,15 @@ type rootScopedMetrics struct {
client
*
customMetricsClient
}
func
(
m
*
rootScopedMetrics
)
getForNamespace
(
namespace
string
,
metricName
string
)
(
*
v1beta1
.
MetricValue
,
error
)
{
res
:=
&
v1beta
1
.
MetricValueList
{}
func
(
m
*
rootScopedMetrics
)
getForNamespace
(
namespace
string
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValue
,
error
)
{
res
:=
&
v1beta
2
.
MetricValueList
{}
err
:=
m
.
client
.
client
.
Get
()
.
Resource
(
"metrics"
)
.
Namespace
(
namespace
)
.
Name
(
metricName
)
.
VersionedParams
(
&
v1beta2
.
MetricListOptions
{
MetricLabelSelector
:
metricSelector
.
String
(),
},
scheme
.
ParameterCodec
)
.
Do
()
.
Into
(
res
)
...
...
@@ -132,10 +134,10 @@ func (m *rootScopedMetrics) getForNamespace(namespace string, metricName string)
return
&
res
.
Items
[
0
],
nil
}
func
(
m
*
rootScopedMetrics
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
)
(
*
v1beta1
.
MetricValue
,
error
)
{
func
(
m
*
rootScopedMetrics
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValue
,
error
)
{
// handle namespace separately
if
groupKind
.
Kind
==
"Namespace"
&&
groupKind
.
Group
==
""
{
return
m
.
getForNamespace
(
name
,
metricName
)
return
m
.
getForNamespace
(
name
,
metricName
,
metricSelector
)
}
resourceName
,
err
:=
m
.
client
.
qualResourceForKind
(
groupKind
)
...
...
@@ -143,11 +145,14 @@ func (m *rootScopedMetrics) GetForObject(groupKind schema.GroupKind, name string
return
nil
,
err
}
res
:=
&
v1beta
1
.
MetricValueList
{}
res
:=
&
v1beta
2
.
MetricValueList
{}
err
=
m
.
client
.
client
.
Get
()
.
Resource
(
resourceName
)
.
Name
(
name
)
.
SubResource
(
metricName
)
.
VersionedParams
(
&
v1beta2
.
MetricListOptions
{
MetricLabelSelector
:
metricSelector
.
String
(),
},
scheme
.
ParameterCodec
)
.
Do
()
.
Into
(
res
)
...
...
@@ -162,7 +167,7 @@ func (m *rootScopedMetrics) GetForObject(groupKind schema.GroupKind, name string
return
&
res
.
Items
[
0
],
nil
}
func
(
m
*
rootScopedMetrics
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
)
(
*
v1beta1
.
MetricValueList
,
error
)
{
func
(
m
*
rootScopedMetrics
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValueList
,
error
)
{
// we can't wildcard-fetch for namespaces
if
groupKind
.
Kind
==
"Namespace"
&&
groupKind
.
Group
==
""
{
return
nil
,
fmt
.
Errorf
(
"cannot fetch metrics for multiple namespaces at once"
)
...
...
@@ -173,14 +178,15 @@ func (m *rootScopedMetrics) GetForObjects(groupKind schema.GroupKind, selector l
return
nil
,
err
}
res
:=
&
v1beta
1
.
MetricValueList
{}
res
:=
&
v1beta
2
.
MetricValueList
{}
err
=
m
.
client
.
client
.
Get
()
.
Resource
(
resourceName
)
.
Name
(
v1beta
1
.
AllObjects
)
.
Name
(
v1beta
2
.
AllObjects
)
.
SubResource
(
metricName
)
.
VersionedParams
(
&
metav1
.
ListOptions
{
LabelSelector
:
selector
.
String
(),
},
metav1
.
ParameterCodec
)
.
VersionedParams
(
&
v1beta2
.
MetricListOptions
{
LabelSelector
:
selector
.
String
(),
MetricLabelSelector
:
metricSelector
.
String
(),
},
scheme
.
ParameterCodec
)
.
Do
()
.
Into
(
res
)
...
...
@@ -196,18 +202,21 @@ type namespacedMetrics struct {
namespace
string
}
func
(
m
*
namespacedMetrics
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
)
(
*
v1beta1
.
MetricValue
,
error
)
{
func
(
m
*
namespacedMetrics
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValue
,
error
)
{
resourceName
,
err
:=
m
.
client
.
qualResourceForKind
(
groupKind
)
if
err
!=
nil
{
return
nil
,
err
}
res
:=
&
v1beta
1
.
MetricValueList
{}
res
:=
&
v1beta
2
.
MetricValueList
{}
err
=
m
.
client
.
client
.
Get
()
.
Resource
(
resourceName
)
.
Namespace
(
m
.
namespace
)
.
Name
(
name
)
.
SubResource
(
metricName
)
.
VersionedParams
(
&
v1beta2
.
MetricListOptions
{
MetricLabelSelector
:
metricSelector
.
String
(),
},
scheme
.
ParameterCodec
)
.
Do
()
.
Into
(
res
)
...
...
@@ -222,21 +231,22 @@ func (m *namespacedMetrics) GetForObject(groupKind schema.GroupKind, name string
return
&
res
.
Items
[
0
],
nil
}
func
(
m
*
namespacedMetrics
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
)
(
*
v1beta1
.
MetricValueList
,
error
)
{
func
(
m
*
namespacedMetrics
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValueList
,
error
)
{
resourceName
,
err
:=
m
.
client
.
qualResourceForKind
(
groupKind
)
if
err
!=
nil
{
return
nil
,
err
}
res
:=
&
v1beta
1
.
MetricValueList
{}
res
:=
&
v1beta
2
.
MetricValueList
{}
err
=
m
.
client
.
client
.
Get
()
.
Resource
(
resourceName
)
.
Namespace
(
m
.
namespace
)
.
Name
(
v1beta
1
.
AllObjects
)
.
Name
(
v1beta
2
.
AllObjects
)
.
SubResource
(
metricName
)
.
VersionedParams
(
&
metav1
.
ListOptions
{
LabelSelector
:
selector
.
String
(),
},
metav1
.
ParameterCodec
)
.
VersionedParams
(
&
v1beta2
.
MetricListOptions
{
LabelSelector
:
selector
.
String
(),
MetricLabelSelector
:
metricSelector
.
String
(),
},
scheme
.
ParameterCodec
)
.
Do
()
.
Into
(
res
)
...
...
staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/BUILD
View file @
e31eff09
package(default_visibility = ["//visibility:public"])
load(
"@io_bazel_rules_go//go:def.bzl",
"go_library",
)
load("@io_bazel_rules_go//go:def.bzl", "go_library")
go_library(
name = "go_default_library",
srcs = ["fake_client.go"],
importmap = "k8s.io/kubernetes/vendor/k8s.io/metrics/pkg/client/custom_metrics/fake",
importpath = "k8s.io/metrics/pkg/client/custom_metrics/fake",
visibility = ["//visibility:public"],
deps = [
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/labels:go_default_library",
"//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library",
"//staging/src/k8s.io/client-go/testing:go_default_library",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta
1
:go_default_library",
"//staging/src/k8s.io/metrics/pkg/apis/custom_metrics/v1beta
2
:go_default_library",
"//staging/src/k8s.io/metrics/pkg/client/custom_metrics:go_default_library",
],
)
...
...
@@ -31,4 +27,5 @@ filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)
staging/src/k8s.io/metrics/pkg/client/custom_metrics/fake/fake_client.go
View file @
e31eff09
...
...
@@ -23,7 +23,7 @@ import (
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/client-go/testing"
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta
1
"
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta
2
"
cmclient
"k8s.io/metrics/pkg/client/custom_metrics"
)
...
...
@@ -72,7 +72,7 @@ func NewGetForAction(groupKind schema.GroupKind, namespace, name string, metricN
Resource
:
gvr
.
Resource
,
}
resource
:=
schema
.
GroupResource
{
Group
:
v1beta
1
.
SchemeGroupVersion
.
Group
,
Group
:
v1beta
2
.
SchemeGroupVersion
.
Group
,
Resource
:
groupResourceForKind
.
String
(),
}
return
GetForActionImpl
{
...
...
@@ -91,7 +91,7 @@ func NewRootGetForAction(groupKind schema.GroupKind, name string, metricName str
Resource
:
gvr
.
Resource
,
}
resource
:=
schema
.
GroupResource
{
Group
:
v1beta
1
.
SchemeGroupVersion
.
Group
,
Group
:
v1beta
2
.
SchemeGroupVersion
.
Group
,
Resource
:
groupResourceForKind
.
String
(),
}
return
GetForActionImpl
{
...
...
@@ -123,15 +123,15 @@ type fakeNamespacedMetrics struct {
ns
string
}
func
(
m
*
fakeNamespacedMetrics
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
)
(
*
v1beta1
.
MetricValue
,
error
)
{
func
(
m
*
fakeNamespacedMetrics
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValue
,
error
)
{
obj
,
err
:=
m
.
Fake
.
Invokes
(
NewGetForAction
(
groupKind
,
m
.
ns
,
name
,
metricName
,
nil
),
&
v1beta
1
.
MetricValueList
{})
Invokes
(
NewGetForAction
(
groupKind
,
m
.
ns
,
name
,
metricName
,
nil
),
&
v1beta
2
.
MetricValueList
{})
if
obj
==
nil
{
return
nil
,
err
}
objList
:=
obj
.
(
*
v1beta
1
.
MetricValueList
)
objList
:=
obj
.
(
*
v1beta
2
.
MetricValueList
)
if
len
(
objList
.
Items
)
!=
1
{
return
nil
,
fmt
.
Errorf
(
"the custom metrics API server returned %v results when we asked for exactly one"
,
len
(
objList
.
Items
))
}
...
...
@@ -139,30 +139,30 @@ func (m *fakeNamespacedMetrics) GetForObject(groupKind schema.GroupKind, name st
return
&
objList
.
Items
[
0
],
err
}
func
(
m
*
fakeNamespacedMetrics
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
)
(
*
v1beta1
.
MetricValueList
,
error
)
{
func
(
m
*
fakeNamespacedMetrics
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValueList
,
error
)
{
obj
,
err
:=
m
.
Fake
.
Invokes
(
NewGetForAction
(
groupKind
,
m
.
ns
,
"*"
,
metricName
,
selector
),
&
v1beta
1
.
MetricValueList
{})
Invokes
(
NewGetForAction
(
groupKind
,
m
.
ns
,
"*"
,
metricName
,
selector
),
&
v1beta
2
.
MetricValueList
{})
if
obj
==
nil
{
return
nil
,
err
}
return
obj
.
(
*
v1beta
1
.
MetricValueList
),
err
return
obj
.
(
*
v1beta
2
.
MetricValueList
),
err
}
type
fakeRootScopedMetrics
struct
{
Fake
*
FakeCustomMetricsClient
}
func
(
m
*
fakeRootScopedMetrics
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
)
(
*
v1beta1
.
MetricValue
,
error
)
{
func
(
m
*
fakeRootScopedMetrics
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValue
,
error
)
{
obj
,
err
:=
m
.
Fake
.
Invokes
(
NewRootGetForAction
(
groupKind
,
name
,
metricName
,
nil
),
&
v1beta
1
.
MetricValueList
{})
Invokes
(
NewRootGetForAction
(
groupKind
,
name
,
metricName
,
nil
),
&
v1beta
2
.
MetricValueList
{})
if
obj
==
nil
{
return
nil
,
err
}
objList
:=
obj
.
(
*
v1beta
1
.
MetricValueList
)
objList
:=
obj
.
(
*
v1beta
2
.
MetricValueList
)
if
len
(
objList
.
Items
)
!=
1
{
return
nil
,
fmt
.
Errorf
(
"the custom metrics API server returned %v results when we asked for exactly one"
,
len
(
objList
.
Items
))
}
...
...
@@ -170,13 +170,13 @@ func (m *fakeRootScopedMetrics) GetForObject(groupKind schema.GroupKind, name st
return
&
objList
.
Items
[
0
],
err
}
func
(
m
*
fakeRootScopedMetrics
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
)
(
*
v1beta1
.
MetricValueList
,
error
)
{
func
(
m
*
fakeRootScopedMetrics
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValueList
,
error
)
{
obj
,
err
:=
m
.
Fake
.
Invokes
(
NewRootGetForAction
(
groupKind
,
"*"
,
metricName
,
selector
),
&
v1beta
1
.
MetricValueList
{})
Invokes
(
NewRootGetForAction
(
groupKind
,
"*"
,
metricName
,
selector
),
&
v1beta
2
.
MetricValueList
{})
if
obj
==
nil
{
return
nil
,
err
}
return
obj
.
(
*
v1beta
1
.
MetricValueList
),
err
return
obj
.
(
*
v1beta
2
.
MetricValueList
),
err
}
staging/src/k8s.io/metrics/pkg/client/custom_metrics/interfaces.go
View file @
e31eff09
...
...
@@ -19,7 +19,7 @@ package custom_metrics
import
(
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta
1
"
"k8s.io/metrics/pkg/apis/custom_metrics/v1beta
2
"
)
// CustomMetricsClient is a client for fetching metrics
...
...
@@ -45,10 +45,10 @@ type NamespacedMetricsGetter interface {
// MetricsInterface provides access to metrics describing Kubernetes objects.
type
MetricsInterface
interface
{
// GetForObject fetchs the given metric describing the given object.
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
)
(
*
v1beta1
.
MetricValue
,
error
)
GetForObject
(
groupKind
schema
.
GroupKind
,
name
string
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValue
,
error
)
// GetForObjects fetches the given metric describing all objects of the given
// type matching the given label selector (or simply all objects of the given type
// if the selector is nil).
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
)
(
*
v1beta1
.
MetricValueList
,
error
)
GetForObjects
(
groupKind
schema
.
GroupKind
,
selector
labels
.
Selector
,
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta2
.
MetricValueList
,
error
)
}
staging/src/k8s.io/metrics/pkg/client/external_metrics/interfaces.go
View file @
e31eff09
...
...
@@ -34,7 +34,7 @@ type NamespacedMetricsGetter interface {
// MetricsInterface provides access to external metrics.
type
MetricsInterface
interface
{
//
Ge
t fetches the metric for the given namespace that maches the given
//
Lis
t fetches the metric for the given namespace that maches the given
// metricSelector.
List
(
metricName
string
,
metricSelector
labels
.
Selector
)
(
*
v1beta1
.
ExternalMetricValueList
,
error
)
}
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment