Cook rigatoni pasta in a large pot of boiling salted water for 9-11 minutes until al dente, then drain and set aside.
Heat olive oil in a large 12-inch skillet over medium-high heat. Add Italian sausage, onion, garlic, Italian seasoning, salt, black pepper, and red pepper flakes.
Cook the sausage mixture for 9-11 minutes, until the sausage is golden brown and the onions and spices are soft and fragrant.
Transfer cooked sausage to a paper towel-lined plate to drain excess grease, discard the paper towel, and return sausage to the skillet.
Reduce heat to medium-low and add butter. Once melted, whisk in flour and cook for 1 minute until light golden brown.
Slowly whisk in chicken broth until smooth, then add heavy cream and sun-dried tomatoes. Bring to a low boil, reduce heat, and simmer for 5-7 minutes until thickened.
Stir in parmesan cheese until fully incorporated, then add baby spinach and cook until wilted.
Add sausage mixture and drained pasta to the skillet, stirring to combine and coat the pasta with sauce.
Remove from heat and garnish with chopped fresh parsley if desired before serving.