Newer
Older
package configmap
import (
"github.com/ankitrgadiya/operatorlib/pkg/meta"
"sigs.k8s.io/controller-runtime/pkg/controller/controllerutil"
"github.com/pkg/errors"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
func Generate(m Mutate) (out corev1.ConfigMap, err error) {
om, err := meta.MutateObjectMeta(m)
if err != nil {
return out, errors.Wrap(err, "failed to generate objectmeta")
}
data, err := m.GenData()
if err != nil {
return out, errors.Wrap(err, "failed to generate configmap data")
}
binData, err := m.GenBinaryData()
if err != nil {
return out, errors.Wrap(err, "failed to generate configmap binary data")
}
out.ObjectMeta = *om
out.Data = data
out.BinaryData = binData
}
func (c Conf) Mutate() controllerutil.MutateFn {
return func() error {
out, err := Generate(c)
if err != nil {
return err
}
// mergo.Merge(c.Obj, out)
c.Obj = &out