Newer
Older
package deployment
import (
"fmt"
"github.com/ankitrgadiya/operatorlib/pkg/meta"
"github.com/ankitrgadiya/operatorlib/pkg/pod"
"github.com/imdario/mergo"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"github.com/pkg/errors"
appsv1 "k8s.io/api/apps/v1"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func Generate(m Mutate) (out appsv1.Deployment, err error) {
om, err := meta.MutateObjectMeta(m)
if err != nil {
return out, errors.Wrap(err, "failed to generate objectmeta")
}
child, err := pod.Generate(m)
if err != nil {
return out, errors.Wrap(err, "failed to generate job template spec")
}
out.ObjectMeta = *om
out.Spec = appsv1.DeploymentSpec{
// Replicas: c.Size,
// Strategy: c.Strategy,
Selector: metav1.SetAsLabelSelector(om.Labels),
Template: corev1.PodTemplateSpec{
ObjectMeta: *om,
Spec: child.Spec,
},
}
func (c Conf) Mutate() controllerutil.MutateFn {
return func() error {
out, err := Generate(c)
fmt.Println(out)
if err != nil {
return err
}
func (c Conf) MakeObject() *appsv1.Deployment {
obj := &appsv1.Deployment{
ObjectMeta: metav1.ObjectMeta{
Name: c.ObjectName(),
Namespace: c.ObjectNamespace(),