mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-30 06:54:01 +00:00
Merge pull request #18011 from sdminonne/podSelector_labelSelector
Auto commit by PR queue bot
This commit is contained in:
commit
e2679abdb8
@ -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"
|
||||
|
@ -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’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’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>
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
|
@ -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)
|
||||
}
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
|
@ -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,
|
||||
}
|
||||
}
|
||||
|
@ -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"},
|
||||
},
|
||||
},
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
|
@ -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"
|
||||
)
|
||||
|
@ -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",
|
||||
}
|
||||
|
@ -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"))
|
||||
}
|
||||
|
@ -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{
|
||||
|
4
pkg/client/cache/listers.go
vendored
4
pkg/client/cache/listers.go
vendored
@ -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
|
||||
}
|
||||
|
16
pkg/client/cache/listers_test.go
vendored
16
pkg/client/cache/listers_test.go
vendored
@ -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"},
|
||||
},
|
||||
},
|
||||
|
@ -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
|
||||
}
|
||||
|
@ -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,
|
||||
|
@ -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)
|
||||
|
@ -43,7 +43,7 @@ func newJob(parallelism, completions int) *extensions.Job {
|
||||
Spec: extensions.JobSpec{
|
||||
Parallelism: ¶llelism,
|
||||
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"},
|
||||
},
|
||||
},
|
||||
|
@ -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
|
||||
|
@ -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",
|
||||
|
@ -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{
|
||||
|
@ -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{
|
||||
|
@ -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 {
|
||||
|
@ -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"},
|
||||
},
|
||||
},
|
||||
|
@ -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
|
||||
},
|
||||
)
|
||||
|
@ -48,7 +48,7 @@ func validNewJob() *extensions.Job {
|
||||
Spec: extensions.JobSpec{
|
||||
Completions: &completions,
|
||||
Parallelism: ¶llelism,
|
||||
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 {
|
||||
|
@ -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{
|
||||
|
@ -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,
|
||||
|
Loading…
Reference in New Issue
Block a user