From ea2075404dc820c33e3e9f18b999ab07e6d8e2db Mon Sep 17 00:00:00 2001 From: Piotr Szczesniak Date: Wed, 24 Feb 2016 09:37:16 +0100 Subject: [PATCH] Removed cluster autoscaler types frome extensions/v1beta1 --- pkg/apis/extensions/register.go | 4 - pkg/apis/extensions/types.go | 61 ---------- pkg/apis/extensions/v1beta1/register.go | 4 - pkg/apis/extensions/v1beta1/types.go | 61 ---------- pkg/apis/extensions/validation/validation.go | 37 ------ .../extensions/validation/validation_test.go | 114 ------------------ 6 files changed, 281 deletions(-) diff --git a/pkg/apis/extensions/register.go b/pkg/apis/extensions/register.go index db7b937706e..057940d1612 100644 --- a/pkg/apis/extensions/register.go +++ b/pkg/apis/extensions/register.go @@ -47,8 +47,6 @@ func AddToScheme(scheme *runtime.Scheme) { func addKnownTypes(scheme *runtime.Scheme) { // TODO this gets cleaned up when the types are fixed scheme.AddKnownTypes(SchemeGroupVersion, - &ClusterAutoscaler{}, - &ClusterAutoscalerList{}, &Deployment{}, &DeploymentList{}, &DeploymentRollback{}, @@ -75,8 +73,6 @@ func addKnownTypes(scheme *runtime.Scheme) { ) } -func (obj *ClusterAutoscaler) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } -func (obj *ClusterAutoscalerList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } func (obj *Deployment) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } func (obj *DeploymentList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } func (obj *DeploymentRollback) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/apis/extensions/types.go b/pkg/apis/extensions/types.go index 6b46cb6074e..86521221469 100644 --- a/pkg/apis/extensions/types.go +++ b/pkg/apis/extensions/types.go @@ -753,67 +753,6 @@ type IngressBackend struct { ServicePort intstr.IntOrString `json:"servicePort"` } -type NodeResource string - -const ( - // Percentage of node's CPUs that is currently used. - CpuConsumption NodeResource = "CpuConsumption" - - // Percentage of node's CPUs that is currently requested for pods. - CpuRequest NodeResource = "CpuRequest" - - // Percentage od node's memory that is currently used. - MemConsumption NodeResource = "MemConsumption" - - // Percentage of node's CPUs that is currently requested for pods. - MemRequest NodeResource = "MemRequest" -) - -// NodeUtilization describes what percentage of a particular resource is used on a node. -type NodeUtilization struct { - Resource NodeResource `json:"resource"` - - // The accepted values are from 0 to 1. - Value float64 `json:"value"` -} - -// Configuration of the Cluster Autoscaler -type ClusterAutoscalerSpec struct { - // Minimum number of nodes that the cluster should have. - MinNodes int `json:"minNodes"` - - // Maximum number of nodes that the cluster should have. - MaxNodes int `json:"maxNodes"` - - // Target average utilization of the cluster nodes. New nodes will be added if one of the - // targets is exceeded. Cluster size will be decreased if the current utilization is too low - // for all targets. - TargetUtilization []NodeUtilization `json:"target"` -} - -type ClusterAutoscaler struct { - unversioned.TypeMeta `json:",inline"` - - // Standard object's metadata. - // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata - // For now (experimental api) it is required that the name is set to "ClusterAutoscaler" and namespace is "default". - api.ObjectMeta `json:"metadata,omitempty"` - - // Spec defines the desired behavior of this daemon set. - // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status - Spec ClusterAutoscalerSpec `json:"spec,omitempty"` -} - -// There will be just one (or none) ClusterAutoscaler. -type ClusterAutoscalerList struct { - unversioned.TypeMeta `json:",inline"` - // Standard object's metadata. - // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata - unversioned.ListMeta `json:"metadata,omitempty"` - - Items []ClusterAutoscaler `json:"items"` -} - // +genclient=true // ReplicaSet represents the configuration of a replica set. diff --git a/pkg/apis/extensions/v1beta1/register.go b/pkg/apis/extensions/v1beta1/register.go index d2750a63943..026a9f6810c 100644 --- a/pkg/apis/extensions/v1beta1/register.go +++ b/pkg/apis/extensions/v1beta1/register.go @@ -37,8 +37,6 @@ func AddToScheme(scheme *runtime.Scheme) { // Adds the list of known types to api.Scheme. func addKnownTypes(scheme *runtime.Scheme) { scheme.AddKnownTypes(SchemeGroupVersion, - &ClusterAutoscaler{}, - &ClusterAutoscalerList{}, &Deployment{}, &DeploymentList{}, &DeploymentRollback{}, @@ -65,8 +63,6 @@ func addKnownTypes(scheme *runtime.Scheme) { ) } -func (obj *ClusterAutoscaler) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } -func (obj *ClusterAutoscalerList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } func (obj *Deployment) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } func (obj *DeploymentList) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } func (obj *DeploymentRollback) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } diff --git a/pkg/apis/extensions/v1beta1/types.go b/pkg/apis/extensions/v1beta1/types.go index 9de6cb1f395..280f1c576ce 100644 --- a/pkg/apis/extensions/v1beta1/types.go +++ b/pkg/apis/extensions/v1beta1/types.go @@ -763,67 +763,6 @@ type IngressBackend struct { ServicePort intstr.IntOrString `json:"servicePort"` } -type NodeResource string - -const ( - // Percentage of node's CPUs that is currently used. - CpuConsumption NodeResource = "CpuConsumption" - - // Percentage of node's CPUs that is currently requested for pods. - CpuRequest NodeResource = "CpuRequest" - - // Percentage od node's memory that is currently used. - MemConsumption NodeResource = "MemConsumption" - - // Percentage of node's CPUs that is currently requested for pods. - MemRequest NodeResource = "MemRequest" -) - -// NodeUtilization describes what percentage of a particular resource is used on a node. -type NodeUtilization struct { - Resource NodeResource `json:"resource"` - - // The accepted values are from 0 to 1. - Value float64 `json:"value"` -} - -// Configuration of the Cluster Autoscaler -type ClusterAutoscalerSpec struct { - // Minimum number of nodes that the cluster should have. - MinNodes int32 `json:"minNodes"` - - // Maximum number of nodes that the cluster should have. - MaxNodes int32 `json:"maxNodes"` - - // Target average utilization of the cluster nodes. New nodes will be added if one of the - // targets is exceeded. Cluster size will be decreased if the current utilization is too low - // for all targets. - TargetUtilization []NodeUtilization `json:"target"` -} - -type ClusterAutoscaler struct { - unversioned.TypeMeta `json:",inline"` - - // Standard object's metadata. - // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata - // For now (experimental api) it is required that the name is set to "ClusterAutoscaler" and namespace is "default". - v1.ObjectMeta `json:"metadata,omitempty"` - - // Spec defines the desired behavior of this daemon set. - // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#spec-and-status - Spec ClusterAutoscalerSpec `json:"spec,omitempty"` -} - -// There will be just one (or none) ClusterAutoscaler. -type ClusterAutoscalerList struct { - unversioned.TypeMeta `json:",inline"` - // Standard object's metadata. - // More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#metadata - unversioned.ListMeta `json:"metadata,omitempty"` - - Items []ClusterAutoscaler `json:"items"` -} - // ExportOptions is the query options to the standard REST get call. type ExportOptions struct { unversioned.TypeMeta `json:",inline"` diff --git a/pkg/apis/extensions/validation/validation.go b/pkg/apis/extensions/validation/validation.go index 157dc87dacc..bae08ac5d82 100644 --- a/pkg/apis/extensions/validation/validation.go +++ b/pkg/apis/extensions/validation/validation.go @@ -594,43 +594,6 @@ func validateIngressBackend(backend *extensions.IngressBackend, fldPath *field.P return allErrs } -func validateClusterAutoscalerSpec(spec extensions.ClusterAutoscalerSpec, fldPath *field.Path) field.ErrorList { - allErrs := field.ErrorList{} - if spec.MinNodes < 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Child("minNodes"), spec.MinNodes, "must be greater than or equal to 0")) - } - if spec.MaxNodes < spec.MinNodes { - allErrs = append(allErrs, field.Invalid(fldPath.Child("maxNodes"), spec.MaxNodes, "must be greater than or equal to `minNodes`")) - } - if len(spec.TargetUtilization) == 0 { - allErrs = append(allErrs, field.Required(fldPath.Child("targetUtilization"), "")) - } - for _, target := range spec.TargetUtilization { - if len(target.Resource) == 0 { - allErrs = append(allErrs, field.Required(fldPath.Child("targetUtilization", "resource"), "")) - } - if target.Value <= 0 { - allErrs = append(allErrs, field.Invalid(fldPath.Child("targetUtilization", "value"), target.Value, "must be greater than 0")) - } - if target.Value > 1 { - allErrs = append(allErrs, field.Invalid(fldPath.Child("targetUtilization", "value"), target.Value, "must be less than or equal to 1")) - } - } - return allErrs -} - -func ValidateClusterAutoscaler(autoscaler *extensions.ClusterAutoscaler) field.ErrorList { - allErrs := field.ErrorList{} - if autoscaler.Name != "ClusterAutoscaler" { - allErrs = append(allErrs, field.Invalid(field.NewPath("metadata", "name"), autoscaler.Name, "must be 'ClusterAutoscaler'")) - } - if autoscaler.Namespace != api.NamespaceDefault { - allErrs = append(allErrs, field.Invalid(field.NewPath("metadata", "namespace"), autoscaler.Namespace, "must be 'default'")) - } - allErrs = append(allErrs, validateClusterAutoscalerSpec(autoscaler.Spec, field.NewPath("spec"))...) - return allErrs -} - func ValidateScale(scale *extensions.Scale) field.ErrorList { allErrs := field.ErrorList{} allErrs = append(allErrs, apivalidation.ValidateObjectMeta(&scale.ObjectMeta, true, apivalidation.NameIsDNSSubdomain, field.NewPath("metadata"))...) diff --git a/pkg/apis/extensions/validation/validation_test.go b/pkg/apis/extensions/validation/validation_test.go index c421bdd404f..31d425b6e80 100644 --- a/pkg/apis/extensions/validation/validation_test.go +++ b/pkg/apis/extensions/validation/validation_test.go @@ -1299,120 +1299,6 @@ func TestValidateIngressStatusUpdate(t *testing.T) { } } -func TestValidateClusterAutoscaler(t *testing.T) { - successCases := []extensions.ClusterAutoscaler{ - { - ObjectMeta: api.ObjectMeta{ - Name: "ClusterAutoscaler", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.ClusterAutoscalerSpec{ - MinNodes: 1, - MaxNodes: 5, - TargetUtilization: []extensions.NodeUtilization{ - { - Resource: extensions.CpuRequest, - Value: 0.7, - }, - }, - }, - }, - } - for _, successCase := range successCases { - if errs := ValidateClusterAutoscaler(&successCase); len(errs) != 0 { - t.Errorf("expected success: %v", errs) - } - } - - errorCases := map[string]extensions.ClusterAutoscaler{ - "must be 'ClusterAutoscaler'": { - ObjectMeta: api.ObjectMeta{ - Name: "TestClusterAutoscaler", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.ClusterAutoscalerSpec{ - MinNodes: 1, - MaxNodes: 5, - TargetUtilization: []extensions.NodeUtilization{ - { - Resource: extensions.CpuRequest, - Value: 0.7, - }, - }, - }, - }, - "must be 'default'": { - ObjectMeta: api.ObjectMeta{ - Name: "ClusterAutoscaler", - Namespace: "test", - }, - Spec: extensions.ClusterAutoscalerSpec{ - MinNodes: 1, - MaxNodes: 5, - TargetUtilization: []extensions.NodeUtilization{ - { - Resource: extensions.CpuRequest, - Value: 0.7, - }, - }, - }, - }, - - `must be greater than or equal to 0`: { - ObjectMeta: api.ObjectMeta{ - Name: "ClusterAutoscaler", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.ClusterAutoscalerSpec{ - MinNodes: -1, - MaxNodes: 5, - TargetUtilization: []extensions.NodeUtilization{ - { - Resource: extensions.CpuRequest, - Value: 0.7, - }, - }, - }, - }, - "must be greater than or equal to `minNodes`": { - ObjectMeta: api.ObjectMeta{ - Name: "ClusterAutoscaler", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.ClusterAutoscalerSpec{ - MinNodes: 10, - MaxNodes: 5, - TargetUtilization: []extensions.NodeUtilization{ - { - Resource: extensions.CpuRequest, - Value: 0.7, - }, - }, - }, - }, - "Required value": { - ObjectMeta: api.ObjectMeta{ - Name: "ClusterAutoscaler", - Namespace: api.NamespaceDefault, - }, - Spec: extensions.ClusterAutoscalerSpec{ - MinNodes: 1, - MaxNodes: 5, - TargetUtilization: []extensions.NodeUtilization{}, - }, - }, - } - - for k, v := range errorCases { - errs := ValidateClusterAutoscaler(&v) - if len(errs) == 0 { - t.Errorf("[%s] expected failure", k) - } else if !strings.Contains(errs[0].Error(), k) { - t.Errorf("unexpected error: %v, expected: %q", errs[0], k) - } - } -} - func TestValidateScale(t *testing.T) { successCases := []extensions.Scale{ {