package kubeapi

import (
	"context"

	apierrors "k8s.io/apimachinery/pkg/api/errors"
	"sigs.k8s.io/controller-runtime/pkg/client"
)

// CreateIgnoreExists create the obj and ignore the already exists error.
func CreateIgnoreExists(ctx context.Context, cli client.Client, obj client.Object, opts ...client.CreateOption) error {
	if err := cli.Create(ctx, obj, opts...); err != nil {
		if !apierrors.IsAlreadyExists(err) {
			return err
		}
	}

	return nil
}
