We've all encountered this scenario: PostgreSQL recently released version 12.1 and we need to upgrade to protect ourselves from potential data corruption. Or perhaps it isn't PostgreSQL that requires an upgrade, but the system kernel or another critical element of the operating system.
Regardless of the reason, we must accommodate the procedure somehow. Upgrading software while remaining online is the ultimate aspiration of maintaining a high-availability stack. This recipe will demonstrate how we can reach that goal by leveraging Patroni's functionality.