Due to the differences in the corosync/pacemaker stack I would recommend a fresh install.
Theoretically it could work with an upgrade, but as Clusters host critical applications - you never want to deal with unexpected migration side-effects.

I was thinking about a rolling upgrade - but I'm not sure if the new stack can connect to the old one. Still, you can test that on a test cluster and give feedback.
Maybe your app is custom and will work without any modification on both SLES 12 & SLES 15. In such case that is also possible (if the old corosync can talk to the new one) and will reduce downtime (just a resource/group failover).