From 0e7b5e7a5ddd5ca67a5cd8dc1f2393805ffdb7df Mon Sep 17 00:00:00 2001 From: Alena Prokharchyk Date: Tue, 20 Feb 2018 15:56:34 -0800 Subject: [PATCH] Embed jobtempalte for cron job --- apis/project.cattle.io/v3/schema/schema.go | 33 +++++++++++++++++----- 1 file changed, 26 insertions(+), 7 deletions(-) diff --git a/apis/project.cattle.io/v3/schema/schema.go b/apis/project.cattle.io/v3/schema/schema.go index 5e87e5f6..06770958 100644 --- a/apis/project.cattle.io/v3/schema/schema.go +++ b/apis/project.cattle.io/v3/schema/schema.go @@ -281,6 +281,13 @@ func jobTypes(schemas *types.Schemas) *types.Schemas { func cronJobTypes(schemas *types.Schemas) *types.Schemas { return schemas. + AddMapperForType(&Version, batchv1beta1.JobTemplateSpec{}, + &m.Move{ + From: "metadata", + To: "jobMetadata", + }, + &m.Embed{Field: "spec"}, + ). AddMapperForType(&Version, batchv1beta1.CronJobSpec{}, &m.Move{ From: "schedule", @@ -306,22 +313,34 @@ func cronJobTypes(schemas *types.Schemas) *types.Schemas { From: "failedJobsHistoryLimit", To: "cronJob/failedJobsHistoryLimit", }, - // TODO - embed jobTemplate field. Now it fails due to jobTemplate.spec and jobTemplate.spec.template.spec - // name conflict - &m.Move{ - From: "jobTemplate", - To: "cronJob/jobTemplate", + &m.Embed{ + Field: "jobTemplate", }, + &m.Move{ + From: "job", + To: "cronJob/job", + }, + &m.Move{ + From: "jobMetadata/labels", + To: "cronJob/jobLabels", + NoDeleteFromField: true, + }, + &m.Move{ + From: "jobMetadata/annotations", + To: "cronJob/jobAnnotations", + NoDeleteFromField: true, + }, + &m.Drop{Field: "jobMetadata"}, ). AddMapperForType(&Version, batchv1beta1.CronJob{}, &m.Move{ From: "status", To: "cronJobStatus", }, - // TODO resolve once proper embedding for jobTemplate is done - //NewWorkloadTypeMapper(), + NewWorkloadTypeMapper(), ). MustImport(&Version, batchv1beta1.CronJobSpec{}, cronJobOverride{}). + MustImport(&Version, batchv1beta1.JobTemplateSpec{}). MustImportAndCustomize(&Version, batchv1beta1.CronJob{}, func(schema *types.Schema) { schema.BaseType = "workload" }, projectOverride{})