Newer
Older
package service
import (
"github.com/ankitrgadiya/operatorlib/pkg/meta"
"github.com/imdario/mergo"
"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
)
func Generate(m Mutate) (out corev1.Service, err error) {
om, err := meta.MutateObjectMeta(m)
ports, err := m.GenServicePorts()
if err != nil {
return out, errors.Wrap(err, "failed to generate service ports spec")
}
selectors, err := m.GenServiceSelector()
if err != nil {
return out, errors.Wrap(err, "failed to generate service selectors spec")
}
t, err := m.GenServiceType()
if err != nil {
return out, errors.Wrap(err, "failed to generate service type spec")
}
out.ObjectMeta = *om
out.Spec = corev1.ServiceSpec{
Ports: ports,
Selector: selectors,
Type: t,
}
return out, err
}
func (c Conf) Mutate() controllerutil.MutateFn {
return func() error {
out, err := Generate(c)
if err != nil {
return err