Canvas, 29 28 26 bytes
7÷U+{ <ibgyor@¹×/n}⇵K2*∔─↶ Explanation:
7÷U+ ceil(input/7) + input { } for n in 1..the above <ibgyor@ in the string " <ibgyor", pick the nth character ¹× repeat n times / create a diagonal of that n and overlap the top 2 stack items (the 1st time around this does nothing, leaving an item for the next iterations) ⇵ reverse the result vertically K take off the last line (e.g. " <ibgyor <ib") 2* repeat that vertically twice ∔ and append that back to the diagonals ─ palindromize vertically ↶ and rotate 90° anti-clockwise. This rotates "<" to "v" 25 24 bytes24 22 bytes after fixing that mold should cycle if the wanted length is bigger than the inputs length and fixing / for like the 10th time