Details
Description
I realize it may sound like an odd case, but it's actually fairly common in an automated environment to setup nodes independent of one another and then cluster them together. At the moment, we force any single-node to have the data service enabled and therefore can't define a node to only have query or only have index.
Here are the steps to reproduce:
1 - Install Couchbase Server
2 - Using the CLI, provision this node to have the "index" service:
/opt/couchbase/bin/couchbase-cli cluster-init -c localhost:8091 -u Administrator -p password --cluster-init-username=Administrator --cluster-init-password=password --service=index --cluster-ramsize=12054
-See that now the node actually has the "data" and "index" services enabled.
3 - Add this node to another cluster as only index:
/opt/couchbase/bin/couchbase-cli server-add --server-add=ec2-54-177-22-145.us-west-1.compute.amazonaws.com --server-add-username=Administrator --server-add-password=password --services=index -p password -u Administrator -c ec2-54-215-72-50.us-west-1.compute.amazonaws.com
-See that it still has the data service enabled even though we only wanted the index service
We could fix this in two ways:
1 - Don't force a single node to have the data service enabled when it is being setup from the CLI (only enforce it from the UI)
2 - Allow the services to be "reset" when adding a node to another cluster
I'm generally partial to #1 above since it allows more flexibility when automating setup of nodes. With #2, an administrator would still have to ensure that there is a "first node" that gets setup which somewhat breaks our notion of shared-nothing.
(Obviously not a critical blocker issue, but it is blocking my ability to quickly setup demo systems)