Newer
Older
package job
import (
"github.com/ankitrgadiya/operatorlib/pkg/meta"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
pod "github.com/ankitrgadiya/operatorlib/pkg/pod"
"github.com/pkg/errors"
batchv1 "k8s.io/api/batch/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func Generate(m Mutate) (out batchv1.Job, err error) {
om, err := meta.MutateObjectMeta(m)
if err != nil {
return out, errors.Wrap(err, "failed to generate objectmeta")
}
p, err := pod.Generate(m)
if err != nil {
return out, errors.Wrap(err, "failed to generate pod template spec")
}
manualSelector, err := m.GenManualSelector()
if err != nil {
return out, errors.Wrap(err, "failed to generate volumes for pod template spec")
}
out.ObjectMeta = *om
out.Spec = batchv1.JobSpec{
// Replicas: c.Size,
// Parallelism: c.Strategy,
// Completions: metav1.SetAsLabelSelector(om.Labels),
// ActiveDeadlineSeconds:
// BackoffLimit:
// TTLSecondsAfterFinished:
// Selector: metav1.SetAsLabelSelector(om.Labels),
Template: corev1.PodTemplateSpec{
ObjectMeta: *om,
Spec: p.Spec,
},
ManualSelector: manualSelector,
}
out.Spec.Selector = metav1.SetAsLabelSelector(out.ObjectMeta.Labels)