Blueprint supports SLAVE node expansion through "add host" API. We could provide blueprint and hostgroup name to add host API and the API takes care of replicating hostgroup components (from corresponding Blueprint) in the new set of hosts. In scenario where if only DATANODE" needs to be expanded, it is not possible unless the BP has a hostgroup that has only "DATANODE" component.
Thanks Ali Bajwa. My question is how one could possibly mutate blueprint to add hostgroups dynamically instead of playiing with only fixed set created duirng cluster create step.
@Vijay Srinivasaraghavan, Once a Blueprint is posted, the document is immutable, so there is no way currently to add a host group to a Blueprint.
That being said, I believe you can obtain the same effect by trying the following:
While this approach doesn't allow you to add host groups dynamically, it should allow you to have more fine-grained control over the types of components that are deployed during a scale-out operation.
@rnettleton, I was following the same steps that you have mentioned but if we go with this approach, we need to come up with all possible hostgroup (component maping) combinations ahead of time. I was trying to find a way to overcome by adding new hostgroup to existing BP (not modifying any of the existing BP structure). May be we shall consider this as a feature request?