mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-26 20:54:08 +00:00
Switch to autoscaling.Scale internally
This commit is contained in:
@@ -21,13 +21,15 @@ import (
|
||||
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
|
||||
"k8s.io/apiserver/pkg/registry/generic"
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||
autoscalingvalidation "k8s.io/kubernetes/pkg/apis/autoscaling/validation"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation"
|
||||
"k8s.io/kubernetes/pkg/registry/core/replicationcontroller"
|
||||
controllerstore "k8s.io/kubernetes/pkg/registry/core/replicationcontroller/storage"
|
||||
)
|
||||
@@ -58,7 +60,7 @@ var _ = rest.Patcher(&ScaleREST{})
|
||||
|
||||
// New creates a new Scale object
|
||||
func (r *ScaleREST) New() runtime.Object {
|
||||
return &extensions.Scale{}
|
||||
return &autoscaling.Scale{}
|
||||
}
|
||||
|
||||
func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) {
|
||||
@@ -81,12 +83,12 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r
|
||||
if obj == nil {
|
||||
return nil, false, errors.NewBadRequest(fmt.Sprintf("nil update passed to Scale"))
|
||||
}
|
||||
scale, ok := obj.(*extensions.Scale)
|
||||
scale, ok := obj.(*autoscaling.Scale)
|
||||
if !ok {
|
||||
return nil, false, errors.NewBadRequest(fmt.Sprintf("wrong object passed to Scale update: %v", obj))
|
||||
}
|
||||
|
||||
if errs := extvalidation.ValidateScale(scale); len(errs) > 0 {
|
||||
if errs := autoscalingvalidation.ValidateScale(scale); len(errs) > 0 {
|
||||
return nil, false, errors.NewInvalid(extensions.Kind("Scale"), scale.Name, errs)
|
||||
}
|
||||
|
||||
@@ -100,8 +102,8 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r
|
||||
}
|
||||
|
||||
// scaleFromRC returns a scale subresource for a replication controller.
|
||||
func scaleFromRC(rc *api.ReplicationController) *extensions.Scale {
|
||||
return &extensions.Scale{
|
||||
func scaleFromRC(rc *api.ReplicationController) *autoscaling.Scale {
|
||||
return &autoscaling.Scale{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: rc.Name,
|
||||
Namespace: rc.Namespace,
|
||||
@@ -109,14 +111,12 @@ func scaleFromRC(rc *api.ReplicationController) *extensions.Scale {
|
||||
ResourceVersion: rc.ResourceVersion,
|
||||
CreationTimestamp: rc.CreationTimestamp,
|
||||
},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: rc.Spec.Replicas,
|
||||
},
|
||||
Status: extensions.ScaleStatus{
|
||||
Status: autoscaling.ScaleStatus{
|
||||
Replicas: rc.Status.Replicas,
|
||||
Selector: &metav1.LabelSelector{
|
||||
MatchLabels: rc.Spec.Selector,
|
||||
},
|
||||
Selector: labels.SelectorFromSet(labels.Set(rc.Spec.Selector)).String(),
|
||||
},
|
||||
}
|
||||
}
|
||||
|
@@ -26,8 +26,8 @@ import (
|
||||
"k8s.io/apiserver/pkg/storage"
|
||||
etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing"
|
||||
"k8s.io/apiserver/pkg/storage/storagebackend/factory"
|
||||
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/registry/registrytest"
|
||||
)
|
||||
|
||||
@@ -74,16 +74,14 @@ var validController = api.ReplicationController{
|
||||
Spec: validControllerSpec,
|
||||
}
|
||||
|
||||
var validScale = extensions.Scale{
|
||||
var validScale = autoscaling.Scale{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test"},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: validReplicas,
|
||||
},
|
||||
Status: extensions.ScaleStatus{
|
||||
Status: autoscaling.ScaleStatus{
|
||||
Replicas: 0,
|
||||
Selector: &metav1.LabelSelector{
|
||||
MatchLabels: validPodTemplate.Template.Labels,
|
||||
},
|
||||
Selector: "a=b",
|
||||
},
|
||||
}
|
||||
|
||||
@@ -100,7 +98,7 @@ func TestGet(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
scale := obj.(*extensions.Scale)
|
||||
scale := obj.(*autoscaling.Scale)
|
||||
if scale.Spec.Replicas != validReplicas {
|
||||
t.Errorf("wrong replicas count expected: %d got: %d", validReplicas, scale.Spec.Replicas)
|
||||
}
|
||||
@@ -116,9 +114,9 @@ func TestUpdate(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
replicas := int32(12)
|
||||
update := extensions.Scale{
|
||||
update := autoscaling.Scale{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: "foo", Namespace: "test"},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: replicas,
|
||||
},
|
||||
}
|
||||
@@ -131,7 +129,7 @@ func TestUpdate(t *testing.T) {
|
||||
t.Fatalf("unexpected error: %v", err)
|
||||
}
|
||||
|
||||
updated := obj.(*extensions.Scale)
|
||||
updated := obj.(*autoscaling.Scale)
|
||||
if updated.Spec.Replicas != replicas {
|
||||
t.Errorf("wrong replicas count expected: %d got: %d", replicas, updated.Spec.Replicas)
|
||||
}
|
||||
|
@@ -32,7 +32,9 @@ import (
|
||||
storeerr "k8s.io/apiserver/pkg/storage/errors"
|
||||
appsv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1"
|
||||
appsv1beta2 "k8s.io/kubernetes/pkg/apis/apps/v1beta2"
|
||||
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||
autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1"
|
||||
autoscalingvalidation "k8s.io/kubernetes/pkg/apis/autoscaling/validation"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
|
||||
extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation"
|
||||
@@ -212,7 +214,7 @@ func (r *ScaleREST) GroupVersionKind(containingGV schema.GroupVersion) schema.Gr
|
||||
|
||||
// New creates a new Scale object
|
||||
func (r *ScaleREST) New() runtime.Object {
|
||||
return &extensions.Scale{}
|
||||
return &autoscaling.Scale{}
|
||||
}
|
||||
|
||||
func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) {
|
||||
@@ -245,12 +247,12 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r
|
||||
if obj == nil {
|
||||
return nil, false, errors.NewBadRequest(fmt.Sprintf("nil update passed to Scale"))
|
||||
}
|
||||
scale, ok := obj.(*extensions.Scale)
|
||||
scale, ok := obj.(*autoscaling.Scale)
|
||||
if !ok {
|
||||
return nil, false, errors.NewBadRequest(fmt.Sprintf("expected input object type to be Scale, but %T", obj))
|
||||
}
|
||||
|
||||
if errs := extvalidation.ValidateScale(scale); len(errs) > 0 {
|
||||
if errs := autoscalingvalidation.ValidateScale(scale); len(errs) > 0 {
|
||||
return nil, false, errors.NewInvalid(extensions.Kind("Scale"), name, errs)
|
||||
}
|
||||
|
||||
@@ -268,8 +270,12 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r
|
||||
}
|
||||
|
||||
// scaleFromDeployment returns a scale subresource for a deployment.
|
||||
func scaleFromDeployment(deployment *extensions.Deployment) (*extensions.Scale, error) {
|
||||
return &extensions.Scale{
|
||||
func scaleFromDeployment(deployment *extensions.Deployment) (*autoscaling.Scale, error) {
|
||||
selector, err := metav1.LabelSelectorAsSelector(deployment.Spec.Selector)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &autoscaling.Scale{
|
||||
// TODO: Create a variant of ObjectMeta type that only contains the fields below.
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: deployment.Name,
|
||||
@@ -278,12 +284,12 @@ func scaleFromDeployment(deployment *extensions.Deployment) (*extensions.Scale,
|
||||
ResourceVersion: deployment.ResourceVersion,
|
||||
CreationTimestamp: deployment.CreationTimestamp,
|
||||
},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: deployment.Spec.Replicas,
|
||||
},
|
||||
Status: extensions.ScaleStatus{
|
||||
Status: autoscaling.ScaleStatus{
|
||||
Replicas: deployment.Status.Replicas,
|
||||
Selector: deployment.Spec.Selector,
|
||||
Selector: selector.String(),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
@@ -34,6 +34,7 @@ import (
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
storeerr "k8s.io/apiserver/pkg/storage/errors"
|
||||
etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing"
|
||||
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/registry/registrytest"
|
||||
@@ -207,7 +208,11 @@ func TestScaleGet(t *testing.T) {
|
||||
t.Fatalf("error setting new deployment (key: %s) %v: %v", key, validDeployment, err)
|
||||
}
|
||||
|
||||
want := &extensions.Scale{
|
||||
selector, err := metav1.LabelSelectorAsSelector(validDeployment.Spec.Selector)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
want := &autoscaling.Scale{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
Namespace: namespace,
|
||||
@@ -215,19 +220,19 @@ func TestScaleGet(t *testing.T) {
|
||||
ResourceVersion: deployment.ResourceVersion,
|
||||
CreationTimestamp: deployment.CreationTimestamp,
|
||||
},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: validDeployment.Spec.Replicas,
|
||||
},
|
||||
Status: extensions.ScaleStatus{
|
||||
Status: autoscaling.ScaleStatus{
|
||||
Replicas: validDeployment.Status.Replicas,
|
||||
Selector: validDeployment.Spec.Selector,
|
||||
Selector: selector.String(),
|
||||
},
|
||||
}
|
||||
obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{})
|
||||
if err != nil {
|
||||
t.Fatalf("error fetching scale for %s: %v", name, err)
|
||||
}
|
||||
got := obj.(*extensions.Scale)
|
||||
got := obj.(*autoscaling.Scale)
|
||||
if !apiequality.Semantic.DeepEqual(want, got) {
|
||||
t.Errorf("unexpected scale: %s", diff.ObjectDiff(want, got))
|
||||
}
|
||||
@@ -244,9 +249,9 @@ func TestScaleUpdate(t *testing.T) {
|
||||
t.Fatalf("error setting new deployment (key: %s) %v: %v", key, validDeployment, err)
|
||||
}
|
||||
replicas := int32(12)
|
||||
update := extensions.Scale{
|
||||
update := autoscaling.Scale{
|
||||
ObjectMeta: metav1.ObjectMeta{Name: name, Namespace: namespace},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: replicas,
|
||||
},
|
||||
}
|
||||
@@ -258,7 +263,7 @@ func TestScaleUpdate(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("error fetching scale for %s: %v", name, err)
|
||||
}
|
||||
scale := obj.(*extensions.Scale)
|
||||
scale := obj.(*autoscaling.Scale)
|
||||
if scale.Spec.Replicas != replicas {
|
||||
t.Errorf("wrong replicas count expected: %d got: %d", replicas, deployment.Spec.Replicas)
|
||||
}
|
||||
|
@@ -31,10 +31,11 @@ import (
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
appsv1beta1 "k8s.io/kubernetes/pkg/apis/apps/v1beta1"
|
||||
appsv1beta2 "k8s.io/kubernetes/pkg/apis/apps/v1beta2"
|
||||
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||
autoscalingv1 "k8s.io/kubernetes/pkg/apis/autoscaling/v1"
|
||||
autoscalingvalidation "k8s.io/kubernetes/pkg/apis/autoscaling/validation"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
extensionsv1beta1 "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
|
||||
extvalidation "k8s.io/kubernetes/pkg/apis/extensions/validation"
|
||||
"k8s.io/kubernetes/pkg/printers"
|
||||
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
||||
printerstorage "k8s.io/kubernetes/pkg/printers/storage"
|
||||
@@ -146,7 +147,7 @@ func (r *ScaleREST) GroupVersionKind(containingGV schema.GroupVersion) schema.Gr
|
||||
|
||||
// New creates a new Scale object
|
||||
func (r *ScaleREST) New() runtime.Object {
|
||||
return &extensions.Scale{}
|
||||
return &autoscaling.Scale{}
|
||||
}
|
||||
|
||||
func (r *ScaleREST) Get(ctx genericapirequest.Context, name string, options *metav1.GetOptions) (runtime.Object, error) {
|
||||
@@ -180,12 +181,12 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r
|
||||
if obj == nil {
|
||||
return nil, false, errors.NewBadRequest(fmt.Sprintf("nil update passed to Scale"))
|
||||
}
|
||||
scale, ok := obj.(*extensions.Scale)
|
||||
scale, ok := obj.(*autoscaling.Scale)
|
||||
if !ok {
|
||||
return nil, false, errors.NewBadRequest(fmt.Sprintf("wrong object passed to Scale update: %v", obj))
|
||||
}
|
||||
|
||||
if errs := extvalidation.ValidateScale(scale); len(errs) > 0 {
|
||||
if errs := autoscalingvalidation.ValidateScale(scale); len(errs) > 0 {
|
||||
return nil, false, errors.NewInvalid(extensions.Kind("Scale"), scale.Name, errs)
|
||||
}
|
||||
|
||||
@@ -203,8 +204,12 @@ func (r *ScaleREST) Update(ctx genericapirequest.Context, name string, objInfo r
|
||||
}
|
||||
|
||||
// scaleFromReplicaSet returns a scale subresource for a replica set.
|
||||
func scaleFromReplicaSet(rs *extensions.ReplicaSet) (*extensions.Scale, error) {
|
||||
return &extensions.Scale{
|
||||
func scaleFromReplicaSet(rs *extensions.ReplicaSet) (*autoscaling.Scale, error) {
|
||||
selector, err := metav1.LabelSelectorAsSelector(rs.Spec.Selector)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &autoscaling.Scale{
|
||||
// TODO: Create a variant of ObjectMeta type that only contains the fields below.
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: rs.Name,
|
||||
@@ -213,12 +218,12 @@ func scaleFromReplicaSet(rs *extensions.ReplicaSet) (*extensions.Scale, error) {
|
||||
ResourceVersion: rs.ResourceVersion,
|
||||
CreationTimestamp: rs.CreationTimestamp,
|
||||
},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: rs.Spec.Replicas,
|
||||
},
|
||||
Status: extensions.ScaleStatus{
|
||||
Status: autoscaling.ScaleStatus{
|
||||
Replicas: rs.Status.Replicas,
|
||||
Selector: rs.Spec.Selector,
|
||||
Selector: selector.String(),
|
||||
},
|
||||
}, nil
|
||||
}
|
||||
|
@@ -30,6 +30,7 @@ import (
|
||||
"k8s.io/apiserver/pkg/registry/generic"
|
||||
"k8s.io/apiserver/pkg/registry/rest"
|
||||
etcdtesting "k8s.io/apiserver/pkg/storage/etcd/testing"
|
||||
"k8s.io/kubernetes/pkg/apis/autoscaling"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/registry/registrytest"
|
||||
@@ -261,7 +262,12 @@ func TestScaleGet(t *testing.T) {
|
||||
t.Fatalf("error setting new replica set (key: %s) %v: %v", key, validReplicaSet, err)
|
||||
}
|
||||
|
||||
want := &extensions.Scale{
|
||||
selector, err := metav1.LabelSelectorAsSelector(validReplicaSet.Spec.Selector)
|
||||
if err != nil {
|
||||
t.Fatal(err)
|
||||
}
|
||||
|
||||
want := &autoscaling.Scale{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
@@ -269,16 +275,16 @@ func TestScaleGet(t *testing.T) {
|
||||
ResourceVersion: rs.ResourceVersion,
|
||||
CreationTimestamp: rs.CreationTimestamp,
|
||||
},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: validReplicaSet.Spec.Replicas,
|
||||
},
|
||||
Status: extensions.ScaleStatus{
|
||||
Status: autoscaling.ScaleStatus{
|
||||
Replicas: validReplicaSet.Status.Replicas,
|
||||
Selector: validReplicaSet.Spec.Selector,
|
||||
Selector: selector.String(),
|
||||
},
|
||||
}
|
||||
obj, err := storage.Scale.Get(ctx, name, &metav1.GetOptions{})
|
||||
got := obj.(*extensions.Scale)
|
||||
got := obj.(*autoscaling.Scale)
|
||||
if err != nil {
|
||||
t.Fatalf("error fetching scale for %s: %v", name, err)
|
||||
}
|
||||
@@ -301,12 +307,12 @@ func TestScaleUpdate(t *testing.T) {
|
||||
t.Fatalf("error setting new replica set (key: %s) %v: %v", key, validReplicaSet, err)
|
||||
}
|
||||
replicas := 12
|
||||
update := extensions.Scale{
|
||||
update := autoscaling.Scale{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: name,
|
||||
Namespace: metav1.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.ScaleSpec{
|
||||
Spec: autoscaling.ScaleSpec{
|
||||
Replicas: int32(replicas),
|
||||
},
|
||||
}
|
||||
@@ -319,7 +325,7 @@ func TestScaleUpdate(t *testing.T) {
|
||||
if err != nil {
|
||||
t.Fatalf("error fetching scale for %s: %v", name, err)
|
||||
}
|
||||
scale := obj.(*extensions.Scale)
|
||||
scale := obj.(*autoscaling.Scale)
|
||||
if scale.Spec.Replicas != int32(replicas) {
|
||||
t.Errorf("wrong replicas count expected: %d got: %d", replicas, scale.Spec.Replicas)
|
||||
}
|
||||
|
Reference in New Issue
Block a user