Makes about 72 puffs.
for cheese filling
Make pâte à chou:
Preheat oven to 400°F. and lightly grease 2 large baking sheets.
In a heavy saucepan bring water, butter, and salt to a boil over high heat and reduce heat to moderate. Add flour all at once and beat with a wooden spoon until mixture pulls away from side of pan. Remove pan from heat and add eggs, 1 at a time, beating well after each addition. Continue beating until batter is very smooth and falls softly from spoon.
Drop pâte à chou by rounded teaspoons 1 1/2 inches apart onto baking sheets and bake in upper and lower thirds of oven, switching position of sheets halfway through baking, 25 minutes, or until puffed, golden, and crisp. Transfer puffs to rack and cool.
Make filling while puffs are baking:
In a small heavy saucepan cook onion slice in butter over moderately low heat,stirring, 3 minutes and discard onion. Stir in flour and cook roux, stirring, 3 minutes. Add milk in a steam, stirring until smooth, and simmer, stirring, until very thick, about 2 minutes. Add Gruyère, stirring until melted. Stir in salt and pepper to taste and cool filling.
With a small sharp knife poke a hole in top of each puff and gently pull apart just enough to fill with a rounded 1/2 teaspoon of filling, reclosing puff. Arrange filled puffs on baking sheets. Chill puffs at least 1 hour and up to 4.
Preheat oven to 350°F.
Bake chilled puffs in middle of oven 10 minutes (do not bake longer because filling may seep out of puffs) and serve immediately.