Merge pull request #14575 from soltysh/jobs_podtemplate_not_pointer

Auto commit by PR queue bot
This commit is contained in:
k8s-merge-robot
2015-10-15 03:28:19 -07:00
16 changed files with 43 additions and 85 deletions

View File

@@ -1301,13 +1301,8 @@ func deepCopy_extensions_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner)
} else {
out.Selector = nil
}
if in.Template != nil {
out.Template = new(api.PodTemplateSpec)
if err := deepCopy_api_PodTemplateSpec(*in.Template, out.Template, c); err != nil {
return err
}
} else {
out.Template = nil
if err := deepCopy_api_PodTemplateSpec(in.Template, &out.Template, c); err != nil {
return err
}
return nil
}

View File

@@ -409,7 +409,7 @@ type JobSpec struct {
// Template is the object that describes the pod that will be created when
// executing a job.
Template *api.PodTemplateSpec `json:"template"`
Template api.PodTemplateSpec `json:"template"`
}
// JobStatus represents the current state of a Job.

View File

@@ -2792,13 +2792,8 @@ func autoconvert_extensions_JobSpec_To_v1beta1_JobSpec(in *extensions.JobSpec, o
} else {
out.Selector = nil
}
if in.Template != nil {
out.Template = new(v1.PodTemplateSpec)
if err := convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(in.Template, out.Template, s); err != nil {
return err
}
} else {
out.Template = nil
if err := convert_api_PodTemplateSpec_To_v1_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
return err
}
return nil
}
@@ -3714,13 +3709,8 @@ func autoconvert_v1beta1_JobSpec_To_extensions_JobSpec(in *JobSpec, out *extensi
} else {
out.Selector = nil
}
if in.Template != nil {
out.Template = new(api.PodTemplateSpec)
if err := convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(in.Template, out.Template, s); err != nil {
return err
}
} else {
out.Template = nil
if err := convert_v1_PodTemplateSpec_To_api_PodTemplateSpec(&in.Template, &out.Template, s); err != nil {
return err
}
return nil
}

View File

@@ -1313,13 +1313,8 @@ func deepCopy_v1beta1_JobSpec(in JobSpec, out *JobSpec, c *conversion.Cloner) er
} else {
out.Selector = nil
}
if in.Template != nil {
out.Template = new(v1.PodTemplateSpec)
if err := deepCopy_v1_PodTemplateSpec(*in.Template, out.Template, c); err != nil {
return err
}
} else {
out.Template = nil
if err := deepCopy_v1_PodTemplateSpec(in.Template, &out.Template, c); err != nil {
return err
}
return nil
}

View File

@@ -89,10 +89,7 @@ func addDefaultingFuncs() {
}
},
func(obj *Job) {
var labels map[string]string
if obj.Spec.Template != nil {
labels = obj.Spec.Template.Labels
}
labels := obj.Spec.Template.Labels
// TODO: support templates defined elsewhere when we support them in the API
if labels != nil {
if len(obj.Spec.Selector) == 0 {

View File

@@ -207,7 +207,7 @@ func TestSetDefaultJob(t *testing.T) {
// selector from template labels, completions and parallelism - default
{
Spec: JobSpec{
Template: &v1.PodTemplateSpec{
Template: v1.PodTemplateSpec{
ObjectMeta: v1.ObjectMeta{
Labels: map[string]string{"job": "selector"},
},
@@ -218,7 +218,7 @@ func TestSetDefaultJob(t *testing.T) {
{
Spec: JobSpec{
Completions: newInt(1),
Template: &v1.PodTemplateSpec{
Template: v1.PodTemplateSpec{
ObjectMeta: v1.ObjectMeta{
Labels: map[string]string{"job": "selector"},
},
@@ -229,7 +229,7 @@ func TestSetDefaultJob(t *testing.T) {
{
Spec: JobSpec{
Parallelism: newInt(1),
Template: &v1.PodTemplateSpec{
Template: v1.PodTemplateSpec{
ObjectMeta: v1.ObjectMeta{
Labels: map[string]string{"job": "selector"},
},

View File

@@ -417,7 +417,7 @@ type JobSpec struct {
// Template is the object that describes the pod that will be created when
// executing a job.
// More info: http://releases.k8s.io/HEAD/docs/user-guide/jobs.md
Template *v1.PodTemplateSpec `json:"template"`
Template v1.PodTemplateSpec `json:"template"`
}
// JobStatus represents the current state of a Job.

View File

@@ -351,19 +351,15 @@ func ValidateJobSpec(spec *extensions.JobSpec) errs.ValidationErrorList {
allErrs = append(allErrs, errs.NewFieldRequired("selector"))
}
if spec.Template == nil {
allErrs = append(allErrs, errs.NewFieldRequired("template"))
} else {
labels := labels.Set(spec.Template.Labels)
if !selector.Matches(labels) {
allErrs = append(allErrs, errs.NewFieldInvalid("template.labels", spec.Template.Labels, "selector does not match template"))
}
allErrs = append(allErrs, apivalidation.ValidatePodTemplateSpec(spec.Template).Prefix("template")...)
if spec.Template.Spec.RestartPolicy != api.RestartPolicyOnFailure &&
spec.Template.Spec.RestartPolicy != api.RestartPolicyNever {
allErrs = append(allErrs, errs.NewFieldValueNotSupported("template.spec.restartPolicy",
spec.Template.Spec.RestartPolicy, []string{string(api.RestartPolicyOnFailure), string(api.RestartPolicyNever)}))
}
labels := labels.Set(spec.Template.Labels)
if !selector.Matches(labels) {
allErrs = append(allErrs, errs.NewFieldInvalid("template.labels", spec.Template.Labels, "selector does not match template"))
}
allErrs = append(allErrs, apivalidation.ValidatePodTemplateSpec(&spec.Template).Prefix("template")...)
if spec.Template.Spec.RestartPolicy != api.RestartPolicyOnFailure &&
spec.Template.Spec.RestartPolicy != api.RestartPolicyNever {
allErrs = append(allErrs, errs.NewFieldValueNotSupported("template.spec.restartPolicy",
spec.Template.Spec.RestartPolicy, []string{string(api.RestartPolicyOnFailure), string(api.RestartPolicyNever)}))
}
return allErrs
}

View File

@@ -744,7 +744,7 @@ func TestValidateJob(t *testing.T) {
},
Spec: extensions.JobSpec{
Selector: validSelector,
Template: &validPodTemplateSpec,
Template: validPodTemplateSpec,
},
},
}
@@ -763,7 +763,7 @@ func TestValidateJob(t *testing.T) {
Spec: extensions.JobSpec{
Parallelism: &negative,
Selector: validSelector,
Template: &validPodTemplateSpec,
Template: validPodTemplateSpec,
},
},
"spec.completions:must be non-negative": {
@@ -774,7 +774,7 @@ func TestValidateJob(t *testing.T) {
Spec: extensions.JobSpec{
Completions: &negative,
Selector: validSelector,
Template: &validPodTemplateSpec,
Template: validPodTemplateSpec,
},
},
"spec.selector:required value": {
@@ -784,16 +784,7 @@ func TestValidateJob(t *testing.T) {
},
Spec: extensions.JobSpec{
Selector: map[string]string{},
Template: &validPodTemplateSpec,
},
},
"spec.template:required value": {
ObjectMeta: api.ObjectMeta{
Name: "myjob",
Namespace: api.NamespaceDefault,
},
Spec: extensions.JobSpec{
Selector: validSelector,
Template: validPodTemplateSpec,
},
},
"spec.template.labels:selector does not match template": {
@@ -803,7 +794,7 @@ func TestValidateJob(t *testing.T) {
},
Spec: extensions.JobSpec{
Selector: validSelector,
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: map[string]string{"y": "z"},
},
@@ -822,7 +813,7 @@ func TestValidateJob(t *testing.T) {
},
Spec: extensions.JobSpec{
Selector: validSelector,
Template: &api.PodTemplateSpec{
Template: api.PodTemplateSpec{
ObjectMeta: api.ObjectMeta{
Labels: validSelector,
},