Newer
Older
package pod
import (
"github.com/ankitrgadiya/operatorlib/pkg/container"
"github.com/ankitrgadiya/operatorlib/pkg/meta"
"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
)
// GenerateConfigMap generates ConfigMap object as per the `Conf` struct passed
func Generate(c Mutate) (pod corev1.Pod, err error) {
// var con corev1.Container
var containers []corev1.Container
// var mutateContainers []container.Mutate
var volumes []corev1.Volume
var securityContext *corev1.PodSecurityContext
var restartPolicy corev1.RestartPolicy
if err != nil {
return pod, errors.Wrap(err, "failed to generate objectmeta")
}
mutateContainers := c.Containers()
for _, con := range mutateContainers {
cont, err := container.Generate(con)
if err != nil {
return pod, errors.Wrap(err, "failed to generate pod template spec")
}
}
volumes, err = c.Volumes()
if err != nil {
return pod, errors.Wrap(err, "failed to generate volumes for pod template spec")
}
securityContext, err = c.SecurityContext()
if err != nil {
return pod, errors.Wrap(err, "failed to generate securityContext pod template spec")
}
restartPolicy, err = c.RestartPolicy()
if err != nil {
return pod, errors.Wrap(err, "failed to generate securityContext pod template spec")
}
// pod = c.GetObject()
pod.ObjectMeta = *om
pod.Spec = corev1.PodSpec{
Containers: containers,
Volumes: volumes,
SecurityContext: securityContext,
RestartPolicy: restartPolicy,
}
return pod, err
}