Preheat the oven to 360 F. Melt the butter in a saucepan and then add the flour for 2-3 minutes, stirring to get a roux. Pour in the milk, constantly stirring the flour with a spatula until you get a smooth white sauce without lumps. You may need more milk to get the desired consistency. Add salt, spices and mix.
Place 1 1/2 cups cauliflower florets in a 9x13 inch baking dish. Peel the boiled eggs, chop them and place them on top.
Top with half the parmesan, half the cheddar and most of the parsley. You can reserve some of the parsley for serving.
Add the remaining cauliflower, the remaining cheese and pour the white sauce over the top. Place in the oven and bake for 25-30 until the top is lightly browned and the cauliflower is tender.