Erling Haaland has signed a new nine-and-a-half-year contract at the Etihad.