Disable master shard allocation on particular nodes

Are there any way to disable master shard allocation on particular nodes?
I've found inserts into elasticsearch run much faster if master shard is on the same datacenter. And I have datacenters with read-only elastic. So I need a way to disable some nodes to have master shard.

I am having a similar issue, when using cluster awareness I want to be able to control which zone has all the primary shards. Can't seem to find a way to do that though.

We don't recommend cross-DC cluster for reasons such as this (the slow insert issue that is).

Other than doing manual allocation, there is no way to do this.

In this case I am interested in having both zones in the same dc. one is a pool of servers that can be scaled up/down on demand with no downtime. Right now if I loose too many shards at the same time, the cluster starts timing out while new primary shards are being elected. It will work itself out eventually but I'd rather avoid the downtime.