HA in a staged release process

I am trying to use HA in a docker swarm and have been refining a release process to do so. The process currently consists of four stages (Two Dev, Two Prod) on two distinct clusters (Dev and Prod).

Ideally, I would make no changes to the persistent storage for any of my services (including HA and Mosquitto which are both in my HA stack) once I hit anything Prod. I would like to be able to copy and paste, perhaps with known exceptions (like changing URLs and persistent storage paths from a staging URL to Prod). I set up Git to pull select files (mostly yaml and yml I think with maybe a config) over my whole persistent storage. I was low key hoping this would do the trick. It has in most of my services, but not HA .

Is there a way to manage a HA config like this? I feel like this is kinda the point of Docker and I totally should be able to, but I do not know that I have been successful yet. Anything that absolutely should not be brought over from environment to environment because it will break stuff? Maybe session data or unique encryption keys or DB gremlins that don’t like being moved?

TiA for any thought and guidance.