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"
},
"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"
},
"template": {
@ -2950,9 +2950,9 @@
}
}
},
"v1beta1.PodSelector": {
"id": "v1beta1.PodSelector",
"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.",
"v1beta1.LabelSelector": {
"id": "v1beta1.LabelSelector",
"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": {
"matchLabels": {
"type": "any",
@ -2961,15 +2961,15 @@
"matchExpressions": {
"type": "array",
"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": {
"id": "v1beta1.PodSelectorRequirement",
"description": "A pod selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
"v1beta1.LabelSelectorRequirement": {
"id": "v1beta1.LabelSelectorRequirement",
"description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.",
"required": [
"key",
"operator"

View File

@ -398,54 +398,6 @@ span.icon > [class^="icon-"], span.icon > [class*=" icon-"] { cursor: default; }
<h2 id="_definitions">Definitions</h2>
<div class="sectionbody">
<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>
<div class="paragraph">
<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>
</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 class="sect2">
<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>
</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 class="sect2">
<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 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"><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>
</tr>
<tr>
@ -3398,47 +3439,6 @@ Populated by the system when a graceful deletion is requested. Read-only. More i
</tbody>
</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 class="sect2">
<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 id="footer">
<div id="footer-text">
Last updated 2015-11-29 16:46:22 UTC
Last updated 2015-12-01 22:09:32 UTC
</div>
</div>
</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 {
if in.Selector != nil {
out.Selector = new(PodSelector)
if err := deepCopy_extensions_PodSelector(*in.Selector, out.Selector, c); err != nil {
out.Selector = new(LabelSelector)
if err := deepCopy_extensions_LabelSelector(*in.Selector, out.Selector, c); err != nil {
return err
}
} else {
@ -1345,8 +1345,8 @@ func deepCopy_extensions_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner)
out.Completions = nil
}
if in.Selector != nil {
out.Selector = new(PodSelector)
if err := deepCopy_extensions_PodSelector(*in.Selector, out.Selector, c); err != nil {
out.Selector = new(LabelSelector)
if err := deepCopy_extensions_LabelSelector(*in.Selector, out.Selector, c); err != nil {
return err
}
} else {
@ -1391,13 +1391,7 @@ func deepCopy_extensions_JobStatus(in JobStatus, out *JobStatus, c *conversion.C
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_PodSelector(in PodSelector, out *PodSelector, c *conversion.Cloner) error {
func deepCopy_extensions_LabelSelector(in LabelSelector, out *LabelSelector, c *conversion.Cloner) error {
if in.MatchLabels != nil {
out.MatchLabels = make(map[string]string)
for key, val := range in.MatchLabels {
@ -1407,9 +1401,9 @@ func deepCopy_extensions_PodSelector(in PodSelector, out *PodSelector, c *conver
out.MatchLabels = nil
}
if in.MatchExpressions != nil {
out.MatchExpressions = make([]PodSelectorRequirement, len(in.MatchExpressions))
out.MatchExpressions = make([]LabelSelectorRequirement, len(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
}
}
@ -1419,7 +1413,7 @@ func deepCopy_extensions_PodSelector(in PodSelector, out *PodSelector, c *conver
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.Operator = in.Operator
if in.Values != nil {
@ -1433,6 +1427,12 @@ func deepCopy_extensions_PodSelectorRequirement(in PodSelectorRequirement, out *
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 {
if err := deepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
@ -1659,9 +1659,9 @@ func init() {
deepCopy_extensions_JobList,
deepCopy_extensions_JobSpec,
deepCopy_extensions_JobStatus,
deepCopy_extensions_LabelSelector,
deepCopy_extensions_LabelSelectorRequirement,
deepCopy_extensions_NodeUtilization,
deepCopy_extensions_PodSelector,
deepCopy_extensions_PodSelectorRequirement,
deepCopy_extensions_ReplicationControllerDummy,
deepCopy_extensions_RollingUpdateDeployment,
deepCopy_extensions_Scale,

View File

@ -25,9 +25,9 @@ import (
"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
func PodSelectorAsSelector(ps *PodSelector) (labels.Selector, error) {
func LabelSelectorAsSelector(ps *LabelSelector) (labels.Selector, error) {
if ps == nil {
return labels.Nothing(), nil
}
@ -45,13 +45,13 @@ func PodSelectorAsSelector(ps *PodSelector) (labels.Selector, error) {
for _, expr := range ps.MatchExpressions {
var op labels.Operator
switch expr.Operator {
case PodSelectorOpIn:
case LabelSelectorOpIn:
op = labels.InOperator
case PodSelectorOpNotIn:
case LabelSelectorOpNotIn:
op = labels.NotInOperator
case PodSelectorOpExists:
case LabelSelectorOpExists:
op = labels.ExistsOperator
case PodSelectorOpDoesNotExist:
case LabelSelectorOpDoesNotExist:
op = labels.DoesNotExistOperator
default:
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"
)
func TestPodSelectorAsSelector(t *testing.T) {
func TestLabelSelectorAsSelector(t *testing.T) {
matchLabels := map[string]string{"foo": "bar"}
matchExpressions := []PodSelectorRequirement{{
matchExpressions := []LabelSelectorRequirement{{
Key: "baz",
Operator: PodSelectorOpIn,
Operator: LabelSelectorOpIn,
Values: []string{"qux", "norf"},
}}
mustParse := func(s string) labels.Selector {
@ -38,29 +38,29 @@ func TestPodSelectorAsSelector(t *testing.T) {
return out
}
tc := []struct {
in *PodSelector
in *LabelSelector
out labels.Selector
expectErr bool
}{
{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)"),
},
{
in: &PodSelector{MatchExpressions: matchExpressions},
in: &LabelSelector{MatchExpressions: matchExpressions},
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)"),
},
{
in: &PodSelector{
MatchExpressions: []PodSelectorRequirement{{
in: &LabelSelector{
MatchExpressions: []LabelSelectorRequirement{{
Key: "baz",
Operator: PodSelectorOpExists,
Operator: LabelSelectorOpExists,
Values: []string{"qux", "norf"},
}},
},
@ -69,7 +69,7 @@ func TestPodSelectorAsSelector(t *testing.T) {
}
for i, tc := range tc {
out, err := PodSelectorAsSelector(tc.in)
out, err := LabelSelectorAsSelector(tc.in)
if err == nil && tc.expectErr {
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 {
if x.Selector == nil {
x.Selector = new(PodSelector)
x.Selector = new(LabelSelector)
}
x.Selector.CodecDecodeSelf(d)
}
@ -6263,7 +6263,7 @@ func (x *DaemonSetSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
}
} else {
if x.Selector == nil {
x.Selector = new(PodSelector)
x.Selector = new(LabelSelector)
}
x.Selector.CodecDecodeSelf(d)
}
@ -8503,7 +8503,7 @@ func (x *JobSpec) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
}
} else {
if x.Selector == nil {
x.Selector = new(PodSelector)
x.Selector = new(LabelSelector)
}
x.Selector.CodecDecodeSelf(d)
}
@ -8597,7 +8597,7 @@ func (x *JobSpec) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
}
} else {
if x.Selector == nil {
x.Selector = new(PodSelector)
x.Selector = new(LabelSelector)
}
x.Selector.CodecDecodeSelf(d)
}
@ -12900,7 +12900,7 @@ func (x *ClusterAutoscalerList) codecDecodeSelfFromArray(l int, d *codec1978.Dec
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
func (x *LabelSelector) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
@ -12975,7 +12975,7 @@ func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
_ = yym1084
if false {
} else {
h.encSlicePodSelectorRequirement(([]PodSelectorRequirement)(x.MatchExpressions), e)
h.encSliceLabelSelectorRequirement(([]LabelSelectorRequirement)(x.MatchExpressions), e)
}
}
} else {
@ -12993,7 +12993,7 @@ func (x *PodSelector) CodecEncodeSelf(e *codec1978.Encoder) {
_ = yym1085
if false {
} 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
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = 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
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
@ -13080,7 +13080,7 @@ func (x *PodSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
_ = yym1092
if false {
} else {
h.decSlicePodSelectorRequirement((*[]PodSelectorRequirement)(yyv1091), d)
h.decSliceLabelSelectorRequirement((*[]LabelSelectorRequirement)(yyv1091), d)
}
}
default:
@ -13090,7 +13090,7 @@ func (x *PodSelector) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
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
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
@ -13138,7 +13138,7 @@ func (x *PodSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
_ = yym1097
if false {
} else {
h.decSlicePodSelectorRequirement((*[]PodSelectorRequirement)(yyv1096), d)
h.decSliceLabelSelectorRequirement((*[]LabelSelectorRequirement)(yyv1096), d)
}
}
for {
@ -13157,7 +13157,7 @@ func (x *PodSelector) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
func (x *PodSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder) {
func (x *LabelSelectorRequirement) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = 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
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = 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
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
@ -13320,7 +13320,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Deco
if r.TryDecodeAsNil() {
x.Operator = ""
} else {
x.Operator = PodSelectorOperator(r.DecodeString())
x.Operator = LabelSelectorOperator(r.DecodeString())
}
case "values":
if r.TryDecodeAsNil() {
@ -13341,7 +13341,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromMap(l int, d *codec1978.Deco
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
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
@ -13378,7 +13378,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.De
if r.TryDecodeAsNil() {
x.Operator = ""
} else {
x.Operator = PodSelectorOperator(r.DecodeString())
x.Operator = LabelSelectorOperator(r.DecodeString())
}
yyj1114++
if yyhl1114 {
@ -13418,7 +13418,7 @@ func (x *PodSelectorRequirement) codecDecodeSelfFromArray(l int, d *codec1978.De
z.DecSendContainerState(codecSelfer_containerArrayEnd1234)
}
func (x PodSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder) {
func (x LabelSelectorOperator) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = 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
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = 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
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
@ -14965,7 +14965,7 @@ func (x codecSelfer1234) encSlicePodSelectorRequirement(v []PodSelectorRequireme
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
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
@ -14975,7 +14975,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
var yyc1201 bool
if yyl1201 == 0 {
if yyv1201 == nil {
yyv1201 = []PodSelectorRequirement{}
yyv1201 = []LabelSelectorRequirement{}
yyc1201 = true
} else if len(yyv1201) != 0 {
yyv1201 = yyv1201[:0]
@ -14993,10 +14993,10 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
if yyrl1201 <= cap(yyv1201) {
yyv1201 = yyv1201[:yyrl1201]
} else {
yyv1201 = make([]PodSelectorRequirement, yyrl1201)
yyv1201 = make([]LabelSelectorRequirement, yyrl1201)
}
} else {
yyv1201 = make([]PodSelectorRequirement, yyrl1201)
yyv1201 = make([]LabelSelectorRequirement, yyrl1201)
}
yyc1201 = true
yyrr1201 = len(yyv1201)
@ -15011,7 +15011,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
for ; yyj1201 < yyrr1201; yyj1201++ {
yyh1201.ElemContainerState(yyj1201)
if r.TryDecodeAsNil() {
yyv1201[yyj1201] = PodSelectorRequirement{}
yyv1201[yyj1201] = LabelSelectorRequirement{}
} else {
yyv1202 := &yyv1201[yyj1201]
yyv1202.CodecDecodeSelf(d)
@ -15020,10 +15020,10 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
}
if yyrt1201 {
for ; yyj1201 < yyl1201; yyj1201++ {
yyv1201 = append(yyv1201, PodSelectorRequirement{})
yyv1201 = append(yyv1201, LabelSelectorRequirement{})
yyh1201.ElemContainerState(yyj1201)
if r.TryDecodeAsNil() {
yyv1201[yyj1201] = PodSelectorRequirement{}
yyv1201[yyj1201] = LabelSelectorRequirement{}
} else {
yyv1203 := &yyv1201[yyj1201]
yyv1203.CodecDecodeSelf(d)
@ -15037,13 +15037,13 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
for ; !r.CheckBreak(); yyj1201++ {
if yyj1201 >= len(yyv1201) {
yyv1201 = append(yyv1201, PodSelectorRequirement{}) // var yyz1201 PodSelectorRequirement
yyv1201 = append(yyv1201, LabelSelectorRequirement{}) // var yyz1201 LabelSelectorRequirement
yyc1201 = true
}
yyh1201.ElemContainerState(yyj1201)
if yyj1201 < len(yyv1201) {
if r.TryDecodeAsNil() {
yyv1201[yyj1201] = PodSelectorRequirement{}
yyv1201[yyj1201] = LabelSelectorRequirement{}
} else {
yyv1204 := &yyv1201[yyj1201]
yyv1204.CodecDecodeSelf(d)
@ -15058,7 +15058,7 @@ func (x codecSelfer1234) decSlicePodSelectorRequirement(v *[]PodSelectorRequirem
yyv1201 = yyv1201[:yyj1201]
yyc1201 = true
} else if yyj1201 == 0 && yyv1201 == nil {
yyv1201 = []PodSelectorRequirement{}
yyv1201 = []LabelSelectorRequirement{}
yyc1201 = true
}
}

View File

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

View File

@ -2302,8 +2302,8 @@ func autoconvert_extensions_DaemonSetSpec_To_v1beta1_DaemonSetSpec(in *extension
defaulting.(func(*extensions.DaemonSetSpec))(in)
}
if in.Selector != nil {
out.Selector = new(PodSelector)
if err := convert_extensions_PodSelector_To_v1beta1_PodSelector(in.Selector, out.Selector, s); err != nil {
out.Selector = new(LabelSelector)
if err := convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
return err
}
} else {
@ -2821,8 +2821,8 @@ func autoconvert_extensions_JobSpec_To_v1beta1_JobSpec(in *extensions.JobSpec, o
out.Completions = nil
}
if in.Selector != nil {
out.Selector = new(PodSelector)
if err := convert_extensions_PodSelector_To_v1beta1_PodSelector(in.Selector, out.Selector, s); err != nil {
out.Selector = new(LabelSelector)
if err := convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in.Selector, out.Selector, s); err != nil {
return err
}
} 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)
}
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 {
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_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)
defaulting.(func(*extensions.LabelSelector))(in)
}
if in.MatchLabels != nil {
out.MatchLabels = make(map[string]string)
@ -2902,9 +2889,9 @@ func autoconvert_extensions_PodSelector_To_v1beta1_PodSelector(in *extensions.Po
out.MatchLabels = nil
}
if in.MatchExpressions != nil {
out.MatchExpressions = make([]PodSelectorRequirement, len(in.MatchExpressions))
out.MatchExpressions = make([]LabelSelectorRequirement, len(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
}
}
@ -2914,16 +2901,16 @@ func autoconvert_extensions_PodSelector_To_v1beta1_PodSelector(in *extensions.Po
return nil
}
func convert_extensions_PodSelector_To_v1beta1_PodSelector(in *extensions.PodSelector, out *PodSelector, s conversion.Scope) error {
return autoconvert_extensions_PodSelector_To_v1beta1_PodSelector(in, out, s)
func convert_extensions_LabelSelector_To_v1beta1_LabelSelector(in *extensions.LabelSelector, out *LabelSelector, s conversion.Scope) error {
return autoconvert_extensions_LabelSelector_To_v1beta1_LabelSelector(in, out, s)
}
func autoconvert_extensions_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 {
defaulting.(func(*extensions.PodSelectorRequirement))(in)
defaulting.(func(*extensions.LabelSelectorRequirement))(in)
}
out.Key = in.Key
out.Operator = PodSelectorOperator(in.Operator)
out.Operator = LabelSelectorOperator(in.Operator)
if in.Values != nil {
out.Values = make([]string, len(in.Values))
for i := range in.Values {
@ -2935,8 +2922,21 @@ func autoconvert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequire
return nil
}
func convert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequirement(in *extensions.PodSelectorRequirement, out *PodSelectorRequirement, s conversion.Scope) error {
return autoconvert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequirement(in, out, s)
func convert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in *extensions.LabelSelectorRequirement, out *LabelSelectorRequirement, s conversion.Scope) error {
return autoconvert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement(in, out, s)
}
func autoconvert_extensions_NodeUtilization_To_v1beta1_NodeUtilization(in *extensions.NodeUtilization, out *NodeUtilization, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*extensions.NodeUtilization))(in)
}
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 {
@ -3289,8 +3289,8 @@ func autoconvert_v1beta1_DaemonSetSpec_To_extensions_DaemonSetSpec(in *DaemonSet
defaulting.(func(*DaemonSetSpec))(in)
}
if in.Selector != nil {
out.Selector = new(extensions.PodSelector)
if err := convert_v1beta1_PodSelector_To_extensions_PodSelector(in.Selector, out.Selector, s); err != nil {
out.Selector = new(extensions.LabelSelector)
if err := convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
return err
}
} else {
@ -3788,8 +3788,8 @@ func autoconvert_v1beta1_JobSpec_To_extensions_JobSpec(in *JobSpec, out *extensi
out.Completions = nil
}
if in.Selector != nil {
out.Selector = new(extensions.PodSelector)
if err := convert_v1beta1_PodSelector_To_extensions_PodSelector(in.Selector, out.Selector, s); err != nil {
out.Selector = new(extensions.LabelSelector)
if err := convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in.Selector, out.Selector, s); err != nil {
return err
}
} 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)
}
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 {
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_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)
defaulting.(func(*LabelSelector))(in)
}
if in.MatchLabels != nil {
out.MatchLabels = make(map[string]string)
@ -3869,9 +3856,9 @@ func autoconvert_v1beta1_PodSelector_To_extensions_PodSelector(in *PodSelector,
out.MatchLabels = 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 {
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
}
}
@ -3881,16 +3868,16 @@ func autoconvert_v1beta1_PodSelector_To_extensions_PodSelector(in *PodSelector,
return nil
}
func convert_v1beta1_PodSelector_To_extensions_PodSelector(in *PodSelector, out *extensions.PodSelector, s conversion.Scope) error {
return autoconvert_v1beta1_PodSelector_To_extensions_PodSelector(in, out, s)
func convert_v1beta1_LabelSelector_To_extensions_LabelSelector(in *LabelSelector, out *extensions.LabelSelector, s conversion.Scope) error {
return autoconvert_v1beta1_LabelSelector_To_extensions_LabelSelector(in, out, s)
}
func 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 {
defaulting.(func(*PodSelectorRequirement))(in)
defaulting.(func(*LabelSelectorRequirement))(in)
}
out.Key = in.Key
out.Operator = extensions.PodSelectorOperator(in.Operator)
out.Operator = extensions.LabelSelectorOperator(in.Operator)
if in.Values != nil {
out.Values = make([]string, len(in.Values))
for i := range in.Values {
@ -3902,8 +3889,21 @@ func autoconvert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequire
return nil
}
func convert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequirement(in *PodSelectorRequirement, out *extensions.PodSelectorRequirement, s conversion.Scope) error {
return autoconvert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequirement(in, out, s)
func convert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(in *LabelSelectorRequirement, out *extensions.LabelSelectorRequirement, s conversion.Scope) error {
return autoconvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement(in, out, s)
}
func 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 {
@ -4177,9 +4177,9 @@ func init() {
autoconvert_extensions_JobSpec_To_v1beta1_JobSpec,
autoconvert_extensions_JobStatus_To_v1beta1_JobStatus,
autoconvert_extensions_Job_To_v1beta1_Job,
autoconvert_extensions_LabelSelectorRequirement_To_v1beta1_LabelSelectorRequirement,
autoconvert_extensions_LabelSelector_To_v1beta1_LabelSelector,
autoconvert_extensions_NodeUtilization_To_v1beta1_NodeUtilization,
autoconvert_extensions_PodSelectorRequirement_To_v1beta1_PodSelectorRequirement,
autoconvert_extensions_PodSelector_To_v1beta1_PodSelector,
autoconvert_extensions_ReplicationControllerDummy_To_v1beta1_ReplicationControllerDummy,
autoconvert_extensions_RollingUpdateDeployment_To_v1beta1_RollingUpdateDeployment,
autoconvert_extensions_ScaleSpec_To_v1beta1_ScaleSpec,
@ -4262,9 +4262,9 @@ func init() {
autoconvert_v1beta1_JobSpec_To_extensions_JobSpec,
autoconvert_v1beta1_JobStatus_To_extensions_JobStatus,
autoconvert_v1beta1_Job_To_extensions_Job,
autoconvert_v1beta1_LabelSelectorRequirement_To_extensions_LabelSelectorRequirement,
autoconvert_v1beta1_LabelSelector_To_extensions_LabelSelector,
autoconvert_v1beta1_NodeUtilization_To_extensions_NodeUtilization,
autoconvert_v1beta1_PodSelectorRequirement_To_extensions_PodSelectorRequirement,
autoconvert_v1beta1_PodSelector_To_extensions_PodSelector,
autoconvert_v1beta1_ReplicationControllerDummy_To_extensions_ReplicationControllerDummy,
autoconvert_v1beta1_RollingUpdateDeployment_To_extensions_RollingUpdateDeployment,
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 {
if in.Selector != nil {
out.Selector = new(PodSelector)
if err := deepCopy_v1beta1_PodSelector(*in.Selector, out.Selector, c); err != nil {
out.Selector = new(LabelSelector)
if err := deepCopy_v1beta1_LabelSelector(*in.Selector, out.Selector, c); err != nil {
return err
}
} else {
@ -1357,8 +1357,8 @@ func deepCopy_v1beta1_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner) er
out.Completions = nil
}
if in.Selector != nil {
out.Selector = new(PodSelector)
if err := deepCopy_v1beta1_PodSelector(*in.Selector, out.Selector, c); err != nil {
out.Selector = new(LabelSelector)
if err := deepCopy_v1beta1_LabelSelector(*in.Selector, out.Selector, c); err != nil {
return err
}
} else {
@ -1403,13 +1403,7 @@ func deepCopy_v1beta1_JobStatus(in JobStatus, out *JobStatus, c *conversion.Clon
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_PodSelector(in PodSelector, out *PodSelector, c *conversion.Cloner) error {
func deepCopy_v1beta1_LabelSelector(in LabelSelector, out *LabelSelector, c *conversion.Cloner) error {
if in.MatchLabels != nil {
out.MatchLabels = make(map[string]string)
for key, val := range in.MatchLabels {
@ -1419,9 +1413,9 @@ func deepCopy_v1beta1_PodSelector(in PodSelector, out *PodSelector, c *conversio
out.MatchLabels = nil
}
if in.MatchExpressions != nil {
out.MatchExpressions = make([]PodSelectorRequirement, len(in.MatchExpressions))
out.MatchExpressions = make([]LabelSelectorRequirement, len(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
}
}
@ -1431,7 +1425,7 @@ func deepCopy_v1beta1_PodSelector(in PodSelector, out *PodSelector, c *conversio
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.Operator = in.Operator
if in.Values != nil {
@ -1445,6 +1439,12 @@ func deepCopy_v1beta1_PodSelectorRequirement(in PodSelectorRequirement, out *Pod
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 {
if err := deepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
@ -1681,9 +1681,9 @@ func init() {
deepCopy_v1beta1_JobList,
deepCopy_v1beta1_JobSpec,
deepCopy_v1beta1_JobStatus,
deepCopy_v1beta1_LabelSelector,
deepCopy_v1beta1_LabelSelectorRequirement,
deepCopy_v1beta1_NodeUtilization,
deepCopy_v1beta1_PodSelector,
deepCopy_v1beta1_PodSelectorRequirement,
deepCopy_v1beta1_ReplicationControllerDummy,
deepCopy_v1beta1_RollingUpdateDeployment,
deepCopy_v1beta1_Scale,

View File

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

View File

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

View File

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

View File

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

View File

@ -363,6 +363,27 @@ func (JobStatus) SwaggerDoc() map[string]string {
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{
"": "NodeUtilization describes what percentage of a particular resource is used on a node.",
"value": "The accepted values are from 0 to 1.",
@ -372,27 +393,6 @@ func (NodeUtilization) SwaggerDoc() map[string]string {
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{
"": "Dummy definition",
}

View File

@ -188,14 +188,14 @@ func ValidateDaemonSetTemplateUpdate(podTemplate, oldPodTemplate *api.PodTemplat
func ValidateDaemonSetSpec(spec *extensions.DaemonSetSpec, fldPath *validation.FieldPath) 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 {
allErrs = append(allErrs, validation.NewRequiredError(fldPath.Child("template")))
return allErrs
}
selector, err := extensions.PodSelectorAsSelector(spec.Selector)
selector, err := extensions.LabelSelectorAsSelector(spec.Selector)
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"))
}
@ -349,10 +349,10 @@ func ValidateJobSpec(spec *extensions.JobSpec, fldPath *validation.FieldPath) va
if spec.Selector == nil {
allErrs = append(allErrs, validation.NewRequiredError(fldPath.Child("selector")))
} 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)
if !selector.Matches(labels) {
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
}
func ValidatePodSelector(ps *extensions.PodSelector, fldPath *validation.FieldPath) validation.ErrorList {
func ValidateLabelSelector(ps *extensions.LabelSelector, fldPath *validation.FieldPath) validation.ErrorList {
allErrs := validation.ErrorList{}
if ps == nil {
return allErrs
}
allErrs = append(allErrs, apivalidation.ValidateLabels(ps.MatchLabels, fldPath.Child("matchLabels"))...)
for i, expr := range ps.MatchExpressions {
allErrs = append(allErrs, ValidatePodSelectorRequirement(expr, fldPath.Child("matchExpressions").Index(i))...)
allErrs = append(allErrs, ValidateLabelSelectorRequirement(expr, fldPath.Child("matchExpressions").Index(i))...)
}
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{}
switch sr.Operator {
case extensions.PodSelectorOpIn, extensions.PodSelectorOpNotIn:
case extensions.LabelSelectorOpIn, extensions.LabelSelectorOpNotIn:
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"))
}
case extensions.PodSelectorOpExists, extensions.PodSelectorOpDoesNotExist:
case extensions.LabelSelectorOpExists, extensions.LabelSelectorOpDoesNotExist:
if len(sr.Values) > 0 {
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{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
@ -384,14 +384,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector2},
Selector: &extensions.LabelSelector{MatchLabels: validSelector2},
Template: &validPodTemplateAbc2.Template,
},
},
@ -400,14 +400,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateNodeSelector.Template,
},
},
@ -425,14 +425,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
@ -441,14 +441,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: invalidSelector},
Selector: &extensions.LabelSelector{MatchLabels: invalidSelector},
Template: &validPodTemplateAbc.Template,
},
},
@ -457,14 +457,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &invalidPodTemplate.Template,
},
},
@ -473,14 +473,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateDef.Template,
},
},
@ -489,14 +489,14 @@ func TestValidateDaemonSetUpdate(t *testing.T) {
old: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplateAbc.Template,
},
},
update: extensions.DaemonSet{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &readWriteVolumePodTemplate.Template,
},
},
@ -539,14 +539,14 @@ func TestValidateDaemonSet(t *testing.T) {
{
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
},
},
{
ObjectMeta: api.ObjectMeta{Name: "abc-123", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
},
},
@ -561,14 +561,14 @@ func TestValidateDaemonSet(t *testing.T) {
"zero-length ID": {
ObjectMeta: api.ObjectMeta{Name: "", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
},
},
"missing-namespace": {
ObjectMeta: api.ObjectMeta{Name: "abc-123"},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
},
},
@ -581,14 +581,14 @@ func TestValidateDaemonSet(t *testing.T) {
"selector_doesnt_match": {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: map[string]string{"foo": "bar"}},
Selector: &extensions.LabelSelector{MatchLabels: map[string]string{"foo": "bar"}},
Template: &validPodTemplate.Template,
},
},
"invalid manifest": {
ObjectMeta: api.ObjectMeta{Name: "abc", Namespace: api.NamespaceDefault},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
},
},
"invalid_label": {
@ -600,7 +600,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
},
},
@ -625,7 +625,7 @@ func TestValidateDaemonSet(t *testing.T) {
},
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &validPodTemplate.Template,
},
},
@ -635,7 +635,7 @@ func TestValidateDaemonSet(t *testing.T) {
Namespace: api.NamespaceDefault,
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &api.PodTemplateSpec{
Spec: api.PodSpec{
RestartPolicy: api.RestartPolicyOnFailure,
@ -654,7 +654,7 @@ func TestValidateDaemonSet(t *testing.T) {
Namespace: api.NamespaceDefault,
},
Spec: extensions.DaemonSetSpec{
Selector: &extensions.PodSelector{MatchLabels: validSelector},
Selector: &extensions.LabelSelector{MatchLabels: validSelector},
Template: &api.PodTemplateSpec{
Spec: api.PodSpec{
RestartPolicy: api.RestartPolicyNever,
@ -808,7 +808,7 @@ func TestValidateDeployment(t *testing.T) {
}
func TestValidateJob(t *testing.T) {
validSelector := &extensions.PodSelector{
validSelector := &extensions.LabelSelector{
MatchLabels: map[string]string{"a": "b"},
}
validPodTemplateSpec := api.PodTemplateSpec{

View File

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

View File

@ -272,7 +272,7 @@ func TestStoreToDaemonSetLister(t *testing.T) {
{
ObjectMeta: api.ObjectMeta{Name: "basic", Namespace: "ns"},
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"},
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"},
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"},
Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "baz"},
},
},
@ -444,7 +444,7 @@ func TestStoreToJobLister(t *testing.T) {
{
ObjectMeta: api.ObjectMeta{Name: "foo"},
Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"},
},
},
@ -452,7 +452,7 @@ func TestStoreToJobLister(t *testing.T) {
{
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"},
},
},
@ -477,7 +477,7 @@ func TestStoreToJobLister(t *testing.T) {
{
ObjectMeta: api.ObjectMeta{Name: "foo", Namespace: "foo"},
Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"},
},
},
@ -485,7 +485,7 @@ func TestStoreToJobLister(t *testing.T) {
{
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "bar"},
Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
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.
func (dsc *DaemonSetsController) getNodesToDaemonPods(ds *extensions.DaemonSet) (map[string][]*api.Pod, error) {
nodeToDaemonPods := make(map[string][]*api.Pod)
selector, err := extensions.PodSelectorAsSelector(ds.Spec.Selector)
selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
if err != nil {
return nil, err
}

View File

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

View File

@ -311,7 +311,7 @@ func (jm *JobController) syncJob(key string) error {
return err
}
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)
if err != nil {
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{
Parallelism: &parallelism,
Completions: &completions,
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"},
},
Template: api.PodTemplateSpec{
@ -291,7 +291,7 @@ func TestJobPodLookup(t *testing.T) {
job: &extensions.Job{
ObjectMeta: api.ObjectMeta{Name: "foo"},
Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"foo": "bar"},
},
},
@ -310,11 +310,11 @@ func TestJobPodLookup(t *testing.T) {
job: &extensions.Job{
ObjectMeta: api.ObjectMeta{Name: "bar", Namespace: "ns"},
Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{
MatchExpressions: []extensions.PodSelectorRequirement{
Selector: &extensions.LabelSelector{
MatchExpressions: []extensions.LabelSelectorRequirement{
{
Key: "foo",
Operator: extensions.PodSelectorOpIn,
Operator: extensions.LabelSelectorOpIn,
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, "Namespace:\t%s\n", job.Namespace)
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, "Parallelism:\t%d\n", *job.Spec.Parallelism)
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
}
selector, err := extensions.PodSelectorAsSelector(daemon.Spec.Selector)
selector, err := extensions.LabelSelectorAsSelector(daemon.Spec.Selector)
if err != nil {
return "", err
}
@ -938,9 +938,9 @@ func describeDaemonSet(daemon *extensions.DaemonSet, events *api.EventList, runn
} else {
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 {
// this shouldn't happen if PodSelector passed validation
// this shouldn't happen if LabelSelector passed validation
return err
}
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.
var matchingDaemonSets []extensions.DaemonSet
for _, ds := range dss.Items {
selector, err := extensions.PodSelectorAsSelector(ds.Spec.Selector)
selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
if err != nil {
// this should never happen if the DaemonSet passed validation
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",
name,
firstContainer.Name,
@ -931,9 +931,9 @@ func printDaemonSet(ds *extensions.DaemonSet, w io.Writer, withNamespace bool, w
return err
}
}
selector, err := extensions.PodSelectorAsSelector(ds.Spec.Selector)
selector, err := extensions.LabelSelectorAsSelector(ds.Spec.Selector)
if err != nil {
// this shouldn't happen if PodSelector passed validation
// this shouldn't happen if LabelSelector passed validation
return err
}
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,
},
Spec: extensions.JobSpec{
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
MatchLabels: labels,
},
Template: api.PodTemplateSpec{

View File

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

View File

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

View File

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

View File

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

View File

@ -48,7 +48,7 @@ func validNewJob() *extensions.Job {
Spec: extensions.JobSpec{
Completions: &completions,
Parallelism: &parallelism,
Selector: &extensions.PodSelector{
Selector: &extensions.LabelSelector{
MatchLabels: map[string]string{"a": "b"},
},
Template: api.PodTemplateSpec{
@ -84,7 +84,7 @@ func TestCreate(t *testing.T) {
&extensions.Job{
Spec: extensions.JobSpec{
Completions: validJob.Spec.Completions,
Selector: &extensions.PodSelector{},
Selector: &extensions.LabelSelector{},
Template: validJob.Spec.Template,
},
},
@ -108,7 +108,7 @@ func TestUpdate(t *testing.T) {
// invalid updateFunc
func(obj runtime.Object) runtime.Object {
object := obj.(*extensions.Job)
object.Spec.Selector = &extensions.PodSelector{}
object.Spec.Selector = &extensions.LabelSelector{}
return 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")
}
validSelector := &extensions.PodSelector{
validSelector := &extensions.LabelSelector{
MatchLabels: map[string]string{"a": "b"},
}
validPodTemplateSpec := api.PodTemplateSpec{
@ -97,7 +97,7 @@ func TestJobStatusStrategy(t *testing.T) {
if StatusStrategy.AllowCreateOnUpdate() {
t.Errorf("Job should not allow create on update")
}
validSelector := &extensions.PodSelector{
validSelector := &extensions.LabelSelector{
MatchLabels: map[string]string{"a": "b"},
}
validPodTemplateSpec := api.PodTemplateSpec{

View File

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