mirror of https://github.com/k3s-io/k3s
Merge pull request #20492 from erictune/labselunver
Move extensions.LabelSelector to unversionedpull/6/head
commit
d84ac764a9
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
Copyright 2016 The Kubernetes Authors All rights reserved.
|
||||
|
||||
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 unversioned
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
// LabelSelectorAsSelector converts the LabelSelector api type into a struct that implements
|
||||
// labels.Selector
|
||||
func LabelSelectorAsSelector(ps *LabelSelector) (labels.Selector, error) {
|
||||
if ps == nil {
|
||||
return labels.Nothing(), nil
|
||||
}
|
||||
if len(ps.MatchLabels)+len(ps.MatchExpressions) == 0 {
|
||||
return labels.Everything(), nil
|
||||
}
|
||||
selector := labels.NewSelector()
|
||||
for k, v := range ps.MatchLabels {
|
||||
r, err := labels.NewRequirement(k, labels.InOperator, sets.NewString(v))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
selector = selector.Add(*r)
|
||||
}
|
||||
for _, expr := range ps.MatchExpressions {
|
||||
var op labels.Operator
|
||||
switch expr.Operator {
|
||||
case LabelSelectorOpIn:
|
||||
op = labels.InOperator
|
||||
case LabelSelectorOpNotIn:
|
||||
op = labels.NotInOperator
|
||||
case LabelSelectorOpExists:
|
||||
op = labels.ExistsOperator
|
||||
case LabelSelectorOpDoesNotExist:
|
||||
op = labels.DoesNotExistOperator
|
||||
default:
|
||||
return nil, fmt.Errorf("%q is not a valid pod selector operator", expr.Operator)
|
||||
}
|
||||
r, err := labels.NewRequirement(expr.Key, op, sets.NewString(expr.Values...))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
selector = selector.Add(*r)
|
||||
}
|
||||
return selector, nil
|
||||
}
|
|
@ -1,5 +1,5 @@
|
|||
/*
|
||||
Copyright 2015 The Kubernetes Authors All rights reserved.
|
||||
Copyright 2016 The Kubernetes Authors All rights reserved.
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License");
|
||||
you may not use this file except in compliance with the License.
|
||||
|
@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
|
|||
limitations under the License.
|
||||
*/
|
||||
|
||||
package extensions
|
||||
package unversioned
|
||||
|
||||
import (
|
||||
"reflect"
|
|
@ -15,6 +15,14 @@ limitations under the License.
|
|||
*/
|
||||
|
||||
// Package unversioned contains API types that are common to all versions.
|
||||
//
|
||||
// The package contains two categories of types:
|
||||
// - external (serialized) types that lack their own version (e.g TypeMeta)
|
||||
// - internal (never-serialized) types that are needed by several different
|
||||
// api groups, and so live here, to avoid duplication and/or import loops
|
||||
// (e.g. LabelSelector).
|
||||
// In the future, we will probably move these categories of objects into
|
||||
// separate packages.
|
||||
package unversioned
|
||||
|
||||
import "strings"
|
||||
|
@ -382,3 +390,46 @@ func (apiVersions APIVersions) GoString() string {
|
|||
|
||||
// Patch is provided to give a concrete name and type to the Kubernetes PATCH request body.
|
||||
type Patch struct{}
|
||||
|
||||
// Note:
|
||||
// There are two different styles of label selectors used in versioned types:
|
||||
// an older style which is represented as just a string in versioned types, and a
|
||||
// newer style that is structured. LabelSelector is an internal representation for the
|
||||
// latter style.
|
||||
|
||||
// A label selector is a label query over a set of resources. The result of matchLabels and
|
||||
// matchExpressions are ANDed. An empty label selector matches all objects. A null
|
||||
// label selector matches no objects.
|
||||
type LabelSelector struct {
|
||||
// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
||||
// map is equivalent to an element of matchExpressions, whose key field is "key", the
|
||||
// operator is "In", and the values array contains only "value". The requirements are ANDed.
|
||||
MatchLabels map[string]string `json:"matchLabels,omitempty"`
|
||||
// matchExpressions is a list of label selector requirements. The requirements are ANDed.
|
||||
MatchExpressions []LabelSelectorRequirement `json:"matchExpressions,omitempty"`
|
||||
}
|
||||
|
||||
// A label selector requirement is a selector that contains values, a key, and an operator that
|
||||
// relates the key and values.
|
||||
type LabelSelectorRequirement struct {
|
||||
// key is the label key that the selector applies to.
|
||||
Key string `json:"key" patchStrategy:"merge" patchMergeKey:"key"`
|
||||
// operator represents a key's relationship to a set of values.
|
||||
// Valid operators ard In, NotIn, Exists and DoesNotExist.
|
||||
Operator LabelSelectorOperator `json:"operator"`
|
||||
// values is an array of string values. If the operator is In or NotIn,
|
||||
// the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
||||
// the values array must be empty. This array is replaced during a strategic
|
||||
// merge patch.
|
||||
Values []string `json:"values,omitempty"`
|
||||
}
|
||||
|
||||
// A label selector operator is the set of operators that can be used in a selector requirement.
|
||||
type LabelSelectorOperator string
|
||||
|
||||
const (
|
||||
LabelSelectorOpIn LabelSelectorOperator = "In"
|
||||
LabelSelectorOpNotIn LabelSelectorOperator = "NotIn"
|
||||
LabelSelectorOpExists LabelSelectorOperator = "Exists"
|
||||
LabelSelectorOpDoesNotExist LabelSelectorOperator = "DoesNotExist"
|
||||
)
|
||||
|
|
|
@ -97,6 +97,27 @@ func (GroupVersionForDiscovery) SwaggerDoc() map[string]string {
|
|||
return map_GroupVersionForDiscovery
|
||||
}
|
||||
|
||||
var map_LabelSelector = map[string]string{
|
||||
"": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label selector matches no objects.",
|
||||
"matchLabels": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is \"key\", the operator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
|
||||
"matchExpressions": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
|
||||
}
|
||||
|
||||
func (LabelSelector) SwaggerDoc() map[string]string {
|
||||
return map_LabelSelector
|
||||
}
|
||||
|
||||
var map_LabelSelectorRequirement = map[string]string{
|
||||
"": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
|
||||
"key": "key is the label key that the selector applies to.",
|
||||
"operator": "operator represents a key's relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.",
|
||||
"values": "values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch.",
|
||||
}
|
||||
|
||||
func (LabelSelectorRequirement) SwaggerDoc() map[string]string {
|
||||
return map_LabelSelectorRequirement
|
||||
}
|
||||
|
||||
var map_ListMeta = map[string]string{
|
||||
"": "ListMeta describes metadata that synthetic resources must have, including lists and various status objects. A resource may have only one of {ObjectMeta, ListMeta}.",
|
||||
"selfLink": "SelfLink is a URL representing this object. Populated by the system. Read-only.",
|
||||
|
|
|
@ -0,0 +1,53 @@
|
|||
/*
|
||||
Copyright 2015 The Kubernetes Authors All rights reserved.
|
||||
|
||||
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 validation
|
||||
|
||||
import (
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
apivalidation "k8s.io/kubernetes/pkg/api/validation"
|
||||
"k8s.io/kubernetes/pkg/util/validation/field"
|
||||
)
|
||||
|
||||
func ValidateLabelSelector(ps *unversioned.LabelSelector, fldPath *field.Path) field.ErrorList {
|
||||
allErrs := field.ErrorList{}
|
||||
if ps == nil {
|
||||
return allErrs
|
||||
}
|
||||
allErrs = append(allErrs, apivalidation.ValidateLabels(ps.MatchLabels, fldPath.Child("matchLabels"))...)
|
||||
for i, expr := range ps.MatchExpressions {
|
||||
allErrs = append(allErrs, ValidateLabelSelectorRequirement(expr, fldPath.Child("matchExpressions").Index(i))...)
|
||||
}
|
||||
return allErrs
|
||||
}
|
||||
|
||||
func ValidateLabelSelectorRequirement(sr unversioned.LabelSelectorRequirement, fldPath *field.Path) field.ErrorList {
|
||||
allErrs := field.ErrorList{}
|
||||
switch sr.Operator {
|
||||
case unversioned.LabelSelectorOpIn, unversioned.LabelSelectorOpNotIn:
|
||||
if len(sr.Values) == 0 {
|
||||
allErrs = append(allErrs, field.Required(fldPath.Child("values"), "must be specified when `operator` is 'In' or 'NotIn'"))
|
||||
}
|
||||
case unversioned.LabelSelectorOpExists, unversioned.LabelSelectorOpDoesNotExist:
|
||||
if len(sr.Values) > 0 {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("values"), "may not be specified when `operator` is 'Exists' or 'DoesNotExist'"))
|
||||
}
|
||||
default:
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("operator"), sr.Operator, "not a valid selector operator"))
|
||||
}
|
||||
allErrs = append(allErrs, apivalidation.ValidateLabelName(sr.Key, fldPath.Child("key"))...)
|
||||
return allErrs
|
||||
}
|
|
@ -17,53 +17,9 @@ limitations under the License.
|
|||
package extensions
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
)
|
||||
|
||||
// LabelSelectorAsSelector converts the LabelSelector api type into a struct that implements
|
||||
// labels.Selector
|
||||
func LabelSelectorAsSelector(ps *LabelSelector) (labels.Selector, error) {
|
||||
if ps == nil {
|
||||
return labels.Nothing(), nil
|
||||
}
|
||||
if len(ps.MatchLabels)+len(ps.MatchExpressions) == 0 {
|
||||
return labels.Everything(), nil
|
||||
}
|
||||
selector := labels.NewSelector()
|
||||
for k, v := range ps.MatchLabels {
|
||||
r, err := labels.NewRequirement(k, labels.InOperator, sets.NewString(v))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
selector = selector.Add(*r)
|
||||
}
|
||||
for _, expr := range ps.MatchExpressions {
|
||||
var op labels.Operator
|
||||
switch expr.Operator {
|
||||
case LabelSelectorOpIn:
|
||||
op = labels.InOperator
|
||||
case LabelSelectorOpNotIn:
|
||||
op = labels.NotInOperator
|
||||
case LabelSelectorOpExists:
|
||||
op = labels.ExistsOperator
|
||||
case LabelSelectorOpDoesNotExist:
|
||||
op = labels.DoesNotExistOperator
|
||||
default:
|
||||
return nil, fmt.Errorf("%q is not a valid pod selector operator", expr.Operator)
|
||||
}
|
||||
r, err := labels.NewRequirement(expr.Key, op, sets.NewString(expr.Values...))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
selector = selector.Add(*r)
|
||||
}
|
||||
return selector, nil
|
||||
}
|
||||
|
||||
// ScaleFromDeployment returns a scale subresource for a deployment.
|
||||
func ScaleFromDeployment(deployment *Deployment) *Scale {
|
||||
return &Scale{
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -413,7 +413,7 @@ type DaemonSetSpec struct {
|
|||
// Must match in order to be controlled.
|
||||
// If empty, defaulted to labels on Pod template.
|
||||
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
|
||||
Selector *LabelSelector `json:"selector,omitempty"`
|
||||
Selector *unversioned.LabelSelector `json:"selector,omitempty"`
|
||||
|
||||
// Template is the object that describes the pod that will be created.
|
||||
// The DaemonSet will create exactly one copy of this pod on every node
|
||||
|
@ -545,7 +545,7 @@ type JobSpec struct {
|
|||
ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
|
||||
|
||||
// Selector is a label query over pods that should match the pod count.
|
||||
Selector *LabelSelector `json:"selector,omitempty"`
|
||||
Selector *unversioned.LabelSelector `json:"selector,omitempty"`
|
||||
|
||||
// Template is the object that describes the pod that will be created when
|
||||
// executing a job.
|
||||
|
@ -793,43 +793,6 @@ type ClusterAutoscalerList struct {
|
|||
Items []ClusterAutoscaler `json:"items"`
|
||||
}
|
||||
|
||||
// A label selector is a label query over a set of resources. The result of matchLabels and
|
||||
// matchExpressions are ANDed. An empty label selector matches all objects. A null
|
||||
// label selector matches no objects.
|
||||
type LabelSelector struct {
|
||||
// matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels
|
||||
// map is equivalent to an element of matchExpressions, whose key field is "key", the
|
||||
// operator is "In", and the values array contains only "value". The requirements are ANDed.
|
||||
MatchLabels map[string]string `json:"matchLabels,omitempty"`
|
||||
// matchExpressions is a list of label selector requirements. The requirements are ANDed.
|
||||
MatchExpressions []LabelSelectorRequirement `json:"matchExpressions,omitempty"`
|
||||
}
|
||||
|
||||
// A label selector requirement is a selector that contains values, a key, and an operator that
|
||||
// relates the key and values.
|
||||
type LabelSelectorRequirement struct {
|
||||
// key is the label key that the selector applies to.
|
||||
Key string `json:"key" patchStrategy:"merge" patchMergeKey:"key"`
|
||||
// operator represents a key's relationship to a set of values.
|
||||
// Valid operators ard In, NotIn, Exists and DoesNotExist.
|
||||
Operator LabelSelectorOperator `json:"operator"`
|
||||
// values is an array of string values. If the operator is In or NotIn,
|
||||
// the values array must be non-empty. If the operator is Exists or DoesNotExist,
|
||||
// the values array must be empty. This array is replaced during a strategic
|
||||
// merge patch.
|
||||
Values []string `json:"values,omitempty"`
|
||||
}
|
||||
|
||||
// A label selector operator is the set of operators that can be used in a selector requirement.
|
||||
type LabelSelectorOperator string
|
||||
|
||||
const (
|
||||
LabelSelectorOpIn LabelSelectorOperator = "In"
|
||||
LabelSelectorOpNotIn LabelSelectorOperator = "NotIn"
|
||||
LabelSelectorOpExists LabelSelectorOperator = "Exists"
|
||||
LabelSelectorOpDoesNotExist LabelSelectorOperator = "DoesNotExist"
|
||||
)
|
||||
|
||||
// +genclient=true
|
||||
|
||||
// ReplicaSet represents the configuration of a replica set.
|
||||
|
@ -864,7 +827,7 @@ type ReplicaSetSpec struct {
|
|||
// Must match in order to be controlled.
|
||||
// If empty, defaulted to labels on pod template.
|
||||
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
|
||||
Selector *LabelSelector `json:"selector,omitempty"`
|
||||
Selector *unversioned.LabelSelector `json:"selector,omitempty"`
|
||||
|
||||
// Template is the object that describes the pod that will be created if
|
||||
// insufficient replicas are detected.
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
"reflect"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
v1 "k8s.io/kubernetes/pkg/api/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/conversion"
|
||||
|
@ -95,7 +96,7 @@ func Convert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s conve
|
|||
if in.Volumes != nil {
|
||||
out.Volumes = make([]v1.Volume, len(in.Volumes))
|
||||
for i := range in.Volumes {
|
||||
if err := Convert_api_Volume_To_v1_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil {
|
||||
if err := v1.Convert_api_Volume_To_v1_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -105,7 +106,7 @@ func Convert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s conve
|
|||
if in.Containers != nil {
|
||||
out.Containers = make([]v1.Container, len(in.Containers))
|
||||
for i := range in.Containers {
|
||||
if err := Convert_api_Container_To_v1_Container(&in.Containers[i], &out.Containers[i], s); err != nil {
|
||||
if err := v1.Convert_api_Container_To_v1_Container(&in.Containers[i], &out.Containers[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -140,7 +141,7 @@ func Convert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s conve
|
|||
out.NodeName = in.NodeName
|
||||
if in.SecurityContext != nil {
|
||||
out.SecurityContext = new(v1.PodSecurityContext)
|
||||
if err := Convert_api_PodSecurityContext_To_v1_PodSecurityContext(in.SecurityContext, out.SecurityContext, s); err != nil {
|
||||
if err := v1.Convert_api_PodSecurityContext_To_v1_PodSecurityContext(in.SecurityContext, out.SecurityContext, s); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
@ -151,7 +152,7 @@ func Convert_api_PodSpec_To_v1_PodSpec(in *api.PodSpec, out *v1.PodSpec, s conve
|
|||
if in.ImagePullSecrets != nil {
|
||||
out.ImagePullSecrets = make([]v1.LocalObjectReference, len(in.ImagePullSecrets))
|
||||
for i := range in.ImagePullSecrets {
|
||||
if err := Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil {
|
||||
if err := v1.Convert_api_LocalObjectReference_To_v1_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -168,7 +169,7 @@ func Convert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s conve
|
|||
if in.Volumes != nil {
|
||||
out.Volumes = make([]api.Volume, len(in.Volumes))
|
||||
for i := range in.Volumes {
|
||||
if err := Convert_v1_Volume_To_api_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil {
|
||||
if err := v1.Convert_v1_Volume_To_api_Volume(&in.Volumes[i], &out.Volumes[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -178,7 +179,7 @@ func Convert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s conve
|
|||
if in.Containers != nil {
|
||||
out.Containers = make([]api.Container, len(in.Containers))
|
||||
for i := range in.Containers {
|
||||
if err := Convert_v1_Container_To_api_Container(&in.Containers[i], &out.Containers[i], s); err != nil {
|
||||
if err := v1.Convert_v1_Container_To_api_Container(&in.Containers[i], &out.Containers[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -217,7 +218,7 @@ func Convert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s conve
|
|||
|
||||
if in.SecurityContext != nil {
|
||||
out.SecurityContext = new(api.PodSecurityContext)
|
||||
if err := Convert_v1_PodSecurityContext_To_api_PodSecurityContext(in.SecurityContext, out.SecurityContext, s); err != nil {
|
||||
if err := v1.Convert_v1_PodSecurityContext_To_api_PodSecurityContext(in.SecurityContext, out.SecurityContext, s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -230,7 +231,7 @@ func Convert_v1_PodSpec_To_api_PodSpec(in *v1.PodSpec, out *api.PodSpec, s conve
|
|||
if in.ImagePullSecrets != nil {
|
||||
out.ImagePullSecrets = make([]api.LocalObjectReference, len(in.ImagePullSecrets))
|
||||
for i := range in.ImagePullSecrets {
|
||||
if err := Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil {
|
||||
if err := v1.Convert_v1_LocalObjectReference_To_api_LocalObjectReference(&in.ImagePullSecrets[i], &out.ImagePullSecrets[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -254,7 +255,7 @@ func Convert_extensions_DeploymentSpec_To_v1beta1_DeploymentSpec(in *extensions.
|
|||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
|
||||
if err := v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_extensions_DeploymentStrategy_To_v1beta1_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil {
|
||||
|
@ -292,7 +293,7 @@ func Convert_v1beta1_DeploymentSpec_To_extensions_DeploymentSpec(in *DeploymentS
|
|||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
|
||||
if err := v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_v1beta1_DeploymentStrategy_To_extensions_DeploymentStrategy(&in.Strategy, &out.Strategy, s); err != nil {
|
||||
|
@ -388,7 +389,7 @@ func Convert_api_PodSecurityContext_To_v1_PodSecurityContext(in *api.PodSecurity
|
|||
out.SupplementalGroups = in.SupplementalGroups
|
||||
if in.SELinuxOptions != nil {
|
||||
out.SELinuxOptions = new(v1.SELinuxOptions)
|
||||
if err := Convert_api_SELinuxOptions_To_v1_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil {
|
||||
if err := v1.Convert_api_SELinuxOptions_To_v1_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -423,7 +424,7 @@ func Convert_v1_PodSecurityContext_To_api_PodSecurityContext(in *v1.PodSecurityC
|
|||
out.SupplementalGroups = in.SupplementalGroups
|
||||
if in.SELinuxOptions != nil {
|
||||
out.SELinuxOptions = new(api.SELinuxOptions)
|
||||
if err := Convert_v1_SELinuxOptions_To_api_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil {
|
||||
if err := v1.Convert_v1_SELinuxOptions_To_api_SELinuxOptions(in.SELinuxOptions, out.SELinuxOptions, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -454,16 +455,16 @@ func Convert_extensions_DaemonSetSpec_To_v1beta1_DaemonSetSpec(in *extensions.Da
|
|||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*extensions.DaemonSetSpec))(in)
|
||||
}
|
||||
// unable to generate simple pointer conversion for extensions.LabelSelector -> v1beta1.LabelSelector
|
||||
// unable to generate simple pointer conversion for unversioned.LabelSelector -> v1beta1.LabelSelector
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(LabelSelector)
|
||||
if err := Convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
if err := Convert_unversioned_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
|
||||
if err := v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_extensions_DaemonSetUpdateStrategy_To_v1beta1_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil {
|
||||
|
@ -478,16 +479,16 @@ func Convert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *DaemonSetSpec
|
|||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*DaemonSetSpec))(in)
|
||||
}
|
||||
// unable to generate simple pointer conversion for v1beta1.LabelSelector -> extensions.LabelSelector
|
||||
// unable to generate simple pointer conversion for v1beta1.LabelSelector -> unversioned.LabelSelector
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(extensions.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
out.Selector = new(unversioned.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_unversioned_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
out.Selector = nil
|
||||
}
|
||||
if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
|
||||
if err := v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
if err := Convert_v1beta1_DaemonSetUpdateStrategy_To_extensions_DaemonSetUpdateStrategy(&in.UpdateStrategy, &out.UpdateStrategy, s); err != nil {
|
||||
|
@ -564,7 +565,7 @@ func Convert_extensions_ReplicaSetSpec_To_v1beta1_ReplicaSetSpec(in *extensions.
|
|||
*out.Replicas = int32(in.Replicas)
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(LabelSelector)
|
||||
if err := Convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
if err := Convert_unversioned_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -572,7 +573,7 @@ func Convert_extensions_ReplicaSetSpec_To_v1beta1_ReplicaSetSpec(in *extensions.
|
|||
}
|
||||
if in.Template != nil {
|
||||
out.Template = new(v1.PodTemplateSpec)
|
||||
if err := Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
|
||||
if err := v1.Convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -589,8 +590,8 @@ func Convert_v1beta1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *ReplicaSetS
|
|||
out.Replicas = int(*in.Replicas)
|
||||
}
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(extensions.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
out.Selector = new(unversioned.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_unversioned_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -598,7 +599,7 @@ func Convert_v1beta1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *ReplicaSetS
|
|||
}
|
||||
if in.Template != nil {
|
||||
out.Template = new(api.PodTemplateSpec)
|
||||
if err := Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
|
||||
if err := v1.Convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -1241,6 +1241,56 @@ func Convert_api_VolumeSource_To_v1_VolumeSource(in *api.VolumeSource, out *v1.V
|
|||
return autoConvert_api_VolumeSource_To_v1_VolumeSource(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_unversioned_LabelSelector_To_v1beta1_LabelSelector(in *unversioned.LabelSelector, out *LabelSelector, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*unversioned.LabelSelector))(in)
|
||||
}
|
||||
if in.MatchLabels != nil {
|
||||
out.MatchLabels = make(map[string]string)
|
||||
for key, val := range in.MatchLabels {
|
||||
out.MatchLabels[key] = val
|
||||
}
|
||||
} else {
|
||||
out.MatchLabels = nil
|
||||
}
|
||||
if in.MatchExpressions != nil {
|
||||
out.MatchExpressions = make([]LabelSelectorRequirement, len(in.MatchExpressions))
|
||||
for i := range in.MatchExpressions {
|
||||
if err := Convert_unversioned_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(&in.MatchExpressions[i], &out.MatchExpressions[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.MatchExpressions = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Convert_unversioned_LabelSelector_To_v1beta1_LabelSelector(in *unversioned.LabelSelector, out *LabelSelector, s conversion.Scope) error {
|
||||
return autoConvert_unversioned_LabelSelector_To_v1beta1_LabelSelector(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_unversioned_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in *unversioned.LabelSelectorRequirement, out *LabelSelectorRequirement, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*unversioned.LabelSelectorRequirement))(in)
|
||||
}
|
||||
out.Key = in.Key
|
||||
out.Operator = LabelSelectorOperator(in.Operator)
|
||||
if in.Values != nil {
|
||||
out.Values = make([]string, len(in.Values))
|
||||
for i := range in.Values {
|
||||
out.Values[i] = in.Values[i]
|
||||
}
|
||||
} else {
|
||||
out.Values = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Convert_unversioned_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in *unversioned.LabelSelectorRequirement, out *LabelSelectorRequirement, s conversion.Scope) error {
|
||||
return autoConvert_unversioned_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1_AWSElasticBlockStoreVolumeSource_To_api_AWSElasticBlockStoreVolumeSource(in *v1.AWSElasticBlockStoreVolumeSource, out *api.AWSElasticBlockStoreVolumeSource, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*v1.AWSElasticBlockStoreVolumeSource))(in)
|
||||
|
@ -2578,10 +2628,10 @@ func autoConvert_extensions_DaemonSetSpec_To_v1beta1_DaemonSetSpec(in *extension
|
|||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*extensions.DaemonSetSpec))(in)
|
||||
}
|
||||
// unable to generate simple pointer conversion for extensions.LabelSelector -> v1beta1.LabelSelector
|
||||
// unable to generate simple pointer conversion for unversioned.LabelSelector -> v1beta1.LabelSelector
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(LabelSelector)
|
||||
if err := Convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
if err := Convert_unversioned_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -3169,10 +3219,10 @@ func autoConvert_extensions_JobSpec_To_v1beta1_JobSpec(in *extensions.JobSpec, o
|
|||
} else {
|
||||
out.ActiveDeadlineSeconds = nil
|
||||
}
|
||||
// unable to generate simple pointer conversion for extensions.LabelSelector -> v1beta1.LabelSelector
|
||||
// unable to generate simple pointer conversion for unversioned.LabelSelector -> v1beta1.LabelSelector
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(LabelSelector)
|
||||
if err := Convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
if err := Convert_unversioned_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -3230,56 +3280,6 @@ func Convert_extensions_JobStatus_To_v1beta1_JobStatus(in *extensions.JobStatus,
|
|||
return autoConvert_extensions_JobStatus_To_v1beta1_JobStatus(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_extensions_LabelSelector_To_v1beta1_LabelSelector(in *extensions.LabelSelector, out *LabelSelector, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*extensions.LabelSelector))(in)
|
||||
}
|
||||
if in.MatchLabels != nil {
|
||||
out.MatchLabels = make(map[string]string)
|
||||
for key, val := range in.MatchLabels {
|
||||
out.MatchLabels[key] = val
|
||||
}
|
||||
} else {
|
||||
out.MatchLabels = nil
|
||||
}
|
||||
if in.MatchExpressions != nil {
|
||||
out.MatchExpressions = make([]LabelSelectorRequirement, len(in.MatchExpressions))
|
||||
for i := range in.MatchExpressions {
|
||||
if err := Convert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(&in.MatchExpressions[i], &out.MatchExpressions[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
} else {
|
||||
out.MatchExpressions = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in *extensions.LabelSelector, out *LabelSelector, s conversion.Scope) error {
|
||||
return autoConvert_extensions_LabelSelector_To_v1beta1_LabelSelector(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in *extensions.LabelSelectorRequirement, out *LabelSelectorRequirement, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*extensions.LabelSelectorRequirement))(in)
|
||||
}
|
||||
out.Key = in.Key
|
||||
out.Operator = LabelSelectorOperator(in.Operator)
|
||||
if in.Values != nil {
|
||||
out.Values = make([]string, len(in.Values))
|
||||
for i := range in.Values {
|
||||
out.Values[i] = in.Values[i]
|
||||
}
|
||||
} else {
|
||||
out.Values = nil
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
func Convert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in *extensions.LabelSelectorRequirement, out *LabelSelectorRequirement, s conversion.Scope) error {
|
||||
return autoConvert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_extensions_NodeUtilization_To_v1beta1_NodeUtilization(in *extensions.NodeUtilization, out *NodeUtilization, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*extensions.NodeUtilization))(in)
|
||||
|
@ -3350,10 +3350,10 @@ func autoConvert_extensions_ReplicaSetSpec_To_v1beta1_ReplicaSetSpec(in *extensi
|
|||
if err := s.Convert(&in.Replicas, &out.Replicas, 0); err != nil {
|
||||
return err
|
||||
}
|
||||
// unable to generate simple pointer conversion for extensions.LabelSelector -> v1beta1.LabelSelector
|
||||
// unable to generate simple pointer conversion for unversioned.LabelSelector -> v1beta1.LabelSelector
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(LabelSelector)
|
||||
if err := Convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
if err := Convert_unversioned_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -3755,10 +3755,10 @@ func autoConvert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *DaemonSet
|
|||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*DaemonSetSpec))(in)
|
||||
}
|
||||
// unable to generate simple pointer conversion for v1beta1.LabelSelector -> extensions.LabelSelector
|
||||
// unable to generate simple pointer conversion for v1beta1.LabelSelector -> unversioned.LabelSelector
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(extensions.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
out.Selector = new(unversioned.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_unversioned_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -4327,10 +4327,10 @@ func autoConvert_v1beta1_JobSpec_To_extensions_JobSpec(in *JobSpec, out *extensi
|
|||
} else {
|
||||
out.ActiveDeadlineSeconds = nil
|
||||
}
|
||||
// unable to generate simple pointer conversion for v1beta1.LabelSelector -> extensions.LabelSelector
|
||||
// unable to generate simple pointer conversion for v1beta1.LabelSelector -> unversioned.LabelSelector
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(extensions.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
out.Selector = new(unversioned.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_unversioned_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -4388,7 +4388,7 @@ func Convert_v1beta1_JobStatus_To_extensions_JobStatus(in *JobStatus, out *exten
|
|||
return autoConvert_v1beta1_JobStatus_To_extensions_JobStatus(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1beta1_LabelSelector_To_extensions_LabelSelector(in *LabelSelector, out *extensions.LabelSelector, s conversion.Scope) error {
|
||||
func autoConvert_v1beta1_LabelSelector_To_unversioned_LabelSelector(in *LabelSelector, out *unversioned.LabelSelector, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*LabelSelector))(in)
|
||||
}
|
||||
|
@ -4401,9 +4401,9 @@ func autoConvert_v1beta1_LabelSelector_To_extensions_LabelSelector(in *LabelSele
|
|||
out.MatchLabels = nil
|
||||
}
|
||||
if in.MatchExpressions != nil {
|
||||
out.MatchExpressions = make([]extensions.LabelSelectorRequirement, len(in.MatchExpressions))
|
||||
out.MatchExpressions = make([]unversioned.LabelSelectorRequirement, len(in.MatchExpressions))
|
||||
for i := range in.MatchExpressions {
|
||||
if err := Convert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(&in.MatchExpressions[i], &out.MatchExpressions[i], s); err != nil {
|
||||
if err := Convert_v1beta1_LabelSelectorRequirement_To_unversioned_LabelSelectorRequirement(&in.MatchExpressions[i], &out.MatchExpressions[i], s); err != nil {
|
||||
return err
|
||||
}
|
||||
}
|
||||
|
@ -4413,16 +4413,16 @@ func autoConvert_v1beta1_LabelSelector_To_extensions_LabelSelector(in *LabelSele
|
|||
return nil
|
||||
}
|
||||
|
||||
func Convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in *LabelSelector, out *extensions.LabelSelector, s conversion.Scope) error {
|
||||
return autoConvert_v1beta1_LabelSelector_To_extensions_LabelSelector(in, out, s)
|
||||
func Convert_v1beta1_LabelSelector_To_unversioned_LabelSelector(in *LabelSelector, out *unversioned.LabelSelector, s conversion.Scope) error {
|
||||
return autoConvert_v1beta1_LabelSelector_To_unversioned_LabelSelector(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(in *LabelSelectorRequirement, out *extensions.LabelSelectorRequirement, s conversion.Scope) error {
|
||||
func autoConvert_v1beta1_LabelSelectorRequirement_To_unversioned_LabelSelectorRequirement(in *LabelSelectorRequirement, out *unversioned.LabelSelectorRequirement, s conversion.Scope) error {
|
||||
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
|
||||
defaulting.(func(*LabelSelectorRequirement))(in)
|
||||
}
|
||||
out.Key = in.Key
|
||||
out.Operator = extensions.LabelSelectorOperator(in.Operator)
|
||||
out.Operator = unversioned.LabelSelectorOperator(in.Operator)
|
||||
if in.Values != nil {
|
||||
out.Values = make([]string, len(in.Values))
|
||||
for i := range in.Values {
|
||||
|
@ -4434,8 +4434,8 @@ func autoConvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorReq
|
|||
return nil
|
||||
}
|
||||
|
||||
func Convert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(in *LabelSelectorRequirement, out *extensions.LabelSelectorRequirement, s conversion.Scope) error {
|
||||
return autoConvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(in, out, s)
|
||||
func Convert_v1beta1_LabelSelectorRequirement_To_unversioned_LabelSelectorRequirement(in *LabelSelectorRequirement, out *unversioned.LabelSelectorRequirement, s conversion.Scope) error {
|
||||
return autoConvert_v1beta1_LabelSelectorRequirement_To_unversioned_LabelSelectorRequirement(in, out, s)
|
||||
}
|
||||
|
||||
func autoConvert_v1beta1_ListOptions_To_api_ListOptions(in *ListOptions, out *api.ListOptions, s conversion.Scope) error {
|
||||
|
@ -4534,10 +4534,10 @@ func autoConvert_v1beta1_ReplicaSetSpec_To_extensions_ReplicaSetSpec(in *Replica
|
|||
defaulting.(func(*ReplicaSetSpec))(in)
|
||||
}
|
||||
// in.Replicas has no peer in out
|
||||
// unable to generate simple pointer conversion for v1beta1.LabelSelector -> extensions.LabelSelector
|
||||
// unable to generate simple pointer conversion for v1beta1.LabelSelector -> unversioned.LabelSelector
|
||||
if in.Selector != nil {
|
||||
out.Selector = new(extensions.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
out.Selector = new(unversioned.LabelSelector)
|
||||
if err := Convert_v1beta1_LabelSelector_To_unversioned_LabelSelector(in.Selector, out.Selector, s); err != nil {
|
||||
return err
|
||||
}
|
||||
} else {
|
||||
|
@ -4865,8 +4865,6 @@ func init() {
|
|||
autoConvert_extensions_JobSpec_To_v1beta1_JobSpec,
|
||||
autoConvert_extensions_JobStatus_To_v1beta1_JobStatus,
|
||||
autoConvert_extensions_Job_To_v1beta1_Job,
|
||||
autoConvert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement,
|
||||
autoConvert_extensions_LabelSelector_To_v1beta1_LabelSelector,
|
||||
autoConvert_extensions_NodeUtilization_To_v1beta1_NodeUtilization,
|
||||
autoConvert_extensions_ReplicaSetList_To_v1beta1_ReplicaSetList,
|
||||
autoConvert_extensions_ReplicaSetSpec_To_v1beta1_ReplicaSetSpec,
|
||||
|
@ -4884,6 +4882,8 @@ func init() {
|
|||
autoConvert_extensions_ThirdPartyResourceData_To_v1beta1_ThirdPartyResourceData,
|
||||
autoConvert_extensions_ThirdPartyResourceList_To_v1beta1_ThirdPartyResourceList,
|
||||
autoConvert_extensions_ThirdPartyResource_To_v1beta1_ThirdPartyResource,
|
||||
autoConvert_unversioned_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement,
|
||||
autoConvert_unversioned_LabelSelector_To_v1beta1_LabelSelector,
|
||||
autoConvert_v1_AWSElasticBlockStoreVolumeSource_To_api_AWSElasticBlockStoreVolumeSource,
|
||||
autoConvert_v1_Capabilities_To_api_Capabilities,
|
||||
autoConvert_v1_CephFSVolumeSource_To_api_CephFSVolumeSource,
|
||||
|
@ -4961,8 +4961,8 @@ func init() {
|
|||
autoConvert_v1beta1_JobSpec_To_extensions_JobSpec,
|
||||
autoConvert_v1beta1_JobStatus_To_extensions_JobStatus,
|
||||
autoConvert_v1beta1_Job_To_extensions_Job,
|
||||
autoConvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement,
|
||||
autoConvert_v1beta1_LabelSelector_To_extensions_LabelSelector,
|
||||
autoConvert_v1beta1_LabelSelectorRequirement_To_unversioned_LabelSelectorRequirement,
|
||||
autoConvert_v1beta1_LabelSelector_To_unversioned_LabelSelector,
|
||||
autoConvert_v1beta1_ListOptions_To_api_ListOptions,
|
||||
autoConvert_v1beta1_NodeUtilization_To_extensions_NodeUtilization,
|
||||
autoConvert_v1beta1_ReplicaSetList_To_extensions_ReplicaSetList,
|
||||
|
|
|
@ -23,6 +23,8 @@ import (
|
|||
"strings"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
unversionedvalidation "k8s.io/kubernetes/pkg/api/unversioned/validation"
|
||||
apivalidation "k8s.io/kubernetes/pkg/api/validation"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
|
@ -210,9 +212,9 @@ func ValidateDaemonSetUpdateStrategy(strategy *extensions.DaemonSetUpdateStrateg
|
|||
func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *field.Path) field.ErrorList {
|
||||
allErrs := field.ErrorList{}
|
||||
|
||||
allErrs = append(allErrs, ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
|
||||
allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
|
||||
|
||||
selector, err := extensions.LabelSelectorAsSelector(spec.Selector)
|
||||
selector, err := unversioned.LabelSelectorAsSelector(spec.Selector)
|
||||
if err == nil && !selector.Matches(labels.Set(spec.Template.Labels)) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("template", "metadata", "labels"), spec.Template.Labels, "`selector` does not match template `labels`"))
|
||||
}
|
||||
|
@ -391,10 +393,10 @@ func ValidateJobSpec(spec *extensions.JobSpec, fldPath *field.Path) field.ErrorL
|
|||
if spec.Selector == nil {
|
||||
allErrs = append(allErrs, field.Required(fldPath.Child("selector"), ""))
|
||||
} else {
|
||||
allErrs = append(allErrs, ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
|
||||
allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
|
||||
}
|
||||
|
||||
if selector, err := extensions.LabelSelectorAsSelector(spec.Selector); err == nil {
|
||||
if selector, err := unversioned.LabelSelectorAsSelector(spec.Selector); err == nil {
|
||||
labels := labels.Set(spec.Template.Labels)
|
||||
if !selector.Matches(labels) {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("template", "metadata", "labels"), spec.Template.Labels, "`selector` does not match template `labels`"))
|
||||
|
@ -604,36 +606,6 @@ func ValidateClusterAutoscaler(autoscaler *extensions.ClusterAutoscaler) field.E
|
|||
return allErrs
|
||||
}
|
||||
|
||||
func ValidateLabelSelector(ps *extensions.LabelSelector, fldPath *field.Path) field.ErrorList {
|
||||
allErrs := field.ErrorList{}
|
||||
if ps == nil {
|
||||
return allErrs
|
||||
}
|
||||
allErrs = append(allErrs, apivalidation.ValidateLabels(ps.MatchLabels, fldPath.Child("matchLabels"))...)
|
||||
for i, expr := range ps.MatchExpressions {
|
||||
allErrs = append(allErrs, ValidateLabelSelectorRequirement(expr, fldPath.Child("matchExpressions").Index(i))...)
|
||||
}
|
||||
return allErrs
|
||||
}
|
||||
|
||||
func ValidateLabelSelectorRequirement(sr extensions.LabelSelectorRequirement, fldPath *field.Path) field.ErrorList {
|
||||
allErrs := field.ErrorList{}
|
||||
switch sr.Operator {
|
||||
case extensions.LabelSelectorOpIn, extensions.LabelSelectorOpNotIn:
|
||||
if len(sr.Values) == 0 {
|
||||
allErrs = append(allErrs, field.Required(fldPath.Child("values"), "must be specified when `operator` is 'In' or 'NotIn'"))
|
||||
}
|
||||
case extensions.LabelSelectorOpExists, extensions.LabelSelectorOpDoesNotExist:
|
||||
if len(sr.Values) > 0 {
|
||||
allErrs = append(allErrs, field.Forbidden(fldPath.Child("values"), "may not be specified when `operator` is 'Exists' or 'DoesNotExist'"))
|
||||
}
|
||||
default:
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("operator"), sr.Operator, "not a valid selector operator"))
|
||||
}
|
||||
allErrs = append(allErrs, apivalidation.ValidateLabelName(sr.Key, fldPath.Child("key"))...)
|
||||
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"))...)
|
||||
|
@ -686,13 +658,13 @@ func ValidateReplicaSetSpec(spec *extensions.ReplicaSetSpec, fldPath *field.Path
|
|||
if spec.Selector == nil {
|
||||
allErrs = append(allErrs, field.Required(fldPath.Child("selector"), ""))
|
||||
} else {
|
||||
allErrs = append(allErrs, ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
|
||||
allErrs = append(allErrs, unversionedvalidation.ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
|
||||
if len(spec.Selector.MatchLabels)+len(spec.Selector.MatchExpressions) == 0 {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("selector"), spec.Selector, "empty selector is not valid for deployment."))
|
||||
}
|
||||
}
|
||||
|
||||
selector, err := extensions.LabelSelectorAsSelector(spec.Selector)
|
||||
selector, err := unversioned.LabelSelectorAsSelector(spec.Selector)
|
||||
if err != nil {
|
||||
allErrs = append(allErrs, field.Invalid(fldPath.Child("selector"), spec.Selector, "failed to convert LabelSelector to Selector."))
|
||||
} else {
|
||||
|
|
|
@ -22,6 +22,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/util/intstr"
|
||||
)
|
||||
|
@ -375,7 +376,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -383,7 +384,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -393,7 +394,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -401,7 +402,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector2},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector2},
|
||||
Template: validPodTemplateAbc2.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -411,7 +412,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -419,7 +420,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateNodeSelector.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -438,7 +439,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -446,7 +447,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -456,7 +457,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -464,7 +465,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: invalidSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: invalidSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -474,7 +475,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -482,7 +483,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: invalidPodTemplate.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -492,7 +493,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -500,7 +501,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateDef.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -510,7 +511,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -518,7 +519,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: readWriteVolumePodTemplate.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -528,7 +529,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
old: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -536,7 +537,7 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
|
|||
update: extensions.DaemonSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: invalidSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: invalidSelector},
|
||||
Template: validPodTemplateAbc.Template,
|
||||
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
|
||||
Type: extensions.RollingUpdateDaemonSetStrategyType,
|
||||
|
@ -589,7 +590,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -597,7 +598,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc-123", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
UpdateStrategy: validUpdateStrategy,
|
||||
},
|
||||
|
@ -613,14 +614,14 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
"zero-length ID": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
"missing-namespace": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc-123"},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -633,14 +634,14 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
"selector_doesnt_match": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Template: validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
"invalid template": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
},
|
||||
},
|
||||
"invalid_label": {
|
||||
|
@ -652,7 +653,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
},
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -677,7 +678,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
},
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -687,7 +688,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: api.PodTemplateSpec{
|
||||
Spec: api.PodSpec{
|
||||
RestartPolicy: api.RestartPolicyOnFailure,
|
||||
|
@ -706,7 +707,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: api.PodTemplateSpec{
|
||||
Spec: api.PodSpec{
|
||||
RestartPolicy: api.RestartPolicyNever,
|
||||
|
@ -725,7 +726,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
|
||||
Type: "",
|
||||
|
@ -741,7 +742,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
|
||||
Type: extensions.RollingUpdateDaemonSetStrategyType,
|
||||
|
@ -755,7 +756,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
|
||||
Type: extensions.RollingUpdateDaemonSetStrategyType,
|
||||
|
@ -772,7 +773,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
|
||||
Type: extensions.RollingUpdateDaemonSetStrategyType,
|
||||
|
@ -789,7 +790,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
|
||||
Type: extensions.RollingUpdateDaemonSetStrategyType,
|
||||
|
@ -806,7 +807,7 @@ func TestValidateDaemonSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validSelector},
|
||||
Template: validPodTemplate.Template,
|
||||
UpdateStrategy: extensions.DaemonSetUpdateStrategy{
|
||||
Type: extensions.RollingUpdateDaemonSetStrategyType,
|
||||
|
@ -1007,7 +1008,7 @@ func TestValidateDeploymentRollback(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestValidateJob(t *testing.T) {
|
||||
validSelector := &extensions.LabelSelector{
|
||||
validSelector := &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"a": "b"},
|
||||
}
|
||||
validPodTemplateSpec := api.PodTemplateSpec{
|
||||
|
@ -1529,7 +1530,7 @@ func TestValidateReplicaSetStatusUpdate(t *testing.T) {
|
|||
old: extensions.ReplicaSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
Status: extensions.ReplicaSetStatus{
|
||||
|
@ -1540,7 +1541,7 @@ func TestValidateReplicaSetStatusUpdate(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 3,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
Status: extensions.ReplicaSetStatus{
|
||||
|
@ -1561,7 +1562,7 @@ func TestValidateReplicaSetStatusUpdate(t *testing.T) {
|
|||
old: extensions.ReplicaSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
Status: extensions.ReplicaSetStatus{
|
||||
|
@ -1572,7 +1573,7 @@ func TestValidateReplicaSetStatusUpdate(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 2,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
Status: extensions.ReplicaSetStatus{
|
||||
|
@ -1637,7 +1638,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
old: extensions.ReplicaSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1645,7 +1646,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 3,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1654,7 +1655,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
old: extensions.ReplicaSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1662,7 +1663,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 1,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &readWriteVolumePodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1680,7 +1681,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
old: extensions.ReplicaSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1688,7 +1689,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 2,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &readWriteVolumePodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1697,7 +1698,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
old: extensions.ReplicaSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1705,7 +1706,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 2,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: invalidLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: invalidLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1714,7 +1715,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
old: extensions.ReplicaSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1722,7 +1723,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 2,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &invalidPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1731,7 +1732,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
old: extensions.ReplicaSet{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1739,7 +1740,7 @@ func TestValidateReplicaSetUpdate(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: -1,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1795,14 +1796,14 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc-123", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1810,7 +1811,7 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc-123", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 1,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &readWriteVolumePodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1825,14 +1826,14 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
"zero-length ID": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
"missing-namespace": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc-123"},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1845,21 +1846,21 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
"selector_doesnt_match": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
"invalid manifest": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
},
|
||||
},
|
||||
"read-write persistent disk with > 1 pod": {
|
||||
ObjectMeta: api.ObjectMeta{Name: "abc"},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: 2,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &readWriteVolumePodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1867,7 +1868,7 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: -1,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
},
|
||||
},
|
||||
"invalid_label": {
|
||||
|
@ -1879,7 +1880,7 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
},
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1904,7 +1905,7 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
},
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &validPodTemplate.Template,
|
||||
},
|
||||
},
|
||||
|
@ -1914,7 +1915,7 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &api.PodTemplateSpec{
|
||||
Spec: api.PodSpec{
|
||||
RestartPolicy: api.RestartPolicyOnFailure,
|
||||
|
@ -1933,7 +1934,7 @@ func TestValidateReplicaSet(t *testing.T) {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: validLabels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: validLabels},
|
||||
Template: &api.PodTemplateSpec{
|
||||
Spec: api.PodSpec{
|
||||
RestartPolicy: api.RestartPolicyNever,
|
||||
|
|
|
@ -21,6 +21,7 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
)
|
||||
|
@ -304,7 +305,7 @@ func (s *StoreToReplicaSetLister) GetPodReplicaSets(pod *api.Pod) (rss []extensi
|
|||
if rs.Namespace != pod.Namespace {
|
||||
continue
|
||||
}
|
||||
selector, err = extensions.LabelSelectorAsSelector(rs.Spec.Selector)
|
||||
selector, err = unversioned.LabelSelectorAsSelector(rs.Spec.Selector)
|
||||
if err != nil {
|
||||
err = fmt.Errorf("failed to convert pod selector to selector: %v", err)
|
||||
return
|
||||
|
@ -361,7 +362,7 @@ func (s *StoreToDaemonSetLister) GetPodDaemonSets(pod *api.Pod) (daemonSets []ex
|
|||
if daemonSet.Namespace != pod.Namespace {
|
||||
continue
|
||||
}
|
||||
selector, err = extensions.LabelSelectorAsSelector(daemonSet.Spec.Selector)
|
||||
selector, err = unversioned.LabelSelectorAsSelector(daemonSet.Spec.Selector)
|
||||
if err != nil {
|
||||
// this should not happen if the DaemonSet passed validation
|
||||
return nil, err
|
||||
|
@ -483,7 +484,7 @@ func (s *StoreToJobLister) GetPodJobs(pod *api.Pod) (jobs []extensions.Job, err
|
|||
continue
|
||||
}
|
||||
|
||||
selector, _ = extensions.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
selector, _ = unversioned.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
if !selector.Matches(labels.Set(pod.Labels)) {
|
||||
continue
|
||||
}
|
||||
|
|
|
@ -20,6 +20,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
"k8s.io/kubernetes/pkg/util/sets"
|
||||
|
@ -258,7 +259,7 @@ func TestStoreToReplicaSetLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "basic", Namespace: "ns"},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "baz"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "baz"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -297,13 +298,13 @@ func TestStoreToReplicaSetLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "foo"},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
},
|
||||
},
|
||||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -384,7 +385,7 @@ func TestStoreToDaemonSetLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "basic", Namespace: "ns"},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "baz"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "baz"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -423,13 +424,13 @@ func TestStoreToDaemonSetLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "foo"},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
},
|
||||
},
|
||||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -513,7 +514,7 @@ func TestStoreToJobLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "basic", Namespace: "ns"},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"foo": "baz"},
|
||||
},
|
||||
},
|
||||
|
@ -556,7 +557,7 @@ func TestStoreToJobLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "foo"},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"foo": "bar"},
|
||||
},
|
||||
},
|
||||
|
@ -564,7 +565,7 @@ func TestStoreToJobLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"foo": "bar"},
|
||||
},
|
||||
},
|
||||
|
@ -589,7 +590,7 @@ func TestStoreToJobLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "foo"},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"foo": "bar"},
|
||||
},
|
||||
},
|
||||
|
@ -597,7 +598,7 @@ func TestStoreToJobLister(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "bar"},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"foo": "bar"},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -24,6 +24,7 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/api/validation"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/client/cache"
|
||||
|
@ -365,7 +366,7 @@ func (dsc *DaemonSetsController) updateNode(old, cur interface{}) {
|
|||
// getNodesToDaemonSetPods returns a map from nodes to daemon pods (corresponding to ds) running on the nodes.
|
||||
func (dsc *DaemonSetsController) getNodesToDaemonPods(ds *extensions.DaemonSet) (map[string][]*api.Pod, error) {
|
||||
nodeToDaemonPods := make(map[string][]*api.Pod)
|
||||
selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
|
||||
selector, err := unversioned.LabelSelectorAsSelector(ds.Spec.Selector)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ func newDaemonSet(name string) *extensions.DaemonSet {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: simpleDaemonSetLabel},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: simpleDaemonSetLabel},
|
||||
Template: api.PodTemplateSpec{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Labels: simpleDaemonSetLabel,
|
||||
|
|
|
@ -317,7 +317,7 @@ func (jm *JobController) syncJob(key string) error {
|
|||
return err
|
||||
}
|
||||
jobNeedsSync := jm.expectations.SatisfiedExpectations(jobKey)
|
||||
selector, _ := extensions.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
selector, _ := unversioned.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
podList, err := jm.podStore.Pods(job.Namespace).List(selector)
|
||||
if err != nil {
|
||||
glog.Errorf("Error getting pods for job %q: %v", key, err)
|
||||
|
|
|
@ -45,7 +45,7 @@ func newJob(parallelism, completions int) *extensions.Job {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"foo": "bar"},
|
||||
},
|
||||
Template: api.PodTemplateSpec{
|
||||
|
@ -496,7 +496,7 @@ func TestJobPodLookup(t *testing.T) {
|
|||
job: &extensions.Job{
|
||||
ObjectMeta: api.ObjectMeta{Name: "foo"},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"foo": "bar"},
|
||||
},
|
||||
},
|
||||
|
@ -515,11 +515,11 @@ func TestJobPodLookup(t *testing.T) {
|
|||
job: &extensions.Job{
|
||||
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
MatchExpressions: []extensions.LabelSelectorRequirement{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchExpressions: []unversioned.LabelSelectorRequirement{
|
||||
{
|
||||
Key: "foo",
|
||||
Operator: extensions.LabelSelectorOpIn,
|
||||
Operator: unversioned.LabelSelectorOpIn,
|
||||
Values: []string{"bar"},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -267,7 +267,7 @@ func TestMonitorNodeStatusEvictPods(t *testing.T) {
|
|||
Namespace: "default",
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"daemon": "yes"},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -26,6 +26,7 @@ import (
|
|||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/client/cache"
|
||||
clientset "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_2"
|
||||
|
@ -436,7 +437,7 @@ func (rsc *ReplicaSetController) syncReplicaSet(key string) error {
|
|||
return err
|
||||
}
|
||||
rsNeedsSync := rsc.expectations.SatisfiedExpectations(rsKey)
|
||||
selector, err := extensions.LabelSelectorAsSelector(rs.Spec.Selector)
|
||||
selector, err := unversioned.LabelSelectorAsSelector(rs.Spec.Selector)
|
||||
if err != nil {
|
||||
glog.Errorf("Error converting pod selector to selector: %v", err)
|
||||
return err
|
||||
|
|
|
@ -66,7 +66,7 @@ func newReplicaSet(replicas int, selectorMap map[string]string) *extensions.Repl
|
|||
},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Replicas: replicas,
|
||||
Selector: &extensions.LabelSelector{MatchLabels: selectorMap},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: selectorMap},
|
||||
Template: &api.PodTemplateSpec{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Labels: map[string]string{
|
||||
|
@ -379,7 +379,7 @@ func TestPodControllerLookup(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "foo"},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -394,7 +394,7 @@ func TestPodControllerLookup(t *testing.T) {
|
|||
{
|
||||
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
|
||||
Spec: extensions.ReplicaSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
|
||||
},
|
||||
},
|
||||
},
|
||||
|
@ -537,7 +537,7 @@ func TestUpdatePods(t *testing.T) {
|
|||
manager.rsStore.Store.Add(testRSSpec1)
|
||||
testRSSpec2 := *testRSSpec1
|
||||
labelMap2 := map[string]string{"bar": "foo"}
|
||||
testRSSpec2.Spec.Selector = &extensions.LabelSelector{MatchLabels: labelMap2}
|
||||
testRSSpec2.Spec.Selector = &unversioned.LabelSelector{MatchLabels: labelMap2}
|
||||
testRSSpec2.Name = "barfoo"
|
||||
manager.rsStore.Store.Add(&testRSSpec2)
|
||||
|
||||
|
|
|
@ -242,7 +242,7 @@ func TestDrain(t *testing.T) {
|
|||
SelfLink: "/apis/extensions/v1beta1/namespaces/default/daemonsets/ds",
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: labels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: labels},
|
||||
},
|
||||
}
|
||||
|
||||
|
@ -270,7 +270,7 @@ func TestDrain(t *testing.T) {
|
|||
SelfLink: "/apis/extensions/v1beta1/namespaces/default/jobs/job",
|
||||
},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: labels},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: labels},
|
||||
},
|
||||
}
|
||||
|
||||
|
|
|
@ -920,7 +920,7 @@ func describeJob(job *extensions.Job, events *api.EventList) (string, error) {
|
|||
fmt.Fprintf(out, "Name:\t%s\n", job.Name)
|
||||
fmt.Fprintf(out, "Namespace:\t%s\n", job.Namespace)
|
||||
fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&job.Spec.Template.Spec))
|
||||
selector, _ := extensions.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
selector, _ := unversioned.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
fmt.Fprintf(out, "Selector:\t%s\n", selector)
|
||||
fmt.Fprintf(out, "Parallelism:\t%d\n", *job.Spec.Parallelism)
|
||||
if job.Spec.Completions != nil {
|
||||
|
@ -958,7 +958,7 @@ func (d *DaemonSetDescriber) Describe(namespace, name string) (string, error) {
|
|||
return "", err
|
||||
}
|
||||
|
||||
selector, err := extensions.LabelSelectorAsSelector(daemon.Spec.Selector)
|
||||
selector, err := unversioned.LabelSelectorAsSelector(daemon.Spec.Selector)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
|
@ -976,7 +976,7 @@ func describeDaemonSet(daemon *extensions.DaemonSet, events *api.EventList, runn
|
|||
return tabbedString(func(out io.Writer) error {
|
||||
fmt.Fprintf(out, "Name:\t%s\n", daemon.Name)
|
||||
fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&daemon.Spec.Template.Spec))
|
||||
selector, err := extensions.LabelSelectorAsSelector(daemon.Spec.Selector)
|
||||
selector, err := unversioned.LabelSelectorAsSelector(daemon.Spec.Selector)
|
||||
if err != nil {
|
||||
// this shouldn't happen if LabelSelector passed validation
|
||||
return err
|
||||
|
@ -1645,7 +1645,7 @@ func getDaemonSetsForLabels(c client.DaemonSetInterface, labelsToMatch labels.La
|
|||
// Find the ones that match labelsToMatch.
|
||||
var matchingDaemonSets []extensions.DaemonSet
|
||||
for _, ds := range dss.Items {
|
||||
selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
|
||||
selector, err := unversioned.LabelSelectorAsSelector(ds.Spec.Selector)
|
||||
if err != nil {
|
||||
// this should never happen if the DaemonSet passed validation
|
||||
return nil, err
|
||||
|
|
|
@ -740,7 +740,7 @@ func printJob(job *extensions.Job, w io.Writer, options PrintOptions) error {
|
|||
}
|
||||
}
|
||||
|
||||
selector, _ := extensions.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
selector, _ := unversioned.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
_, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%d",
|
||||
name,
|
||||
firstContainer.Name,
|
||||
|
@ -941,7 +941,7 @@ func printDaemonSet(ds *extensions.DaemonSet, w io.Writer, options PrintOptions)
|
|||
return err
|
||||
}
|
||||
}
|
||||
selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
|
||||
selector, err := unversioned.LabelSelectorAsSelector(ds.Spec.Selector)
|
||||
if err != nil {
|
||||
// this shouldn't happen if LabelSelector passed validation
|
||||
return err
|
||||
|
|
|
@ -23,6 +23,7 @@ import (
|
|||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/resource"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/util/validation"
|
||||
|
@ -266,7 +267,7 @@ func (JobV1Beta1) Generate(genericParams map[string]interface{}) (runtime.Object
|
|||
Labels: labels,
|
||||
},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: labels,
|
||||
},
|
||||
Template: api.PodTemplateSpec{
|
||||
|
|
|
@ -22,6 +22,7 @@ import (
|
|||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/resource"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
)
|
||||
|
||||
|
@ -746,7 +747,7 @@ func TestGenerateJob(t *testing.T) {
|
|||
Labels: map[string]string{"foo": "bar", "baz": "blah"},
|
||||
},
|
||||
Spec: extensions.JobSpec{
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"foo": "bar", "baz": "blah"},
|
||||
},
|
||||
Template: api.PodTemplateSpec{
|
||||
|
|
|
@ -251,7 +251,7 @@ func (reaper *JobReaper) Stop(namespace, name string, timeout time.Duration, gra
|
|||
return err
|
||||
}
|
||||
// at this point only dead pods are left, that should be removed
|
||||
selector, _ := extensions.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
selector, _ := unversioned.LabelSelectorAsSelector(job.Spec.Selector)
|
||||
options := api.ListOptions{LabelSelector: selector}
|
||||
podList, err := pods.List(options)
|
||||
if err != nil {
|
||||
|
|
|
@ -284,7 +284,7 @@ func TestJobStop(t *testing.T) {
|
|||
},
|
||||
Spec: extensions.JobSpec{
|
||||
Parallelism: &zero,
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"k1": "v1"},
|
||||
},
|
||||
},
|
||||
|
@ -298,7 +298,7 @@ func TestJobStop(t *testing.T) {
|
|||
},
|
||||
Spec: extensions.JobSpec{
|
||||
Parallelism: &zero,
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"k1": "v1"},
|
||||
},
|
||||
},
|
||||
|
@ -320,7 +320,7 @@ func TestJobStop(t *testing.T) {
|
|||
},
|
||||
Spec: extensions.JobSpec{
|
||||
Parallelism: &zero,
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"k1": "v1"},
|
||||
},
|
||||
},
|
||||
|
@ -334,7 +334,7 @@ func TestJobStop(t *testing.T) {
|
|||
},
|
||||
Spec: extensions.JobSpec{
|
||||
Parallelism: &zero,
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"k1": "v1"},
|
||||
},
|
||||
},
|
||||
|
|
|
@ -20,6 +20,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/fields"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
|
@ -43,7 +44,7 @@ func newValidDaemonSet() *extensions.DaemonSet {
|
|||
Namespace: api.NamespaceDefault,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"a": "b"}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{"a": "b"}},
|
||||
Template: api.PodTemplateSpec{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Labels: map[string]string{"a": "b"},
|
||||
|
@ -85,7 +86,7 @@ func TestCreate(t *testing.T) {
|
|||
// invalid (invalid selector)
|
||||
&extensions.DaemonSet{
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{}},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: map[string]string{}},
|
||||
Template: validDaemonSet.Spec.Template,
|
||||
},
|
||||
},
|
||||
|
@ -131,7 +132,7 @@ func TestUpdate(t *testing.T) {
|
|||
},
|
||||
func(obj runtime.Object) runtime.Object {
|
||||
object := obj.(*extensions.DaemonSet)
|
||||
object.Spec.Selector = &extensions.LabelSelector{MatchLabels: map[string]string{}}
|
||||
object.Spec.Selector = &unversioned.LabelSelector{MatchLabels: map[string]string{}}
|
||||
return object
|
||||
},
|
||||
func(obj runtime.Object) runtime.Object {
|
||||
|
|
|
@ -20,6 +20,7 @@ import (
|
|||
"testing"
|
||||
|
||||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
// Ensure that extensions/v1beta1 package is initialized.
|
||||
_ "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
|
||||
|
@ -48,7 +49,7 @@ func validNewJob() *extensions.Job {
|
|||
Spec: extensions.JobSpec{
|
||||
Completions: &completions,
|
||||
Parallelism: ¶llelism,
|
||||
Selector: &extensions.LabelSelector{
|
||||
Selector: &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"a": "b"},
|
||||
},
|
||||
Template: api.PodTemplateSpec{
|
||||
|
@ -84,7 +85,7 @@ func TestCreate(t *testing.T) {
|
|||
&extensions.Job{
|
||||
Spec: extensions.JobSpec{
|
||||
Completions: validJob.Spec.Completions,
|
||||
Selector: &extensions.LabelSelector{},
|
||||
Selector: &unversioned.LabelSelector{},
|
||||
Template: validJob.Spec.Template,
|
||||
},
|
||||
},
|
||||
|
@ -108,7 +109,7 @@ func TestUpdate(t *testing.T) {
|
|||
// invalid updateFunc
|
||||
func(obj runtime.Object) runtime.Object {
|
||||
object := obj.(*extensions.Job)
|
||||
object.Spec.Selector = &extensions.LabelSelector{}
|
||||
object.Spec.Selector = &unversioned.LabelSelector{}
|
||||
return object
|
||||
},
|
||||
func(obj runtime.Object) runtime.Object {
|
||||
|
|
|
@ -22,6 +22,7 @@ import (
|
|||
"k8s.io/kubernetes/pkg/api"
|
||||
"k8s.io/kubernetes/pkg/api/testapi"
|
||||
apitesting "k8s.io/kubernetes/pkg/api/testing"
|
||||
"k8s.io/kubernetes/pkg/api/unversioned"
|
||||
"k8s.io/kubernetes/pkg/apis/extensions"
|
||||
"k8s.io/kubernetes/pkg/labels"
|
||||
)
|
||||
|
@ -35,7 +36,7 @@ func TestJobStrategy(t *testing.T) {
|
|||
t.Errorf("Job should not allow create on update")
|
||||
}
|
||||
|
||||
validSelector := &extensions.LabelSelector{
|
||||
validSelector := &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"a": "b"},
|
||||
}
|
||||
validPodTemplateSpec := api.PodTemplateSpec{
|
||||
|
@ -100,7 +101,7 @@ func TestJobStatusStrategy(t *testing.T) {
|
|||
if StatusStrategy.AllowCreateOnUpdate() {
|
||||
t.Errorf("Job should not allow create on update")
|
||||
}
|
||||
validSelector := &extensions.LabelSelector{
|
||||
validSelector := &unversioned.LabelSelector{
|
||||
MatchLabels: map[string]string{"a": "b"},
|
||||
}
|
||||
validPodTemplateSpec := api.PodTemplateSpec{
|
||||
|
|
|
@ -147,7 +147,7 @@ var _ = Describe("Daemon set [Feature:DaemonSet]", func() {
|
|||
Name: dsName,
|
||||
},
|
||||
Spec: extensions.DaemonSetSpec{
|
||||
Selector: &extensions.LabelSelector{MatchLabels: complexLabel},
|
||||
Selector: &unversioned.LabelSelector{MatchLabels: complexLabel},
|
||||
Template: api.PodTemplateSpec{
|
||||
ObjectMeta: api.ObjectMeta{
|
||||
Labels: complexLabel,
|
||||
|
|
Loading…
Reference in New Issue