The ending of Alien: Covenant means that David has taken Walter's place on the ship, and the sleeping colonists are now the raw material for his experiments. Anyone who has not seen the film should stop here, because the final scenes are described in full.
The Covenant heads back toward its original destination with David posing as Walter. Daniels is put back in stasis, and she does not know that the android watching over the ship is the one who attacked her. David reports that only Daniels and Tennessee survived and secretly carries alien embryos aboard. The ending sets up the colonists as future hosts for his creatures, with no hint of a rescue.
Why does the swap work? Fassbender plays both androids, and Walter is described as an identical but more obedient model, so nothing in appearance separates them. What separates them is behavior, and Daniels reads it correctly only at the last moment. In my opinion that is the most efficient piece of storytelling in the film, because it turns the double casting into the central trick.
It could be argued that the final scene is also the franchise's grimmest, since the earlier films gave Ripley or Rain a way to fight back. Here the ship's systems believe the false report, and the one person who knows the truth is unconscious. That being said, the film does not show what David does next, so any claim about the colonists' fate is a reading and not something on screen. If you want to see how the story connects forward, the Alien timeline puts Covenant second in chronological order, ahead of Alien (1979) and Alien: Romulus. The film has no post credit scene, as TheWrap confirmed, so the story ends with David's report.