Ekambi initially joined the seven-time French champions on loan in January until the end of the season.
The deal that brought Ekambi permanently to France is worth €11.5 million to which a maximum of €4 million in incentives can be added, the club said.
Additionally, there is a sell-on clause of 15 percent on a possible future transfer which will rise to 50 percent if the transfer takes place before September 15, 2020.
The club confirmed that Ekambi is eligible to play the Coupe de la Ligue final against Paris-Saint Germain and the return leg of the UEFA Champions League Round of 16 against Juventus in August.
The 27-year-old, who has won 22 caps for Cameroon, had scored two goals and provided one assist in eight Ligue 1 matches.
Lyon finished a disappointing seventh in the league, missing out on Champions League football next season, but said the signing of Ekambi signaled its intent to return stronger.
“The permanent arrival of Karl Toko Ekambi confirms the ambition of Olympique Lyonnais to give itself the means to be at the highest level possible next season,” the club said in a statement on its website.