The scenario: The BBEG is preparing to unleash a sealed monster and devastate the civilized world. The seal has already been weakened by prior actions. The PCs engage the BBEG as the campaign finale. However, even if the BBEG is defeated the seal will continue to (slowly) deteriorate unless one of the PCs sacrifices themselves to fuel a ritual to re-seal the monster. The players are aware of this requirement before heading to the final battle. In theory this would be a cool narrative moment, but something is bothering me about the sacrifice requirement.
To be clear, the sacrifice would be 100% voluntary, but would be required to achieve the best ending. The campaign hasn't started yet, so nothing has been set in stone. I also think I have a pretty good feel for the players and at least one should be willing to be sacrificed.
My question is: How should I handle this setup to ensure that the players have agency and don't feel like I'm trying to force a character death just because I can as the DM?