In order to support multi-clusters setup, user programs need to have something to identify which cluster it is running, in order to determine what configurations to use. The CDAP platform can further provide runtime arguments scoped resolution based on the cluster id as well.
Adds cluster.name property that identifies a cluster, this property can be set in cdap-site.xml
"The CDAP platform can further provide runtime arguments scoped resolution based on the cluster id as well."
How is that different than preferences that are set at the instance level?
This is for the replication case. Preferences are replicated, meaning two clusters have exactly the same preferences. With cluster id, one can set it to different value in `cdap-site.xml` for different cluster, and have keys like `cluster.cluster1.kafka.brokers` and `cluster.cluster2.kafka.brokers` in preferences. At program runtime, the program just need to get `kafka.brokers` and it will be resolved to either `cluster.cluster1.kafka.brokers` or `cluster.cluster2.kafka.brokers` based on which cluster that the program is currently running.