func createOrUpdateObject[T any]()

in internal/task/run.go [81:98]


func createOrUpdateObject[T any](
	ctx context.Context,
	client createOrUpdateClient[T],
	obj T,
) (T, error) {
	objCreated, err := client.Create(ctx, obj, k8smetav1.CreateOptions{})
	switch {
	case err == nil:
		return objCreated, nil
	case k8serrors.IsAlreadyExists(err):
	// update
	default:
		var empty T
		return empty, err
	}

	return client.Update(ctx, obj, k8smetav1.UpdateOptions{})
}