You might think I am kidding, but this is real:
Tape it on! Do not put holes in your roof.
Do you have flexible panels or aluminum frame ones?
For the thin flexible ones you can use 4 inch EternaBond tape and simply tape them down, half on the panel and half on the roof. Clean roof so tape makes a good bond.
This will hold. You can remove the tape, and is easier by heating it up, but it still has a good gooey grip.
Be careful with the tape and inside corners, put plenty of slack into the corner so tape does not pull up in the corner.
For a frame use VHB tape.Very High Bond tape. I use an aluminum bracket, L-bracket. Tape this to the roof and bolt the panel to the bracket. My current bracket is about 5 inches at each corner (5 inch by 1 inch taped down).
It might be easier to bolt first, then tape everything down together so you do not mess up the placement of the brackets. The tape is not meant to be removed.
I have driven thousands and thousands of miles with each method with no issues, and no tape losing hold