Merge pull request #18011 from sdminonne/podSelector_labelSelector

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot 2015-12-05 13:56:04 -08:00
commit e2679abdb8
32 changed files with 409 additions and 409 deletions

View File

@ -2941,7 +2941,7 @@
"description": "Completions specifies the desired number of successfully finished pods the job should be run with. Defaults to 1. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md" "description": "Completions specifies the desired number of successfully finished pods the job should be run with. Defaults to 1. More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md"
}, },
"selector": { "selector": {
"$ref": "v1beta1.PodSelector", "$ref": "v1beta1.LabelSelector",
"description": "Selector is a label query over pods that should match the pod count. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors" "description": "Selector is a label query over pods that should match the pod count. More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors"
}, },
"template": { "template": {
@ -2950,9 +2950,9 @@
} }
} }
}, },
"v1beta1.PodSelector": { "v1beta1.LabelSelector": {
"id": "v1beta1.PodSelector", "id": "v1beta1.LabelSelector",
"description": "A pod selector is a label query over a set of pods. The result of matchLabels and matchExpressions are ANDed. An empty pod selector matches all objects. A null pod selector matches no objects.", "description": "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.",
"properties": { "properties": {
"matchLabels": { "matchLabels": {
"type": "any", "type": "any",
@ -2961,15 +2961,15 @@
"matchExpressions": { "matchExpressions": {
"type": "array", "type": "array",
"items": { "items": {
"$ref": "v1beta1.PodSelectorRequirement" "$ref": "v1beta1.LabelSelectorRequirement"
}, },
"description": "matchExpressions is a list of pod selector requirements. The requirements are ANDed." "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed."
} }
} }
}, },
"v1beta1.PodSelectorRequirement": { "v1beta1.LabelSelectorRequirement": {
"id": "v1beta1.PodSelectorRequirement", "id": "v1beta1.LabelSelectorRequirement",
"description": "A pod selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
"required": [ "required": [
"key", "key",
"operator" "operator"

View File

@ -398,54 +398,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<h2 id="_definitions">Definitions</h2> <h2 id="_definitions">Definitions</h2>
<div class="sectionbody"> <div class="sectionbody">
<div class="sect2"> <div class="sect2">
<h3 id="_v1beta1_podselectorrequirement">v1beta1.PodSelectorRequirement</h3>
<div class="paragraph">
<p>A pod selector requirement is a selector that contains values, a key, and an operator that relates the key and values.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">key</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">key is the label key that the selector applies to.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">operator</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">operator represents a key&#8217;s relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">values</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div>
<div class="sect2">
<h3 id="_v1beta1_job">v1beta1.Job</h3> <h3 id="_v1beta1_job">v1beta1.Job</h3>
<div class="paragraph"> <div class="paragraph">
<p>Job represents the configuration of a single job.</p> <p>Job represents the configuration of a single job.</p>
@ -2090,6 +2042,47 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
</tbody> </tbody>
</table> </table>
</div>
<div class="sect2">
<h3 id="_v1beta1_labelselector">v1beta1.LabelSelector</h3>
<div class="paragraph">
<p>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.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">matchLabels</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_any">any</a></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">matchExpressions</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">matchExpressions is a list of label selector requirements. The requirements are ANDed.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1beta1_labelselectorrequirement">v1beta1.LabelSelectorRequirement</a> array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_v1_hostpathvolumesource">v1.HostPathVolumeSource</h3> <h3 id="_v1_hostpathvolumesource">v1.HostPathVolumeSource</h3>
@ -2692,6 +2685,54 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
</tbody> </tbody>
</table> </table>
</div>
<div class="sect2">
<h3 id="_v1beta1_labelselectorrequirement">v1beta1.LabelSelectorRequirement</h3>
<div class="paragraph">
<p>A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">key</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">key is the label key that the selector applies to.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">operator</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">operator represents a key&#8217;s relationship to a set of values. Valid operators ard In, NotIn, Exists and DoesNotExist.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">true</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">values</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">string array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_v1beta1_horizontalpodautoscaler">v1beta1.HorizontalPodAutoscaler</h3> <h3 id="_v1beta1_horizontalpodautoscaler">v1beta1.HorizontalPodAutoscaler</h3>
@ -3385,7 +3426,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
<td class="tableblock halign-left valign-top"><p class="tableblock">selector</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">selector</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Selector is a label query over pods that should match the pod count. More info: <a href="http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors">http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors</a></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">Selector is a label query over pods that should match the pod count. More info: <a href="http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors">http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors</a></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td> <td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1beta1_podselector">v1beta1.PodSelector</a></p></td> <td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1beta1_labelselector">v1beta1.LabelSelector</a></p></td>
<td class="tableblock halign-left valign-top"></td> <td class="tableblock halign-left valign-top"></td>
</tr> </tr>
<tr> <tr>
@ -3398,47 +3439,6 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
</tbody> </tbody>
</table> </table>
</div>
<div class="sect2">
<h3 id="_v1beta1_podselector">v1beta1.PodSelector</h3>
<div class="paragraph">
<p>A pod selector is a label query over a set of pods. The result of matchLabels and matchExpressions are ANDed. An empty pod selector matches all objects. A null pod selector matches no objects.</p>
</div>
<table class="tableblock frame-all grid-all" style="width:100%; ">
<colgroup>
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
<col style="width:20%;">
</colgroup>
<thead>
<tr>
<th class="tableblock halign-left valign-top">Name</th>
<th class="tableblock halign-left valign-top">Description</th>
<th class="tableblock halign-left valign-top">Required</th>
<th class="tableblock halign-left valign-top">Schema</th>
<th class="tableblock halign-left valign-top">Default</th>
</tr>
</thead>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">matchLabels</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">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.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_any">any</a></p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">matchExpressions</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">matchExpressions is a list of pod selector requirements. The requirements are ANDed.</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">false</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock"><a href="#_v1beta1_podselectorrequirement">v1beta1.PodSelectorRequirement</a> array</p></td>
<td class="tableblock halign-left valign-top"></td>
</tr>
</tbody>
</table>
</div> </div>
<div class="sect2"> <div class="sect2">
<h3 id="_v1_capability">v1.Capability</h3> <h3 id="_v1_capability">v1.Capability</h3>
@ -4268,7 +4268,7 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
</div> </div>
<div id="footer"> <div id="footer">
<div id="footer-text"> <div id="footer-text">
Last updated 2015-11-29 16:46:22 UTC Last updated 2015-12-01 22:09:32 UTC
</div> </div>
</div> </div>
</body> </body>

View File

@ -982,8 +982,8 @@ func deepCopy_extensions_DaemonSetList(in DaemonSetList, out *DaemonSetList, c *
func deepCopy_extensions_DaemonSetSpec(in DaemonSetSpec, out *DaemonSetSpec, c *conversion.Cloner) error { func deepCopy_extensions_DaemonSetSpec(in DaemonSetSpec, out *DaemonSetSpec, c *conversion.Cloner) error {
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(PodSelector) out.Selector = new(LabelSelector)
if err := deepCopy_extensions_PodSelector(*in.Selector, out.Selector, c); err != nil { if err := deepCopy_extensions_LabelSelector(*in.Selector, out.Selector, c); err != nil {
return err return err
} }
} else { } else {
@ -1345,8 +1345,8 @@ func deepCopy_extensions_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner)
out.Completions = nil out.Completions = nil
} }
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(PodSelector) out.Selector = new(LabelSelector)
if err := deepCopy_extensions_PodSelector(*in.Selector, out.Selector, c); err != nil { if err := deepCopy_extensions_LabelSelector(*in.Selector, out.Selector, c); err != nil {
return err return err
} }
} else { } else {
@ -1391,13 +1391,7 @@ func deepCopy_extensions_JobStatus(in JobStatus, out *JobStatus, c *conversion.C
return nil return nil
} }
func deepCopy_extensions_NodeUtilization(in NodeUtilization, out *NodeUtilization, c *conversion.Cloner) error { func deepCopy_extensions_LabelSelector(in LabelSelector, out *LabelSelector, c *conversion.Cloner) error {
out.Resource = in.Resource
out.Value = in.Value
return nil
}
func deepCopy_extensions_PodSelector(in PodSelector, out *PodSelector, c *conversion.Cloner) error {
if in.MatchLabels != nil { if in.MatchLabels != nil {
out.MatchLabels = make(map[string]string) out.MatchLabels = make(map[string]string)
for key, val := range in.MatchLabels { for key, val := range in.MatchLabels {
@ -1407,9 +1401,9 @@ func deepCopy_extensions_PodSelector(in PodSelector, out *PodSelector, c *conver
out.MatchLabels = nil out.MatchLabels = nil
} }
if in.MatchExpressions != nil { if in.MatchExpressions != nil {
out.MatchExpressions = make([]PodSelectorRequirement, len(in.MatchExpressions)) out.MatchExpressions = make([]LabelSelectorRequirement, len(in.MatchExpressions))
for i := range in.MatchExpressions { for i := range in.MatchExpressions {
if err := deepCopy_extensions_PodSelectorRequirement(in.MatchExpressions[i], &out.MatchExpressions[i], c); err != nil { if err := deepCopy_extensions_LabelSelectorRequirement(in.MatchExpressions[i], &out.MatchExpressions[i], c); err != nil {
return err return err
} }
} }
@ -1419,7 +1413,7 @@ func deepCopy_extensions_PodSelector(in PodSelector, out *PodSelector, c *conver
return nil return nil
} }
func deepCopy_extensions_PodSelectorRequirement(in PodSelectorRequirement, out *PodSelectorRequirement, c *conversion.Cloner) error { func deepCopy_extensions_LabelSelectorRequirement(in LabelSelectorRequirement, out *LabelSelectorRequirement, c *conversion.Cloner) error {
out.Key = in.Key out.Key = in.Key
out.Operator = in.Operator out.Operator = in.Operator
if in.Values != nil { if in.Values != nil {
@ -1433,6 +1427,12 @@ func deepCopy_extensions_PodSelectorRequirement(in PodSelectorRequirement, out *
return nil return nil
} }
func deepCopy_extensions_NodeUtilization(in NodeUtilization, out *NodeUtilization, c *conversion.Cloner) error {
out.Resource = in.Resource
out.Value = in.Value
return nil
}
func deepCopy_extensions_ReplicationControllerDummy(in ReplicationControllerDummy, out *ReplicationControllerDummy, c *conversion.Cloner) error { func deepCopy_extensions_ReplicationControllerDummy(in ReplicationControllerDummy, out *ReplicationControllerDummy, c *conversion.Cloner) error {
if err := deepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil { if err := deepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err return err
@ -1659,9 +1659,9 @@ func init() {
deepCopy_extensions_JobList, deepCopy_extensions_JobList,
deepCopy_extensions_JobSpec, deepCopy_extensions_JobSpec,
deepCopy_extensions_JobStatus, deepCopy_extensions_JobStatus,
deepCopy_extensions_LabelSelector,
deepCopy_extensions_LabelSelectorRequirement,
deepCopy_extensions_NodeUtilization, deepCopy_extensions_NodeUtilization,
deepCopy_extensions_PodSelector,
deepCopy_extensions_PodSelectorRequirement,
deepCopy_extensions_ReplicationControllerDummy, deepCopy_extensions_ReplicationControllerDummy,
deepCopy_extensions_RollingUpdateDeployment, deepCopy_extensions_RollingUpdateDeployment,
deepCopy_extensions_Scale, deepCopy_extensions_Scale,

View File

@ -25,9 +25,9 @@ import (
"k8s.io/kubernetes/pkg/util/sets" "k8s.io/kubernetes/pkg/util/sets"
) )
// PodSelectorAsSelector converts the PodSelector api type into a struct that implements // LabelSelectorAsSelector converts the LabelSelector api type into a struct that implements
// labels.Selector // labels.Selector
func PodSelectorAsSelector(ps *PodSelector) (labels.Selector, error) { func LabelSelectorAsSelector(ps *LabelSelector) (labels.Selector, error) {
if ps == nil { if ps == nil {
return labels.Nothing(), nil return labels.Nothing(), nil
} }
@ -45,13 +45,13 @@ func PodSelectorAsSelector(ps *PodSelector) (labels.Selector, error) {
for _, expr := range ps.MatchExpressions { for _, expr := range ps.MatchExpressions {
var op labels.Operator var op labels.Operator
switch expr.Operator { switch expr.Operator {
case PodSelectorOpIn: case LabelSelectorOpIn:
op = labels.InOperator op = labels.InOperator
case PodSelectorOpNotIn: case LabelSelectorOpNotIn:
op = labels.NotInOperator op = labels.NotInOperator
case PodSelectorOpExists: case LabelSelectorOpExists:
op = labels.ExistsOperator op = labels.ExistsOperator
case PodSelectorOpDoesNotExist: case LabelSelectorOpDoesNotExist:
op = labels.DoesNotExistOperator op = labels.DoesNotExistOperator
default: default:
return nil, fmt.Errorf("%q is not a valid pod selector operator", expr.Operator) return nil, fmt.Errorf("%q is not a valid pod selector operator", expr.Operator)

View File

@ -23,11 +23,11 @@ import (
"k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/labels"
) )
func TestPodSelectorAsSelector(t *testing.T) { func TestLabelSelectorAsSelector(t *testing.T) {
matchLabels := map[string]string{"foo": "bar"} matchLabels := map[string]string{"foo": "bar"}
matchExpressions := []PodSelectorRequirement{{ matchExpressions := []LabelSelectorRequirement{{
Key: "baz", Key: "baz",
Operator: PodSelectorOpIn, Operator: LabelSelectorOpIn,
Values: []string{"qux", "norf"}, Values: []string{"qux", "norf"},
}} }}
mustParse := func(s string) labels.Selector { mustParse := func(s string) labels.Selector {
@ -38,29 +38,29 @@ func TestPodSelectorAsSelector(t *testing.T) {
return out return out
} }
tc := []struct { tc := []struct {
in *PodSelector in *LabelSelector
out labels.Selector out labels.Selector
expectErr bool expectErr bool
}{ }{
{in: nil, out: labels.Nothing()}, {in: nil, out: labels.Nothing()},
{in: &PodSelector{}, out: labels.Everything()}, {in: &LabelSelector{}, out: labels.Everything()},
{ {
in: &PodSelector{MatchLabels: matchLabels}, in: &LabelSelector{MatchLabels: matchLabels},
out: mustParse("foo in (bar)"), out: mustParse("foo in (bar)"),
}, },
{ {
in: &PodSelector{MatchExpressions: matchExpressions}, in: &LabelSelector{MatchExpressions: matchExpressions},
out: mustParse("baz in (norf,qux)"), out: mustParse("baz in (norf,qux)"),
}, },
{ {
in: &PodSelector{MatchLabels: matchLabels, MatchExpressions: matchExpressions}, in: &LabelSelector{MatchLabels: matchLabels, MatchExpressions: matchExpressions},
out: mustParse("foo in (bar),baz in (norf,qux)"), out: mustParse("foo in (bar),baz in (norf,qux)"),
}, },
{ {
in: &PodSelector{ in: &LabelSelector{
MatchExpressions: []PodSelectorRequirement{{ MatchExpressions: []LabelSelectorRequirement{{
Key: "baz", Key: "baz",
Operator: PodSelectorOpExists, Operator: LabelSelectorOpExists,
Values: []string{"qux", "norf"}, Values: []string{"qux", "norf"},
}}, }},
}, },
@ -69,7 +69,7 @@ func TestPodSelectorAsSelector(t *testing.T) {
} }
for i, tc := range tc { for i, tc := range tc {
out, err := PodSelectorAsSelector(tc.in) out, err := LabelSelectorAsSelector(tc.in)
if err == nil && tc.expectErr { if err == nil && tc.expectErr {
t.Errorf("[%v]expected error but got none.", i) t.Errorf("[%v]expected error but got none.", i)
} }

View File

@ -6217,7 +6217,7 @@ func (x *DaemonSetSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} else { } else {
if x.Selector == nil { if x.Selector == nil {
x.Selector = new(PodSelector) x.Selector = new(LabelSelector)
} }
x.Selector.CodecDecodeSelf(d) x.Selector.CodecDecodeSelf(d)
} }
@ -6263,7 +6263,7 @@ func (x *DaemonSetSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} }
} else { } else {
if x.Selector == nil { if x.Selector == nil {
x.Selector = new(PodSelector) x.Selector = new(LabelSelector)
} }
x.Selector.CodecDecodeSelf(d) x.Selector.CodecDecodeSelf(d)
} }
@ -8503,7 +8503,7 @@ func (x *JobSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} else { } else {
if x.Selector == nil { if x.Selector == nil {
x.Selector = new(PodSelector) x.Selector = new(LabelSelector)
} }
x.Selector.CodecDecodeSelf(d) x.Selector.CodecDecodeSelf(d)
} }
@ -8597,7 +8597,7 @@ func (x *JobSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} }
} else { } else {
if x.Selector == nil { if x.Selector == nil {
x.Selector = new(PodSelector) x.Selector = new(LabelSelector)
} }
x.Selector.CodecDecodeSelf(d) x.Selector.CodecDecodeSelf(d)
} }
@ -12900,7 +12900,7 @@ func (x *ClusterAutoscalerList) codecDecodeSelfFromArray(l int, d *codec1978.Dec
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) { func (x *LabelSelector) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -12975,7 +12975,7 @@ func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
_ = yym1084 _ = yym1084
if false { if false {
} else { } else {
h.encSlicePodSelectorRequirement(([]PodSelectorRequirement)(x.MatchExpressions), e) h.encSliceLabelSelectorRequirement(([]LabelSelectorRequirement)(x.MatchExpressions), e)
} }
} }
} else { } else {
@ -12993,7 +12993,7 @@ func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
_ = yym1085 _ = yym1085
if false { if false {
} else { } else {
h.encSlicePodSelectorRequirement(([]PodSelectorRequirement)(x.MatchExpressions), e) h.encSliceLabelSelectorRequirement(([]LabelSelectorRequirement)(x.MatchExpressions), e)
} }
} }
} }
@ -13007,7 +13007,7 @@ func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
func (x *PodSelector) CodecDecodeSelf(d *codec1978.Decoder) { func (x *LabelSelector) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13037,7 +13037,7 @@ func (x *PodSelector) CodecDecodeSelf(d *codec1978.Decoder) {
} }
} }
func (x *PodSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { func (x *LabelSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13080,7 +13080,7 @@ func (x *PodSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
_ = yym1092 _ = yym1092
if false { if false {
} else { } else {
h.decSlicePodSelectorRequirement((*[]PodSelectorRequirement)(yyv1091), d) h.decSliceLabelSelectorRequirement((*[]LabelSelectorRequirement)(yyv1091), d)
} }
} }
default: default:
@ -13090,7 +13090,7 @@ func (x *PodSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
func (x *PodSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { func (x *LabelSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13138,7 +13138,7 @@ func (x *PodSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
_ = yym1097 _ = yym1097
if false { if false {
} else { } else {
h.decSlicePodSelectorRequirement((*[]PodSelectorRequirement)(yyv1096), d) h.decSliceLabelSelectorRequirement((*[]LabelSelectorRequirement)(yyv1096), d)
} }
} }
for { for {
@ -13157,7 +13157,7 @@ func (x *PodSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
func (x *PodSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder) { func (x *LabelSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13258,7 +13258,7 @@ func (x *PodSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
func (x *PodSelectorRequirement) CodecDecodeSelf(d *codec1978.Decoder) { func (x *LabelSelectorRequirement) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13288,7 +13288,7 @@ func (x *PodSelectorRequirement) CodecDecodeSelf(d *codec1978.Decoder) {
} }
} }
func (x *PodSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { func (x *LabelSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13320,7 +13320,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Deco
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Operator = "" x.Operator = ""
} else { } else {
x.Operator = PodSelectorOperator(r.DecodeString()) x.Operator = LabelSelectorOperator(r.DecodeString())
} }
case "values": case "values":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
@ -13341,7 +13341,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Deco
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
func (x *PodSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { func (x *LabelSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13378,7 +13378,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.De
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Operator = "" x.Operator = ""
} else { } else {
x.Operator = PodSelectorOperator(r.DecodeString()) x.Operator = LabelSelectorOperator(r.DecodeString())
} }
yyj1114++ yyj1114++
if yyhl1114 { if yyhl1114 {
@ -13418,7 +13418,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.De
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
func (x PodSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder) { func (x LabelSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13431,7 +13431,7 @@ func (x PodSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
func (x *PodSelectorOperator) CodecDecodeSelf(d *codec1978.Decoder) { func (x *LabelSelectorOperator) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -14952,7 +14952,7 @@ func (x codecSelfer1234) decSliceClusterAutoscaler(v *[]ClusterAutoscaler, d *co
} }
} }
func (x codecSelfer1234) encSlicePodSelectorRequirement(v []PodSelectorRequirement, e *codec1978.Encoder) { func (x codecSelfer1234) encSliceLabelSelectorRequirement(v []LabelSelectorRequirement, e *codec1978.Encoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -14965,7 +14965,7 @@ func (x codecSelfer1234) encSlicePodSelectorRequirement(v []PodSelectorRequireme
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} }
func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirement, d *codec1978.Decoder) { func (x codecSelfer1234) decSliceLabelSelectorRequirement(v *[]LabelSelectorRequirement, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -14975,7 +14975,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
var yyc1201 bool var yyc1201 bool
if yyl1201 == 0 { if yyl1201 == 0 {
if yyv1201 == nil { if yyv1201 == nil {
yyv1201 = []PodSelectorRequirement{} yyv1201 = []LabelSelectorRequirement{}
yyc1201 = true yyc1201 = true
} else if len(yyv1201) != 0 { } else if len(yyv1201) != 0 {
yyv1201 = yyv1201[:0] yyv1201 = yyv1201[:0]
@ -14993,10 +14993,10 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
if yyrl1201 <= cap(yyv1201) { if yyrl1201 <= cap(yyv1201) {
yyv1201 = yyv1201[:yyrl1201] yyv1201 = yyv1201[:yyrl1201]
} else { } else {
yyv1201 = make([]PodSelectorRequirement, yyrl1201) yyv1201 = make([]LabelSelectorRequirement, yyrl1201)
} }
} else { } else {
yyv1201 = make([]PodSelectorRequirement, yyrl1201) yyv1201 = make([]LabelSelectorRequirement, yyrl1201)
} }
yyc1201 = true yyc1201 = true
yyrr1201 = len(yyv1201) yyrr1201 = len(yyv1201)
@ -15011,7 +15011,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
for ; yyj1201 < yyrr1201; yyj1201++ { for ; yyj1201 < yyrr1201; yyj1201++ {
yyh1201.ElemContainerState(yyj1201) yyh1201.ElemContainerState(yyj1201)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv1201[yyj1201] = PodSelectorRequirement{} yyv1201[yyj1201] = LabelSelectorRequirement{}
} else { } else {
yyv1202 := &yyv1201[yyj1201] yyv1202 := &yyv1201[yyj1201]
yyv1202.CodecDecodeSelf(d) yyv1202.CodecDecodeSelf(d)
@ -15020,10 +15020,10 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
} }
if yyrt1201 { if yyrt1201 {
for ; yyj1201 < yyl1201; yyj1201++ { for ; yyj1201 < yyl1201; yyj1201++ {
yyv1201 = append(yyv1201, PodSelectorRequirement{}) yyv1201 = append(yyv1201, LabelSelectorRequirement{})
yyh1201.ElemContainerState(yyj1201) yyh1201.ElemContainerState(yyj1201)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv1201[yyj1201] = PodSelectorRequirement{} yyv1201[yyj1201] = LabelSelectorRequirement{}
} else { } else {
yyv1203 := &yyv1201[yyj1201] yyv1203 := &yyv1201[yyj1201]
yyv1203.CodecDecodeSelf(d) yyv1203.CodecDecodeSelf(d)
@ -15037,13 +15037,13 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
for ; !r.CheckBreak(); yyj1201++ { for ; !r.CheckBreak(); yyj1201++ {
if yyj1201 >= len(yyv1201) { if yyj1201 >= len(yyv1201) {
yyv1201 = append(yyv1201, PodSelectorRequirement{}) // var yyz1201 PodSelectorRequirement yyv1201 = append(yyv1201, LabelSelectorRequirement{}) // var yyz1201 LabelSelectorRequirement
yyc1201 = true yyc1201 = true
} }
yyh1201.ElemContainerState(yyj1201) yyh1201.ElemContainerState(yyj1201)
if yyj1201 < len(yyv1201) { if yyj1201 < len(yyv1201) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv1201[yyj1201] = PodSelectorRequirement{} yyv1201[yyj1201] = LabelSelectorRequirement{}
} else { } else {
yyv1204 := &yyv1201[yyj1201] yyv1204 := &yyv1201[yyj1201]
yyv1204.CodecDecodeSelf(d) yyv1204.CodecDecodeSelf(d)
@ -15058,7 +15058,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
yyv1201 = yyv1201[:yyj1201] yyv1201 = yyv1201[:yyj1201]
yyc1201 = true yyc1201 = true
} else if yyj1201 == 0 && yyv1201 == nil { } else if yyj1201 == 0 && yyv1201 == nil {
yyv1201 = []PodSelectorRequirement{} yyv1201 = []LabelSelectorRequirement{}
yyc1201 = true yyc1201 = true
} }
} }

View File

@ -298,7 +298,7 @@ type DaemonSetSpec struct {
// Must match in order to be controlled. // Must match in order to be controlled.
// If empty, defaulted to labels on Pod template. // If empty, defaulted to labels on Pod template.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors // More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
Selector *PodSelector `json:"selector,omitempty"` Selector *LabelSelector `json:"selector,omitempty"`
// Template is the object that describes the pod that will be created. // 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 // The DaemonSet will create exactly one copy of this pod on every node
@ -403,7 +403,7 @@ type JobSpec struct {
Completions *int `json:"completions,omitempty"` Completions *int `json:"completions,omitempty"`
// Selector is a label query over pods that should match the pod count. // Selector is a label query over pods that should match the pod count.
Selector *PodSelector `json:"selector,omitempty"` Selector *LabelSelector `json:"selector,omitempty"`
// Template is the object that describes the pod that will be created when // Template is the object that describes the pod that will be created when
// executing a job. // executing a job.
@ -647,26 +647,26 @@ type ClusterAutoscalerList struct {
Items []ClusterAutoscaler `json:"items"` Items []ClusterAutoscaler `json:"items"`
} }
// A pod selector is a label query over a set of pods. The result of matchLabels and // A label selector is a label query over a set of resources. The result of matchLabels and
// matchExpressions are ANDed. An empty pod selector matches all objects. A null // matchExpressions are ANDed. An empty label selector matches all objects. A null
// pod selector matches no objects. // label selector matches no objects.
type PodSelector struct { type LabelSelector struct {
// matchLabels is a map of {key,value} pairs. A single {key,value} in the 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 // 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. // operator is "In", and the values array contains only "value". The requirements are ANDed.
MatchLabels map[string]string `json:"matchLabels,omitempty"` MatchLabels map[string]string `json:"matchLabels,omitempty"`
// matchExpressions is a list of pod selector requirements. The requirements are ANDed. // matchExpressions is a list of label selector requirements. The requirements are ANDed.
MatchExpressions []PodSelectorRequirement `json:"matchExpressions,omitempty"` MatchExpressions []LabelSelectorRequirement `json:"matchExpressions,omitempty"`
} }
// A pod selector requirement is a selector that contains values, a key, and an operator that // A label selector requirement is a selector that contains values, a key, and an operator that
// relates the key and values. // relates the key and values.
type PodSelectorRequirement struct { type LabelSelectorRequirement struct {
// key is the label key that the selector applies to. // key is the label key that the selector applies to.
Key string `json:"key" patchStrategy:"merge" patchMergeKey:"key"` Key string `json:"key" patchStrategy:"merge" patchMergeKey:"key"`
// operator represents a key's relationship to a set of values. // operator represents a key's relationship to a set of values.
// Valid operators ard In, NotIn, Exists and DoesNotExist. // Valid operators ard In, NotIn, Exists and DoesNotExist.
Operator PodSelectorOperator `json:"operator"` Operator LabelSelectorOperator `json:"operator"`
// values is an array of string values. If the operator is In or NotIn, // 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 non-empty. If the operator is Exists or DoesNotExist,
// the values array must be empty. This array is replaced during a strategic // the values array must be empty. This array is replaced during a strategic
@ -674,12 +674,12 @@ type PodSelectorRequirement struct {
Values []string `json:"values,omitempty"` Values []string `json:"values,omitempty"`
} }
// A pod selector operator is the set of operators that can be used in a selector requirement. // A label selector operator is the set of operators that can be used in a selector requirement.
type PodSelectorOperator string type LabelSelectorOperator string
const ( const (
PodSelectorOpIn PodSelectorOperator = "In" LabelSelectorOpIn LabelSelectorOperator = "In"
PodSelectorOpNotIn PodSelectorOperator = "NotIn" LabelSelectorOpNotIn LabelSelectorOperator = "NotIn"
PodSelectorOpExists PodSelectorOperator = "Exists" LabelSelectorOpExists LabelSelectorOperator = "Exists"
PodSelectorOpDoesNotExist PodSelectorOperator = "DoesNotExist" LabelSelectorOpDoesNotExist LabelSelectorOperator = "DoesNotExist"
) )

View File

@ -2302,8 +2302,8 @@ func autoconvert_extensions_DaemonSetSpec_To_v1beta1_DaemonSetSpec(in *extension
defaulting.(func(*extensions.DaemonSetSpec))(in) defaulting.(func(*extensions.DaemonSetSpec))(in)
} }
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(PodSelector) out.Selector = new(LabelSelector)
if err := convert_extensions_PodSelector_To_v1beta1_PodSelector(in.Selector, out.Selector, s); err != nil { if err := convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
return err return err
} }
} else { } else {
@ -2821,8 +2821,8 @@ func autoconvert_extensions_JobSpec_To_v1beta1_JobSpec(in *extensions.JobSpec, o
out.Completions = nil out.Completions = nil
} }
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(PodSelector) out.Selector = new(LabelSelector)
if err := convert_extensions_PodSelector_To_v1beta1_PodSelector(in.Selector, out.Selector, s); err != nil { if err := convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
return err return err
} }
} else { } else {
@ -2876,22 +2876,9 @@ func convert_extensions_JobStatus_To_v1beta1_JobStatus(in *extensions.JobStatus,
return autoconvert_extensions_JobStatus_To_v1beta1_JobStatus(in, out, s) return autoconvert_extensions_JobStatus_To_v1beta1_JobStatus(in, out, s)
} }
func autoconvert_extensions_NodeUtilization_To_v1beta1_NodeUtilization(in *extensions.NodeUtilization, out *NodeUtilization, s conversion.Scope) error { 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 { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*extensions.NodeUtilization))(in) defaulting.(func(*extensions.LabelSelector))(in)
}
out.Resource = NodeResource(in.Resource)
out.Value = in.Value
return nil
}
func convert_extensions_NodeUtilization_To_v1beta1_NodeUtilization(in *extensions.NodeUtilization, out *NodeUtilization, s conversion.Scope) error {
return autoconvert_extensions_NodeUtilization_To_v1beta1_NodeUtilization(in, out, s)
}
func autoconvert_extensions_PodSelector_To_v1beta1_PodSelector(in *extensions.PodSelector, out *PodSelector, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*extensions.PodSelector))(in)
} }
if in.MatchLabels != nil { if in.MatchLabels != nil {
out.MatchLabels = make(map[string]string) out.MatchLabels = make(map[string]string)
@ -2902,9 +2889,9 @@ func autoconvert_extensions_PodSelector_To_v1beta1_PodSelector(in *extensions.Po
out.MatchLabels = nil out.MatchLabels = nil
} }
if in.MatchExpressions != nil { if in.MatchExpressions != nil {
out.MatchExpressions = make([]PodSelectorRequirement, len(in.MatchExpressions)) out.MatchExpressions = make([]LabelSelectorRequirement, len(in.MatchExpressions))
for i := range in.MatchExpressions { for i := range in.MatchExpressions {
if err := convert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequirement(&in.MatchExpressions[i], &out.MatchExpressions[i], s); err != nil { if err := convert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(&in.MatchExpressions[i], &out.MatchExpressions[i], s); err != nil {
return err return err
} }
} }
@ -2914,16 +2901,16 @@ func autoconvert_extensions_PodSelector_To_v1beta1_PodSelector(in *extensions.Po
return nil return nil
} }
func convert_extensions_PodSelector_To_v1beta1_PodSelector(in *extensions.PodSelector, out *PodSelector, s conversion.Scope) error { func convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in *extensions.LabelSelector, out *LabelSelector, s conversion.Scope) error {
return autoconvert_extensions_PodSelector_To_v1beta1_PodSelector(in, out, s) return autoconvert_extensions_LabelSelector_To_v1beta1_LabelSelector(in, out, s)
} }
func autoconvert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequirement(in *extensions.PodSelectorRequirement, out *PodSelectorRequirement, s conversion.Scope) error { 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 { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*extensions.PodSelectorRequirement))(in) defaulting.(func(*extensions.LabelSelectorRequirement))(in)
} }
out.Key = in.Key out.Key = in.Key
out.Operator = PodSelectorOperator(in.Operator) out.Operator = LabelSelectorOperator(in.Operator)
if in.Values != nil { if in.Values != nil {
out.Values = make([]string, len(in.Values)) out.Values = make([]string, len(in.Values))
for i := range in.Values { for i := range in.Values {
@ -2935,8 +2922,21 @@ func autoconvert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequire
return nil return nil
} }
func convert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequirement(in *extensions.PodSelectorRequirement, out *PodSelectorRequirement, s conversion.Scope) error { func convert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in *extensions.LabelSelectorRequirement, out *LabelSelectorRequirement, s conversion.Scope) error {
return autoconvert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequirement(in, out, s) 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)
}
out.Resource = NodeResource(in.Resource)
out.Value = in.Value
return nil
}
func convert_extensions_NodeUtilization_To_v1beta1_NodeUtilization(in *extensions.NodeUtilization, out *NodeUtilization, s conversion.Scope) error {
return autoconvert_extensions_NodeUtilization_To_v1beta1_NodeUtilization(in, out, s)
} }
func autoconvert_extensions_ReplicationControllerDummy_To_v1beta1_ReplicationControllerDummy(in *extensions.ReplicationControllerDummy, out *ReplicationControllerDummy, s conversion.Scope) error { func autoconvert_extensions_ReplicationControllerDummy_To_v1beta1_ReplicationControllerDummy(in *extensions.ReplicationControllerDummy, out *ReplicationControllerDummy, s conversion.Scope) error {
@ -3289,8 +3289,8 @@ func autoconvert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *DaemonSet
defaulting.(func(*DaemonSetSpec))(in) defaulting.(func(*DaemonSetSpec))(in)
} }
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(extensions.PodSelector) out.Selector = new(extensions.LabelSelector)
if err := convert_v1beta1_PodSelector_To_extensions_PodSelector(in.Selector, out.Selector, s); err != nil { if err := convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
return err return err
} }
} else { } else {
@ -3788,8 +3788,8 @@ func autoconvert_v1beta1_JobSpec_To_extensions_JobSpec(in *JobSpec, out *extensi
out.Completions = nil out.Completions = nil
} }
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(extensions.PodSelector) out.Selector = new(extensions.LabelSelector)
if err := convert_v1beta1_PodSelector_To_extensions_PodSelector(in.Selector, out.Selector, s); err != nil { if err := convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
return err return err
} }
} else { } else {
@ -3843,22 +3843,9 @@ func convert_v1beta1_JobStatus_To_extensions_JobStatus(in *JobStatus, out *exten
return autoconvert_v1beta1_JobStatus_To_extensions_JobStatus(in, out, s) return autoconvert_v1beta1_JobStatus_To_extensions_JobStatus(in, out, s)
} }
func autoconvert_v1beta1_NodeUtilization_To_extensions_NodeUtilization(in *NodeUtilization, out *extensions.NodeUtilization, s conversion.Scope) error { func autoconvert_v1beta1_LabelSelector_To_extensions_LabelSelector(in *LabelSelector, out *extensions.LabelSelector, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*NodeUtilization))(in) defaulting.(func(*LabelSelector))(in)
}
out.Resource = extensions.NodeResource(in.Resource)
out.Value = in.Value
return nil
}
func convert_v1beta1_NodeUtilization_To_extensions_NodeUtilization(in *NodeUtilization, out *extensions.NodeUtilization, s conversion.Scope) error {
return autoconvert_v1beta1_NodeUtilization_To_extensions_NodeUtilization(in, out, s)
}
func autoconvert_v1beta1_PodSelector_To_extensions_PodSelector(in *PodSelector, out *extensions.PodSelector, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*PodSelector))(in)
} }
if in.MatchLabels != nil { if in.MatchLabels != nil {
out.MatchLabels = make(map[string]string) out.MatchLabels = make(map[string]string)
@ -3869,9 +3856,9 @@ func autoconvert_v1beta1_PodSelector_To_extensions_PodSelector(in *PodSelector,
out.MatchLabels = nil out.MatchLabels = nil
} }
if in.MatchExpressions != nil { if in.MatchExpressions != nil {
out.MatchExpressions = make([]extensions.PodSelectorRequirement, len(in.MatchExpressions)) out.MatchExpressions = make([]extensions.LabelSelectorRequirement, len(in.MatchExpressions))
for i := range in.MatchExpressions { for i := range in.MatchExpressions {
if err := convert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequirement(&in.MatchExpressions[i], &out.MatchExpressions[i], s); err != nil { if err := convert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(&in.MatchExpressions[i], &out.MatchExpressions[i], s); err != nil {
return err return err
} }
} }
@ -3881,16 +3868,16 @@ func autoconvert_v1beta1_PodSelector_To_extensions_PodSelector(in *PodSelector,
return nil return nil
} }
func convert_v1beta1_PodSelector_To_extensions_PodSelector(in *PodSelector, out *extensions.PodSelector, s conversion.Scope) error { func convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in *LabelSelector, out *extensions.LabelSelector, s conversion.Scope) error {
return autoconvert_v1beta1_PodSelector_To_extensions_PodSelector(in, out, s) return autoconvert_v1beta1_LabelSelector_To_extensions_LabelSelector(in, out, s)
} }
func autoconvert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequirement(in *PodSelectorRequirement, out *extensions.PodSelectorRequirement, s conversion.Scope) error { func autoconvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(in *LabelSelectorRequirement, out *extensions.LabelSelectorRequirement, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found { if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*PodSelectorRequirement))(in) defaulting.(func(*LabelSelectorRequirement))(in)
} }
out.Key = in.Key out.Key = in.Key
out.Operator = extensions.PodSelectorOperator(in.Operator) out.Operator = extensions.LabelSelectorOperator(in.Operator)
if in.Values != nil { if in.Values != nil {
out.Values = make([]string, len(in.Values)) out.Values = make([]string, len(in.Values))
for i := range in.Values { for i := range in.Values {
@ -3902,8 +3889,21 @@ func autoconvert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequire
return nil return nil
} }
func convert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequirement(in *PodSelectorRequirement, out *extensions.PodSelectorRequirement, s conversion.Scope) error { func convert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(in *LabelSelectorRequirement, out *extensions.LabelSelectorRequirement, s conversion.Scope) error {
return autoconvert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequirement(in, out, s) return autoconvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(in, out, s)
}
func autoconvert_v1beta1_NodeUtilization_To_extensions_NodeUtilization(in *NodeUtilization, out *extensions.NodeUtilization, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*NodeUtilization))(in)
}
out.Resource = extensions.NodeResource(in.Resource)
out.Value = in.Value
return nil
}
func convert_v1beta1_NodeUtilization_To_extensions_NodeUtilization(in *NodeUtilization, out *extensions.NodeUtilization, s conversion.Scope) error {
return autoconvert_v1beta1_NodeUtilization_To_extensions_NodeUtilization(in, out, s)
} }
func autoconvert_v1beta1_ReplicationControllerDummy_To_extensions_ReplicationControllerDummy(in *ReplicationControllerDummy, out *extensions.ReplicationControllerDummy, s conversion.Scope) error { func autoconvert_v1beta1_ReplicationControllerDummy_To_extensions_ReplicationControllerDummy(in *ReplicationControllerDummy, out *extensions.ReplicationControllerDummy, s conversion.Scope) error {
@ -4177,9 +4177,9 @@ func init() {
autoconvert_extensions_JobSpec_To_v1beta1_JobSpec, autoconvert_extensions_JobSpec_To_v1beta1_JobSpec,
autoconvert_extensions_JobStatus_To_v1beta1_JobStatus, autoconvert_extensions_JobStatus_To_v1beta1_JobStatus,
autoconvert_extensions_Job_To_v1beta1_Job, 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_NodeUtilization_To_v1beta1_NodeUtilization,
autoconvert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequirement,
autoconvert_extensions_PodSelector_To_v1beta1_PodSelector,
autoconvert_extensions_ReplicationControllerDummy_To_v1beta1_ReplicationControllerDummy, autoconvert_extensions_ReplicationControllerDummy_To_v1beta1_ReplicationControllerDummy,
autoconvert_extensions_RollingUpdateDeployment_To_v1beta1_RollingUpdateDeployment, autoconvert_extensions_RollingUpdateDeployment_To_v1beta1_RollingUpdateDeployment,
autoconvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec, autoconvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec,
@ -4262,9 +4262,9 @@ func init() {
autoconvert_v1beta1_JobSpec_To_extensions_JobSpec, autoconvert_v1beta1_JobSpec_To_extensions_JobSpec,
autoconvert_v1beta1_JobStatus_To_extensions_JobStatus, autoconvert_v1beta1_JobStatus_To_extensions_JobStatus,
autoconvert_v1beta1_Job_To_extensions_Job, autoconvert_v1beta1_Job_To_extensions_Job,
autoconvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement,
autoconvert_v1beta1_LabelSelector_To_extensions_LabelSelector,
autoconvert_v1beta1_NodeUtilization_To_extensions_NodeUtilization, autoconvert_v1beta1_NodeUtilization_To_extensions_NodeUtilization,
autoconvert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequirement,
autoconvert_v1beta1_PodSelector_To_extensions_PodSelector,
autoconvert_v1beta1_ReplicationControllerDummy_To_extensions_ReplicationControllerDummy, autoconvert_v1beta1_ReplicationControllerDummy_To_extensions_ReplicationControllerDummy,
autoconvert_v1beta1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment, autoconvert_v1beta1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment,
autoconvert_v1beta1_ScaleSpec_To_extensions_ScaleSpec, autoconvert_v1beta1_ScaleSpec_To_extensions_ScaleSpec,

View File

@ -984,8 +984,8 @@ func deepCopy_v1beta1_DaemonSetList(in DaemonSetList, out *DaemonSetList, c *con
func deepCopy_v1beta1_DaemonSetSpec(in DaemonSetSpec, out *DaemonSetSpec, c *conversion.Cloner) error { func deepCopy_v1beta1_DaemonSetSpec(in DaemonSetSpec, out *DaemonSetSpec, c *conversion.Cloner) error {
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(PodSelector) out.Selector = new(LabelSelector)
if err := deepCopy_v1beta1_PodSelector(*in.Selector, out.Selector, c); err != nil { if err := deepCopy_v1beta1_LabelSelector(*in.Selector, out.Selector, c); err != nil {
return err return err
} }
} else { } else {
@ -1357,8 +1357,8 @@ func deepCopy_v1beta1_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner) er
out.Completions = nil out.Completions = nil
} }
if in.Selector != nil { if in.Selector != nil {
out.Selector = new(PodSelector) out.Selector = new(LabelSelector)
if err := deepCopy_v1beta1_PodSelector(*in.Selector, out.Selector, c); err != nil { if err := deepCopy_v1beta1_LabelSelector(*in.Selector, out.Selector, c); err != nil {
return err return err
} }
} else { } else {
@ -1403,13 +1403,7 @@ func deepCopy_v1beta1_JobStatus(in JobStatus, out *JobStatus, c *conversion.Clon
return nil return nil
} }
func deepCopy_v1beta1_NodeUtilization(in NodeUtilization, out *NodeUtilization, c *conversion.Cloner) error { func deepCopy_v1beta1_LabelSelector(in LabelSelector, out *LabelSelector, c *conversion.Cloner) error {
out.Resource = in.Resource
out.Value = in.Value
return nil
}
func deepCopy_v1beta1_PodSelector(in PodSelector, out *PodSelector, c *conversion.Cloner) error {
if in.MatchLabels != nil { if in.MatchLabels != nil {
out.MatchLabels = make(map[string]string) out.MatchLabels = make(map[string]string)
for key, val := range in.MatchLabels { for key, val := range in.MatchLabels {
@ -1419,9 +1413,9 @@ func deepCopy_v1beta1_PodSelector(in PodSelector, out *PodSelector, c *conversio
out.MatchLabels = nil out.MatchLabels = nil
} }
if in.MatchExpressions != nil { if in.MatchExpressions != nil {
out.MatchExpressions = make([]PodSelectorRequirement, len(in.MatchExpressions)) out.MatchExpressions = make([]LabelSelectorRequirement, len(in.MatchExpressions))
for i := range in.MatchExpressions { for i := range in.MatchExpressions {
if err := deepCopy_v1beta1_PodSelectorRequirement(in.MatchExpressions[i], &out.MatchExpressions[i], c); err != nil { if err := deepCopy_v1beta1_LabelSelectorRequirement(in.MatchExpressions[i], &out.MatchExpressions[i], c); err != nil {
return err return err
} }
} }
@ -1431,7 +1425,7 @@ func deepCopy_v1beta1_PodSelector(in PodSelector, out *PodSelector, c *conversio
return nil return nil
} }
func deepCopy_v1beta1_PodSelectorRequirement(in PodSelectorRequirement, out *PodSelectorRequirement, c *conversion.Cloner) error { func deepCopy_v1beta1_LabelSelectorRequirement(in LabelSelectorRequirement, out *LabelSelectorRequirement, c *conversion.Cloner) error {
out.Key = in.Key out.Key = in.Key
out.Operator = in.Operator out.Operator = in.Operator
if in.Values != nil { if in.Values != nil {
@ -1445,6 +1439,12 @@ func deepCopy_v1beta1_PodSelectorRequirement(in PodSelectorRequirement, out *Pod
return nil return nil
} }
func deepCopy_v1beta1_NodeUtilization(in NodeUtilization, out *NodeUtilization, c *conversion.Cloner) error {
out.Resource = in.Resource
out.Value = in.Value
return nil
}
func deepCopy_v1beta1_ReplicationControllerDummy(in ReplicationControllerDummy, out *ReplicationControllerDummy, c *conversion.Cloner) error { func deepCopy_v1beta1_ReplicationControllerDummy(in ReplicationControllerDummy, out *ReplicationControllerDummy, c *conversion.Cloner) error {
if err := deepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil { if err := deepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err return err
@ -1681,9 +1681,9 @@ func init() {
deepCopy_v1beta1_JobList, deepCopy_v1beta1_JobList,
deepCopy_v1beta1_JobSpec, deepCopy_v1beta1_JobSpec,
deepCopy_v1beta1_JobStatus, deepCopy_v1beta1_JobStatus,
deepCopy_v1beta1_LabelSelector,
deepCopy_v1beta1_LabelSelectorRequirement,
deepCopy_v1beta1_NodeUtilization, deepCopy_v1beta1_NodeUtilization,
deepCopy_v1beta1_PodSelector,
deepCopy_v1beta1_PodSelectorRequirement,
deepCopy_v1beta1_ReplicationControllerDummy, deepCopy_v1beta1_ReplicationControllerDummy,
deepCopy_v1beta1_RollingUpdateDeployment, deepCopy_v1beta1_RollingUpdateDeployment,
deepCopy_v1beta1_Scale, deepCopy_v1beta1_Scale,

View File

@ -36,7 +36,7 @@ func addDefaultingFuncs() {
// TODO: support templates defined elsewhere when we support them in the API // TODO: support templates defined elsewhere when we support them in the API
if labels != nil { if labels != nil {
if obj.Spec.Selector == nil { if obj.Spec.Selector == nil {
obj.Spec.Selector = &PodSelector{ obj.Spec.Selector = &LabelSelector{
MatchLabels: labels, MatchLabels: labels,
} }
} }
@ -93,7 +93,7 @@ func addDefaultingFuncs() {
// TODO: support templates defined elsewhere when we support them in the API // TODO: support templates defined elsewhere when we support them in the API
if labels != nil { if labels != nil {
if obj.Spec.Selector == nil { if obj.Spec.Selector == nil {
obj.Spec.Selector = &PodSelector{ obj.Spec.Selector = &LabelSelector{
MatchLabels: labels, MatchLabels: labels,
} }
} }

View File

@ -205,7 +205,7 @@ func TestSetDefaultDeployment(t *testing.T) {
func TestSetDefaultJob(t *testing.T) { func TestSetDefaultJob(t *testing.T) {
expected := &Job{ expected := &Job{
Spec: JobSpec{ Spec: JobSpec{
Selector: &PodSelector{ Selector: &LabelSelector{
MatchLabels: map[string]string{"job": "selector"}, MatchLabels: map[string]string{"job": "selector"},
}, },
Completions: newInt32(1), Completions: newInt32(1),
@ -216,7 +216,7 @@ func TestSetDefaultJob(t *testing.T) {
// selector set explicitly, completions and parallelism - default // selector set explicitly, completions and parallelism - default
{ {
Spec: JobSpec{ Spec: JobSpec{
Selector: &PodSelector{ Selector: &LabelSelector{
MatchLabels: map[string]string{"job": "selector"}, MatchLabels: map[string]string{"job": "selector"},
}, },
}, },

View File

@ -6305,7 +6305,7 @@ func (x *DaemonSetSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} else { } else {
if x.Selector == nil { if x.Selector == nil {
x.Selector = new(PodSelector) x.Selector = new(LabelSelector)
} }
x.Selector.CodecDecodeSelf(d) x.Selector.CodecDecodeSelf(d)
} }
@ -6351,7 +6351,7 @@ func (x *DaemonSetSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} }
} else { } else {
if x.Selector == nil { if x.Selector == nil {
x.Selector = new(PodSelector) x.Selector = new(LabelSelector)
} }
x.Selector.CodecDecodeSelf(d) x.Selector.CodecDecodeSelf(d)
} }
@ -8591,7 +8591,7 @@ func (x *JobSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
} }
} else { } else {
if x.Selector == nil { if x.Selector == nil {
x.Selector = new(PodSelector) x.Selector = new(LabelSelector)
} }
x.Selector.CodecDecodeSelf(d) x.Selector.CodecDecodeSelf(d)
} }
@ -8685,7 +8685,7 @@ func (x *JobSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
} }
} else { } else {
if x.Selector == nil { if x.Selector == nil {
x.Selector = new(PodSelector) x.Selector = new(LabelSelector)
} }
x.Selector.CodecDecodeSelf(d) x.Selector.CodecDecodeSelf(d)
} }
@ -12988,7 +12988,7 @@ func (x *ClusterAutoscalerList) codecDecodeSelfFromArray(l int, d *codec1978.Dec
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) { func (x *LabelSelector) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13063,7 +13063,7 @@ func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
_ = yym1088 _ = yym1088
if false { if false {
} else { } else {
h.encSlicePodSelectorRequirement(([]PodSelectorRequirement)(x.MatchExpressions), e) h.encSliceLabelSelectorRequirement(([]LabelSelectorRequirement)(x.MatchExpressions), e)
} }
} }
} else { } else {
@ -13081,7 +13081,7 @@ func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
_ = yym1089 _ = yym1089
if false { if false {
} else { } else {
h.encSlicePodSelectorRequirement(([]PodSelectorRequirement)(x.MatchExpressions), e) h.encSliceLabelSelectorRequirement(([]LabelSelectorRequirement)(x.MatchExpressions), e)
} }
} }
} }
@ -13095,7 +13095,7 @@ func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
func (x *PodSelector) CodecDecodeSelf(d *codec1978.Decoder) { func (x *LabelSelector) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13125,7 +13125,7 @@ func (x *PodSelector) CodecDecodeSelf(d *codec1978.Decoder) {
} }
} }
func (x *PodSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { func (x *LabelSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13168,7 +13168,7 @@ func (x *PodSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
_ = yym1096 _ = yym1096
if false { if false {
} else { } else {
h.decSlicePodSelectorRequirement((*[]PodSelectorRequirement)(yyv1095), d) h.decSliceLabelSelectorRequirement((*[]LabelSelectorRequirement)(yyv1095), d)
} }
} }
default: default:
@ -13178,7 +13178,7 @@ func (x *PodSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
func (x *PodSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { func (x *LabelSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13226,7 +13226,7 @@ func (x *PodSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
_ = yym1101 _ = yym1101
if false { if false {
} else { } else {
h.decSlicePodSelectorRequirement((*[]PodSelectorRequirement)(yyv1100), d) h.decSliceLabelSelectorRequirement((*[]LabelSelectorRequirement)(yyv1100), d)
} }
} }
for { for {
@ -13245,7 +13245,7 @@ func (x *PodSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
func (x *PodSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder) { func (x *LabelSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13346,7 +13346,7 @@ func (x *PodSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
func (x *PodSelectorRequirement) CodecDecodeSelf(d *codec1978.Decoder) { func (x *LabelSelectorRequirement) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13376,7 +13376,7 @@ func (x *PodSelectorRequirement) CodecDecodeSelf(d *codec1978.Decoder) {
} }
} }
func (x *PodSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) { func (x *LabelSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13408,7 +13408,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Deco
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Operator = "" x.Operator = ""
} else { } else {
x.Operator = PodSelectorOperator(r.DecodeString()) x.Operator = LabelSelectorOperator(r.DecodeString())
} }
case "values": case "values":
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
@ -13429,7 +13429,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Deco
z.DecSendContainerState(codecSelfer_containerMapEnd1234) z.DecSendContainerState(codecSelfer_containerMapEnd1234)
} }
func (x *PodSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) { func (x *LabelSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13466,7 +13466,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.De
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
x.Operator = "" x.Operator = ""
} else { } else {
x.Operator = PodSelectorOperator(r.DecodeString()) x.Operator = LabelSelectorOperator(r.DecodeString())
} }
yyj1118++ yyj1118++
if yyhl1118 { if yyhl1118 {
@ -13506,7 +13506,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.De
z.DecSendContainerState(codecSelfer_containerArrayEnd1234) z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
} }
func (x PodSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder) { func (x LabelSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -13519,7 +13519,7 @@ func (x PodSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder) {
} }
} }
func (x *PodSelectorOperator) CodecDecodeSelf(d *codec1978.Decoder) { func (x *LabelSelectorOperator) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -15040,7 +15040,7 @@ func (x codecSelfer1234) decSliceClusterAutoscaler(v *[]ClusterAutoscaler, d *co
} }
} }
func (x codecSelfer1234) encSlicePodSelectorRequirement(v []PodSelectorRequirement, e *codec1978.Encoder) { func (x codecSelfer1234) encSliceLabelSelectorRequirement(v []LabelSelectorRequirement, e *codec1978.Encoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e) z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -15053,7 +15053,7 @@ func (x codecSelfer1234) encSlicePodSelectorRequirement(v []PodSelectorRequireme
z.EncSendContainerState(codecSelfer_containerArrayEnd1234) z.EncSendContainerState(codecSelfer_containerArrayEnd1234)
} }
func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirement, d *codec1978.Decoder) { func (x codecSelfer1234) decSliceLabelSelectorRequirement(v *[]LabelSelectorRequirement, d *codec1978.Decoder) {
var h codecSelfer1234 var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d) z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r _, _, _ = h, z, r
@ -15063,7 +15063,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
var yyc1205 bool var yyc1205 bool
if yyl1205 == 0 { if yyl1205 == 0 {
if yyv1205 == nil { if yyv1205 == nil {
yyv1205 = []PodSelectorRequirement{} yyv1205 = []LabelSelectorRequirement{}
yyc1205 = true yyc1205 = true
} else if len(yyv1205) != 0 { } else if len(yyv1205) != 0 {
yyv1205 = yyv1205[:0] yyv1205 = yyv1205[:0]
@ -15081,10 +15081,10 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
if yyrl1205 <= cap(yyv1205) { if yyrl1205 <= cap(yyv1205) {
yyv1205 = yyv1205[:yyrl1205] yyv1205 = yyv1205[:yyrl1205]
} else { } else {
yyv1205 = make([]PodSelectorRequirement, yyrl1205) yyv1205 = make([]LabelSelectorRequirement, yyrl1205)
} }
} else { } else {
yyv1205 = make([]PodSelectorRequirement, yyrl1205) yyv1205 = make([]LabelSelectorRequirement, yyrl1205)
} }
yyc1205 = true yyc1205 = true
yyrr1205 = len(yyv1205) yyrr1205 = len(yyv1205)
@ -15099,7 +15099,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
for ; yyj1205 < yyrr1205; yyj1205++ { for ; yyj1205 < yyrr1205; yyj1205++ {
yyh1205.ElemContainerState(yyj1205) yyh1205.ElemContainerState(yyj1205)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv1205[yyj1205] = PodSelectorRequirement{} yyv1205[yyj1205] = LabelSelectorRequirement{}
} else { } else {
yyv1206 := &yyv1205[yyj1205] yyv1206 := &yyv1205[yyj1205]
yyv1206.CodecDecodeSelf(d) yyv1206.CodecDecodeSelf(d)
@ -15108,10 +15108,10 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
} }
if yyrt1205 { if yyrt1205 {
for ; yyj1205 < yyl1205; yyj1205++ { for ; yyj1205 < yyl1205; yyj1205++ {
yyv1205 = append(yyv1205, PodSelectorRequirement{}) yyv1205 = append(yyv1205, LabelSelectorRequirement{})
yyh1205.ElemContainerState(yyj1205) yyh1205.ElemContainerState(yyj1205)
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv1205[yyj1205] = PodSelectorRequirement{} yyv1205[yyj1205] = LabelSelectorRequirement{}
} else { } else {
yyv1207 := &yyv1205[yyj1205] yyv1207 := &yyv1205[yyj1205]
yyv1207.CodecDecodeSelf(d) yyv1207.CodecDecodeSelf(d)
@ -15125,13 +15125,13 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
for ; !r.CheckBreak(); yyj1205++ { for ; !r.CheckBreak(); yyj1205++ {
if yyj1205 >= len(yyv1205) { if yyj1205 >= len(yyv1205) {
yyv1205 = append(yyv1205, PodSelectorRequirement{}) // var yyz1205 PodSelectorRequirement yyv1205 = append(yyv1205, LabelSelectorRequirement{}) // var yyz1205 LabelSelectorRequirement
yyc1205 = true yyc1205 = true
} }
yyh1205.ElemContainerState(yyj1205) yyh1205.ElemContainerState(yyj1205)
if yyj1205 < len(yyv1205) { if yyj1205 < len(yyv1205) {
if r.TryDecodeAsNil() { if r.TryDecodeAsNil() {
yyv1205[yyj1205] = PodSelectorRequirement{} yyv1205[yyj1205] = LabelSelectorRequirement{}
} else { } else {
yyv1208 := &yyv1205[yyj1205] yyv1208 := &yyv1205[yyj1205]
yyv1208.CodecDecodeSelf(d) yyv1208.CodecDecodeSelf(d)
@ -15146,7 +15146,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
yyv1205 = yyv1205[:yyj1205] yyv1205 = yyv1205[:yyj1205]
yyc1205 = true yyc1205 = true
} else if yyj1205 == 0 && yyv1205 == nil { } else if yyj1205 == 0 && yyv1205 == nil {
yyv1205 = []PodSelectorRequirement{} yyv1205 = []LabelSelectorRequirement{}
yyc1205 = true yyc1205 = true
} }
} }

View File

@ -296,7 +296,7 @@ type DaemonSetSpec struct {
// Must match in order to be controlled. // Must match in order to be controlled.
// If empty, defaulted to labels on Pod template. // If empty, defaulted to labels on Pod template.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors // More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
Selector *PodSelector `json:"selector,omitempty"` Selector *LabelSelector `json:"selector,omitempty"`
// Template is the object that describes the pod that will be created. // 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 // The DaemonSet will create exactly one copy of this pod on every node
@ -409,7 +409,7 @@ type JobSpec struct {
// Selector is a label query over pods that should match the pod count. // Selector is a label query over pods that should match the pod count.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors // More info: http://releases.k8s.io/HEAD/docs/user-guide/labels.md#label-selectors
Selector *PodSelector `json:"selector,omitempty"` Selector *LabelSelector `json:"selector,omitempty"`
// Template is the object that describes the pod that will be created when // Template is the object that describes the pod that will be created when
// executing a job. // executing a job.
@ -655,26 +655,26 @@ type ClusterAutoscalerList struct {
Items []ClusterAutoscaler `json:"items"` Items []ClusterAutoscaler `json:"items"`
} }
// A pod selector is a label query over a set of pods. The result of matchLabels and // A label selector is a label query over a set of resources. The result of matchLabels and
// matchExpressions are ANDed. An empty pod selector matches all objects. A null // matchExpressions are ANDed. An empty label selector matches all objects. A null
// pod selector matches no objects. // label selector matches no objects.
type PodSelector struct { type LabelSelector struct {
// matchLabels is a map of {key,value} pairs. A single {key,value} in the 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 // 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. // operator is "In", and the values array contains only "value". The requirements are ANDed.
MatchLabels map[string]string `json:"matchLabels,omitempty"` MatchLabels map[string]string `json:"matchLabels,omitempty"`
// matchExpressions is a list of pod selector requirements. The requirements are ANDed. // matchExpressions is a list of label selector requirements. The requirements are ANDed.
MatchExpressions []PodSelectorRequirement `json:"matchExpressions,omitempty"` MatchExpressions []LabelSelectorRequirement `json:"matchExpressions,omitempty"`
} }
// A pod selector requirement is a selector that contains values, a key, and an operator that // A label selector requirement is a selector that contains values, a key, and an operator that
// relates the key and values. // relates the key and values.
type PodSelectorRequirement struct { type LabelSelectorRequirement struct {
// key is the label key that the selector applies to. // key is the label key that the selector applies to.
Key string `json:"key" patchStrategy:"merge" patchMergeKey:"key"` Key string `json:"key" patchStrategy:"merge" patchMergeKey:"key"`
// operator represents a key's relationship to a set of values. // operator represents a key's relationship to a set of values.
// Valid operators ard In, NotIn, Exists and DoesNotExist. // Valid operators ard In, NotIn, Exists and DoesNotExist.
Operator PodSelectorOperator `json:"operator"` Operator LabelSelectorOperator `json:"operator"`
// values is an array of string values. If the operator is In or NotIn, // 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 non-empty. If the operator is Exists or DoesNotExist,
// the values array must be empty. This array is replaced during a strategic // the values array must be empty. This array is replaced during a strategic
@ -682,12 +682,12 @@ type PodSelectorRequirement struct {
Values []string `json:"values,omitempty"` Values []string `json:"values,omitempty"`
} }
// A pod selector operator is the set of operators that can be used in a selector requirement. // A label selector operator is the set of operators that can be used in a selector requirement.
type PodSelectorOperator string type LabelSelectorOperator string
const ( const (
PodSelectorOpIn PodSelectorOperator = "In" LabelSelectorOpIn LabelSelectorOperator = "In"
PodSelectorOpNotIn PodSelectorOperator = "NotIn" LabelSelectorOpNotIn LabelSelectorOperator = "NotIn"
PodSelectorOpExists PodSelectorOperator = "Exists" LabelSelectorOpExists LabelSelectorOperator = "Exists"
PodSelectorOpDoesNotExist PodSelectorOperator = "DoesNotExist" LabelSelectorOpDoesNotExist LabelSelectorOperator = "DoesNotExist"
) )

View File

@ -363,6 +363,27 @@ func (JobStatus) SwaggerDoc() map[string]string {
return map_JobStatus return map_JobStatus
} }
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_NodeUtilization = map[string]string{ var map_NodeUtilization = map[string]string{
"": "NodeUtilization describes what percentage of a particular resource is used on a node.", "": "NodeUtilization describes what percentage of a particular resource is used on a node.",
"value": "The accepted values are from 0 to 1.", "value": "The accepted values are from 0 to 1.",
@ -372,27 +393,6 @@ func (NodeUtilization) SwaggerDoc() map[string]string {
return map_NodeUtilization return map_NodeUtilization
} }
var map_PodSelector = map[string]string{
"": "A pod selector is a label query over a set of pods. The result of matchLabels and matchExpressions are ANDed. An empty pod selector matches all objects. A null pod 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 pod selector requirements. The requirements are ANDed.",
}
func (PodSelector) SwaggerDoc() map[string]string {
return map_PodSelector
}
var map_PodSelectorRequirement = map[string]string{
"": "A pod 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 (PodSelectorRequirement) SwaggerDoc() map[string]string {
return map_PodSelectorRequirement
}
var map_ReplicationControllerDummy = map[string]string{ var map_ReplicationControllerDummy = map[string]string{
"": "Dummy definition", "": "Dummy definition",
} }

View File

@ -188,14 +188,14 @@ func ValidateDaemonSetTemplateUpdate(podTemplate, oldPodTemplate *api.PodTemplat
func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *validation.FieldPath) validation.ErrorList { func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *validation.FieldPath) validation.ErrorList {
allErrs := validation.ErrorList{} allErrs := validation.ErrorList{}
allErrs = append(allErrs, ValidatePodSelector(spec.Selector, fldPath.Child("selector"))...) allErrs = append(allErrs, ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
if spec.Template == nil { if spec.Template == nil {
allErrs = append(allErrs, validation.NewRequiredError(fldPath.Child("template"))) allErrs = append(allErrs, validation.NewRequiredError(fldPath.Child("template")))
return allErrs return allErrs
} }
selector, err := extensions.PodSelectorAsSelector(spec.Selector) selector, err := extensions.LabelSelectorAsSelector(spec.Selector)
if err == nil && !selector.Matches(labels.Set(spec.Template.Labels)) { if err == nil && !selector.Matches(labels.Set(spec.Template.Labels)) {
allErrs = append(allErrs, validation.NewInvalidError(fldPath.Child("template", "metadata", "labels"), spec.Template.Labels, "selector does not match template")) allErrs = append(allErrs, validation.NewInvalidError(fldPath.Child("template", "metadata", "labels"), spec.Template.Labels, "selector does not match template"))
} }
@ -349,10 +349,10 @@ func ValidateJobSpec(spec *extensions.JobSpec, fldPath *validation.FieldPath) va
if spec.Selector == nil { if spec.Selector == nil {
allErrs = append(allErrs, validation.NewRequiredError(fldPath.Child("selector"))) allErrs = append(allErrs, validation.NewRequiredError(fldPath.Child("selector")))
} else { } else {
allErrs = append(allErrs, ValidatePodSelector(spec.Selector, fldPath.Child("selector"))...) allErrs = append(allErrs, ValidateLabelSelector(spec.Selector, fldPath.Child("selector"))...)
} }
if selector, err := extensions.PodSelectorAsSelector(spec.Selector); err == nil { if selector, err := extensions.LabelSelectorAsSelector(spec.Selector); err == nil {
labels := labels.Set(spec.Template.Labels) labels := labels.Set(spec.Template.Labels)
if !selector.Matches(labels) { if !selector.Matches(labels) {
allErrs = append(allErrs, validation.NewInvalidError(fldPath.Child("template", "metadata", "labels"), spec.Template.Labels, "selector does not match template")) allErrs = append(allErrs, validation.NewInvalidError(fldPath.Child("template", "metadata", "labels"), spec.Template.Labels, "selector does not match template"))
@ -567,26 +567,26 @@ func ValidateClusterAutoscaler(autoscaler *extensions.ClusterAutoscaler) validat
return allErrs return allErrs
} }
func ValidatePodSelector(ps *extensions.PodSelector, fldPath *validation.FieldPath) validation.ErrorList { func ValidateLabelSelector(ps *extensions.LabelSelector, fldPath *validation.FieldPath) validation.ErrorList {
allErrs := validation.ErrorList{} allErrs := validation.ErrorList{}
if ps == nil { if ps == nil {
return allErrs return allErrs
} }
allErrs = append(allErrs, apivalidation.ValidateLabels(ps.MatchLabels, fldPath.Child("matchLabels"))...) allErrs = append(allErrs, apivalidation.ValidateLabels(ps.MatchLabels, fldPath.Child("matchLabels"))...)
for i, expr := range ps.MatchExpressions { for i, expr := range ps.MatchExpressions {
allErrs = append(allErrs, ValidatePodSelectorRequirement(expr, fldPath.Child("matchExpressions").Index(i))...) allErrs = append(allErrs, ValidateLabelSelectorRequirement(expr, fldPath.Child("matchExpressions").Index(i))...)
} }
return allErrs return allErrs
} }
func ValidatePodSelectorRequirement(sr extensions.PodSelectorRequirement, fldPath *validation.FieldPath) validation.ErrorList { func ValidateLabelSelectorRequirement(sr extensions.LabelSelectorRequirement, fldPath *validation.FieldPath) validation.ErrorList {
allErrs := validation.ErrorList{} allErrs := validation.ErrorList{}
switch sr.Operator { switch sr.Operator {
case extensions.PodSelectorOpIn, extensions.PodSelectorOpNotIn: case extensions.LabelSelectorOpIn, extensions.LabelSelectorOpNotIn:
if len(sr.Values) == 0 { if len(sr.Values) == 0 {
allErrs = append(allErrs, validation.NewInvalidError(fldPath.Child("values"), sr.Values, "must be non-empty when operator is In or NotIn")) allErrs = append(allErrs, validation.NewInvalidError(fldPath.Child("values"), sr.Values, "must be non-empty when operator is In or NotIn"))
} }
case extensions.PodSelectorOpExists, extensions.PodSelectorOpDoesNotExist: case extensions.LabelSelectorOpExists, extensions.LabelSelectorOpDoesNotExist:
if len(sr.Values) > 0 { if len(sr.Values) > 0 {
allErrs = append(allErrs, validation.NewInvalidError(fldPath.Child("values"), sr.Values, "must be empty when operator is Exists or DoesNotExist")) allErrs = append(allErrs, validation.NewInvalidError(fldPath.Child("values"), sr.Values, "must be empty when operator is Exists or DoesNotExist"))
} }

View File

@ -368,14 +368,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{ old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
update: extensions.DaemonSet{ update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
@ -384,14 +384,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{ old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
update: extensions.DaemonSet{ update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector2}, Selector: &extensions.LabelSelector{MatchLabels: validSelector2},
Template: &validPodTemplateAbc2.Template, Template: &validPodTemplateAbc2.Template,
}, },
}, },
@ -400,14 +400,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{ old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
update: extensions.DaemonSet{ update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateNodeSelector.Template, Template: &validPodTemplateNodeSelector.Template,
}, },
}, },
@ -425,14 +425,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{ old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
update: extensions.DaemonSet{ update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
@ -441,14 +441,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{ old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
update: extensions.DaemonSet{ update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: invalidSelector}, Selector: &extensions.LabelSelector{MatchLabels: invalidSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
@ -457,14 +457,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{ old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
update: extensions.DaemonSet{ update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &invalidPodTemplate.Template, Template: &invalidPodTemplate.Template,
}, },
}, },
@ -473,14 +473,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{ old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
update: extensions.DaemonSet{ update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateDef.Template, Template: &validPodTemplateDef.Template,
}, },
}, },
@ -489,14 +489,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{ old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template, Template: &validPodTemplateAbc.Template,
}, },
}, },
update: extensions.DaemonSet{ update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &readWriteVolumePodTemplate.Template, Template: &readWriteVolumePodTemplate.Template,
}, },
}, },
@ -539,14 +539,14 @@ func TestValidateDaemonSet(t *testing.T) {
{ {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template, Template: &validPodTemplate.Template,
}, },
}, },
{ {
ObjectMeta: api.ObjectMeta{Name: "abc-123", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc-123", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template, Template: &validPodTemplate.Template,
}, },
}, },
@ -561,14 +561,14 @@ func TestValidateDaemonSet(t *testing.T) {
"zero-length ID": { "zero-length ID": {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template, Template: &validPodTemplate.Template,
}, },
}, },
"missing-namespace": { "missing-namespace": {
ObjectMeta: api.ObjectMeta{Name: "abc-123"}, ObjectMeta: api.ObjectMeta{Name: "abc-123"},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template, Template: &validPodTemplate.Template,
}, },
}, },
@ -581,14 +581,14 @@ func TestValidateDaemonSet(t *testing.T) {
"selector_doesnt_match": { "selector_doesnt_match": {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: map[string]string{"foo": "bar"}}, Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
Template: &validPodTemplate.Template, Template: &validPodTemplate.Template,
}, },
}, },
"invalid manifest": { "invalid manifest": {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault}, ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
}, },
}, },
"invalid_label": { "invalid_label": {
@ -600,7 +600,7 @@ func TestValidateDaemonSet(t *testing.T) {
}, },
}, },
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template, Template: &validPodTemplate.Template,
}, },
}, },
@ -625,7 +625,7 @@ func TestValidateDaemonSet(t *testing.T) {
}, },
}, },
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template, Template: &validPodTemplate.Template,
}, },
}, },
@ -635,7 +635,7 @@ func TestValidateDaemonSet(t *testing.T) {
Namespace: api.NamespaceDefault, Namespace: api.NamespaceDefault,
}, },
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &api.PodTemplateSpec{ Template: &api.PodTemplateSpec{
Spec: api.PodSpec{ Spec: api.PodSpec{
RestartPolicy: api.RestartPolicyOnFailure, RestartPolicy: api.RestartPolicyOnFailure,
@ -654,7 +654,7 @@ func TestValidateDaemonSet(t *testing.T) {
Namespace: api.NamespaceDefault, Namespace: api.NamespaceDefault,
}, },
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector}, Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &api.PodTemplateSpec{ Template: &api.PodTemplateSpec{
Spec: api.PodSpec{ Spec: api.PodSpec{
RestartPolicy: api.RestartPolicyNever, RestartPolicy: api.RestartPolicyNever,
@ -808,7 +808,7 @@ func TestValidateDeployment(t *testing.T) {
} }
func TestValidateJob(t *testing.T) { func TestValidateJob(t *testing.T) {
validSelector := &extensions.PodSelector{ validSelector := &extensions.LabelSelector{
MatchLabels: map[string]string{"a": "b"}, MatchLabels: map[string]string{"a": "b"},
} }
validPodTemplateSpec := api.PodTemplateSpec{ validPodTemplateSpec := api.PodTemplateSpec{

View File

@ -230,7 +230,7 @@ func (s *StoreToDaemonSetLister) GetPodDaemonSets(pod *api.Pod) (daemonSets []ex
if daemonSet.Namespace != pod.Namespace { if daemonSet.Namespace != pod.Namespace {
continue continue
} }
selector, err = extensions.PodSelectorAsSelector(daemonSet.Spec.Selector) selector, err = extensions.LabelSelectorAsSelector(daemonSet.Spec.Selector)
if err != nil { if err != nil {
// this should not happen if the DaemonSet passed validation // this should not happen if the DaemonSet passed validation
return nil, err return nil, err
@ -352,7 +352,7 @@ func (s *StoreToJobLister) GetPodJobs(pod *api.Pod) (jobs []extensions.Job, err
continue continue
} }
selector, _ = extensions.PodSelectorAsSelector(job.Spec.Selector) selector, _ = extensions.LabelSelectorAsSelector(job.Spec.Selector)
if !selector.Matches(labels.Set(pod.Labels)) { if !selector.Matches(labels.Set(pod.Labels)) {
continue continue
} }

View File

@ -272,7 +272,7 @@ func TestStoreToDaemonSetLister(t *testing.T) {
{ {
ObjectMeta: api.ObjectMeta{Name: "basic", Namespace: "ns"}, ObjectMeta: api.ObjectMeta{Name: "basic", Namespace: "ns"},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: map[string]string{"foo": "baz"}}, Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "baz"}},
}, },
}, },
}, },
@ -311,13 +311,13 @@ func TestStoreToDaemonSetLister(t *testing.T) {
{ {
ObjectMeta: api.ObjectMeta{Name: "foo"}, ObjectMeta: api.ObjectMeta{Name: "foo"},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: map[string]string{"foo": "bar"}}, Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
}, },
}, },
{ {
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"}, ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: map[string]string{"foo": "bar"}}, Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
}, },
}, },
}, },
@ -401,7 +401,7 @@ func TestStoreToJobLister(t *testing.T) {
{ {
ObjectMeta: api.ObjectMeta{Name: "basic", Namespace: "ns"}, ObjectMeta: api.ObjectMeta{Name: "basic", Namespace: "ns"},
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "baz"}, MatchLabels: map[string]string{"foo": "baz"},
}, },
}, },
@ -444,7 +444,7 @@ func TestStoreToJobLister(t *testing.T) {
{ {
ObjectMeta: api.ObjectMeta{Name: "foo"}, ObjectMeta: api.ObjectMeta{Name: "foo"},
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"}, MatchLabels: map[string]string{"foo": "bar"},
}, },
}, },
@ -452,7 +452,7 @@ func TestStoreToJobLister(t *testing.T) {
{ {
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"}, ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"}, MatchLabels: map[string]string{"foo": "bar"},
}, },
}, },
@ -477,7 +477,7 @@ func TestStoreToJobLister(t *testing.T) {
{ {
ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "foo"}, ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "foo"},
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"}, MatchLabels: map[string]string{"foo": "bar"},
}, },
}, },
@ -485,7 +485,7 @@ func TestStoreToJobLister(t *testing.T) {
{ {
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "bar"}, ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "bar"},
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"}, MatchLabels: map[string]string{"foo": "bar"},
}, },
}, },

View File

@ -346,7 +346,7 @@ func (dsc *DaemonSetsController) updateNode(old, cur interface{}) {
// getNodesToDaemonSetPods returns a map from nodes to daemon pods (corresponding to ds) running on the nodes. // 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) { func (dsc *DaemonSetsController) getNodesToDaemonPods(ds *extensions.DaemonSet) (map[string][]*api.Pod, error) {
nodeToDaemonPods := make(map[string][]*api.Pod) nodeToDaemonPods := make(map[string][]*api.Pod)
selector, err := extensions.PodSelectorAsSelector(ds.Spec.Selector) selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
if err != nil { if err != nil {
return nil, err return nil, err
} }

View File

@ -55,7 +55,7 @@ func newDaemonSet(name string) *extensions.DaemonSet {
Namespace: api.NamespaceDefault, Namespace: api.NamespaceDefault,
}, },
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: simpleDaemonSetLabel}, Selector: &extensions.LabelSelector{MatchLabels: simpleDaemonSetLabel},
Template: &api.PodTemplateSpec{ Template: &api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Labels: simpleDaemonSetLabel, Labels: simpleDaemonSetLabel,

View File

@ -311,7 +311,7 @@ func (jm *JobController) syncJob(key string) error {
return err return err
} }
jobNeedsSync := jm.expectations.SatisfiedExpectations(jobKey) jobNeedsSync := jm.expectations.SatisfiedExpectations(jobKey)
selector, _ := extensions.PodSelectorAsSelector(job.Spec.Selector) selector, _ := extensions.LabelSelectorAsSelector(job.Spec.Selector)
podList, err := jm.podStore.Pods(job.Namespace).List(selector) podList, err := jm.podStore.Pods(job.Namespace).List(selector)
if err != nil { if err != nil {
glog.Errorf("Error getting pods for job %q: %v", key, err) glog.Errorf("Error getting pods for job %q: %v", key, err)

View File

@ -43,7 +43,7 @@ func newJob(parallelism, completions int) *extensions.Job {
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Parallelism: &parallelism, Parallelism: &parallelism,
Completions: &completions, Completions: &completions,
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"}, MatchLabels: map[string]string{"foo": "bar"},
}, },
Template: api.PodTemplateSpec{ Template: api.PodTemplateSpec{
@ -291,7 +291,7 @@ func TestJobPodLookup(t *testing.T) {
job: &extensions.Job{ job: &extensions.Job{
ObjectMeta: api.ObjectMeta{Name: "foo"}, ObjectMeta: api.ObjectMeta{Name: "foo"},
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"}, MatchLabels: map[string]string{"foo": "bar"},
}, },
}, },
@ -310,11 +310,11 @@ func TestJobPodLookup(t *testing.T) {
job: &extensions.Job{ job: &extensions.Job{
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"}, ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchExpressions: []extensions.PodSelectorRequirement{ MatchExpressions: []extensions.LabelSelectorRequirement{
{ {
Key: "foo", Key: "foo",
Operator: extensions.PodSelectorOpIn, Operator: extensions.LabelSelectorOpIn,
Values: []string{"bar"}, Values: []string{"bar"},
}, },
}, },

View File

@ -888,7 +888,7 @@ func describeJob(job *extensions.Job, events *api.EventList) (string, error) {
fmt.Fprintf(out, "Name:\t%s\n", job.Name) fmt.Fprintf(out, "Name:\t%s\n", job.Name)
fmt.Fprintf(out, "Namespace:\t%s\n", job.Namespace) fmt.Fprintf(out, "Namespace:\t%s\n", job.Namespace)
fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&job.Spec.Template.Spec)) fmt.Fprintf(out, "Image(s):\t%s\n", makeImageList(&job.Spec.Template.Spec))
selector, _ := extensions.PodSelectorAsSelector(job.Spec.Selector) selector, _ := extensions.LabelSelectorAsSelector(job.Spec.Selector)
fmt.Fprintf(out, "Selector:\t%s\n", selector) fmt.Fprintf(out, "Selector:\t%s\n", selector)
fmt.Fprintf(out, "Parallelism:\t%d\n", *job.Spec.Parallelism) fmt.Fprintf(out, "Parallelism:\t%d\n", *job.Spec.Parallelism)
fmt.Fprintf(out, "Completions:\t%d\n", *job.Spec.Completions) fmt.Fprintf(out, "Completions:\t%d\n", *job.Spec.Completions)
@ -916,7 +916,7 @@ func (d *DaemonSetDescriber) Describe(namespace, name string) (string, error) {
return "", err return "", err
} }
selector, err := extensions.PodSelectorAsSelector(daemon.Spec.Selector) selector, err := extensions.LabelSelectorAsSelector(daemon.Spec.Selector)
if err != nil { if err != nil {
return "", err return "", err
} }
@ -938,9 +938,9 @@ func describeDaemonSet(daemon *extensions.DaemonSet, events *api.EventList, runn
} else { } else {
fmt.Fprintf(out, "Image(s):\t%s\n", "<no template>") fmt.Fprintf(out, "Image(s):\t%s\n", "<no template>")
} }
selector, err := extensions.PodSelectorAsSelector(daemon.Spec.Selector) selector, err := extensions.LabelSelectorAsSelector(daemon.Spec.Selector)
if err != nil { if err != nil {
// this shouldn't happen if PodSelector passed validation // this shouldn't happen if LabelSelector passed validation
return err return err
} }
fmt.Fprintf(out, "Selector:\t%s\n", selector) fmt.Fprintf(out, "Selector:\t%s\n", selector)
@ -1554,7 +1554,7 @@ func getDaemonSetsForLabels(c client.DaemonSetInterface, labelsToMatch labels.La
// Find the ones that match labelsToMatch. // Find the ones that match labelsToMatch.
var matchingDaemonSets []extensions.DaemonSet var matchingDaemonSets []extensions.DaemonSet
for _, ds := range dss.Items { for _, ds := range dss.Items {
selector, err := extensions.PodSelectorAsSelector(ds.Spec.Selector) selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
if err != nil { if err != nil {
// this should never happen if the DaemonSet passed validation // this should never happen if the DaemonSet passed validation
return nil, err return nil, err

View File

@ -730,7 +730,7 @@ func printJob(job *extensions.Job, w io.Writer, withNamespace bool, wide bool, s
} }
} }
selector, _ := extensions.PodSelectorAsSelector(job.Spec.Selector) selector, _ := extensions.LabelSelectorAsSelector(job.Spec.Selector)
_, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%d", _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%d",
name, name,
firstContainer.Name, firstContainer.Name,
@ -931,9 +931,9 @@ func printDaemonSet(ds *extensions.DaemonSet, w io.Writer, withNamespace bool, w
return err return err
} }
} }
selector, err := extensions.PodSelectorAsSelector(ds.Spec.Selector) selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
if err != nil { if err != nil {
// this shouldn't happen if PodSelector passed validation // this shouldn't happen if LabelSelector passed validation
return err return err
} }
if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s", if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%s\t%s",

View File

@ -266,7 +266,7 @@ func (JobV1Beta1) Generate(genericParams map[string]interface{}) (runtime.Object
Labels: labels, Labels: labels,
}, },
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: labels, MatchLabels: labels,
}, },
Template: api.PodTemplateSpec{ Template: api.PodTemplateSpec{

View File

@ -746,7 +746,7 @@ func TestGenerateJob(t *testing.T) {
Labels: map[string]string{"foo": "bar", "baz": "blah"}, Labels: map[string]string{"foo": "bar", "baz": "blah"},
}, },
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar", "baz": "blah"}, MatchLabels: map[string]string{"foo": "bar", "baz": "blah"},
}, },
Template: api.PodTemplateSpec{ Template: api.PodTemplateSpec{

View File

@ -250,7 +250,7 @@ func (reaper *JobReaper) Stop(namespace, name string, timeout time.Duration, gra
return err return err
} }
// at this point only dead pods are left, that should be removed // at this point only dead pods are left, that should be removed
selector, _ := extensions.PodSelectorAsSelector(job.Spec.Selector) selector, _ := extensions.LabelSelectorAsSelector(job.Spec.Selector)
options := unversioned.ListOptions{LabelSelector: unversioned.LabelSelector{selector}} options := unversioned.ListOptions{LabelSelector: unversioned.LabelSelector{selector}}
podList, err := pods.List(options) podList, err := pods.List(options)
if err != nil { if err != nil {

View File

@ -284,7 +284,7 @@ func TestJobStop(t *testing.T) {
}, },
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Parallelism: &zero, Parallelism: &zero,
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"k1": "v1"}, MatchLabels: map[string]string{"k1": "v1"},
}, },
}, },
@ -298,7 +298,7 @@ func TestJobStop(t *testing.T) {
}, },
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Parallelism: &zero, Parallelism: &zero,
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"k1": "v1"}, MatchLabels: map[string]string{"k1": "v1"},
}, },
}, },
@ -320,7 +320,7 @@ func TestJobStop(t *testing.T) {
}, },
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Parallelism: &zero, Parallelism: &zero,
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"k1": "v1"}, MatchLabels: map[string]string{"k1": "v1"},
}, },
}, },
@ -334,7 +334,7 @@ func TestJobStop(t *testing.T) {
}, },
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Parallelism: &zero, Parallelism: &zero,
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"k1": "v1"}, MatchLabels: map[string]string{"k1": "v1"},
}, },
}, },

View File

@ -42,7 +42,7 @@ func newValidDaemonSet() *extensions.DaemonSet {
Namespace: api.NamespaceDefault, Namespace: api.NamespaceDefault,
}, },
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: map[string]string{"a": "b"}}, Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"a": "b"}},
Template: &api.PodTemplateSpec{ Template: &api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Labels: map[string]string{"a": "b"}, Labels: map[string]string{"a": "b"},
@ -77,7 +77,7 @@ func TestCreate(t *testing.T) {
// invalid (invalid selector) // invalid (invalid selector)
&extensions.DaemonSet{ &extensions.DaemonSet{
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: map[string]string{}}, Selector: &extensions.LabelSelector{MatchLabels: map[string]string{}},
Template: validDaemonSet.Spec.Template, Template: validDaemonSet.Spec.Template,
}, },
}, },
@ -115,7 +115,7 @@ func TestUpdate(t *testing.T) {
}, },
func(obj runtime.Object) runtime.Object { func(obj runtime.Object) runtime.Object {
object := obj.(*extensions.DaemonSet) object := obj.(*extensions.DaemonSet)
object.Spec.Selector = &extensions.PodSelector{MatchLabels: map[string]string{}} object.Spec.Selector = &extensions.LabelSelector{MatchLabels: map[string]string{}}
return object return object
}, },
) )

View File

@ -48,7 +48,7 @@ func validNewJob() *extensions.Job {
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Completions: &completions, Completions: &completions,
Parallelism: &parallelism, Parallelism: &parallelism,
Selector: &extensions.PodSelector{ Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"a": "b"}, MatchLabels: map[string]string{"a": "b"},
}, },
Template: api.PodTemplateSpec{ Template: api.PodTemplateSpec{
@ -84,7 +84,7 @@ func TestCreate(t *testing.T) {
&extensions.Job{ &extensions.Job{
Spec: extensions.JobSpec{ Spec: extensions.JobSpec{
Completions: validJob.Spec.Completions, Completions: validJob.Spec.Completions,
Selector: &extensions.PodSelector{}, Selector: &extensions.LabelSelector{},
Template: validJob.Spec.Template, Template: validJob.Spec.Template,
}, },
}, },
@ -108,7 +108,7 @@ func TestUpdate(t *testing.T) {
// invalid updateFunc // invalid updateFunc
func(obj runtime.Object) runtime.Object { func(obj runtime.Object) runtime.Object {
object := obj.(*extensions.Job) object := obj.(*extensions.Job)
object.Spec.Selector = &extensions.PodSelector{} object.Spec.Selector = &extensions.LabelSelector{}
return object return object
}, },
func(obj runtime.Object) runtime.Object { func(obj runtime.Object) runtime.Object {

View File

@ -32,7 +32,7 @@ func TestJobStrategy(t *testing.T) {
t.Errorf("Job should not allow create on update") t.Errorf("Job should not allow create on update")
} }
validSelector := &extensions.PodSelector{ validSelector := &extensions.LabelSelector{
MatchLabels: map[string]string{"a": "b"}, MatchLabels: map[string]string{"a": "b"},
} }
validPodTemplateSpec := api.PodTemplateSpec{ validPodTemplateSpec := api.PodTemplateSpec{
@ -97,7 +97,7 @@ func TestJobStatusStrategy(t *testing.T) {
if StatusStrategy.AllowCreateOnUpdate() { if StatusStrategy.AllowCreateOnUpdate() {
t.Errorf("Job should not allow create on update") t.Errorf("Job should not allow create on update")
} }
validSelector := &extensions.PodSelector{ validSelector := &extensions.LabelSelector{
MatchLabels: map[string]string{"a": "b"}, MatchLabels: map[string]string{"a": "b"},
} }
validPodTemplateSpec := api.PodTemplateSpec{ validPodTemplateSpec := api.PodTemplateSpec{

View File

@ -135,7 +135,7 @@ var _ = Describe("Daemon set", func() {
Name: dsName, Name: dsName,
}, },
Spec: extensions.DaemonSetSpec{ Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: complexLabel}, Selector: &extensions.LabelSelector{MatchLabels: complexLabel},
Template: &api.PodTemplateSpec{ Template: &api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{ ObjectMeta: api.ObjectMeta{
Labels: complexLabel, Labels: complexLabel,