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{})
}