edelight / chef-mongodb

MongoDB Chef cookbook
https://community.opscode.com/cookbooks/mongodb
Apache License 2.0
362 stars 3 forks source link

Search in mongos returns FQDN's. #295

Open dgarstang opened 10 years ago

dgarstang commented 10 years ago

I guess this is more of a feature request.

The search performed in the mongos recipe returns FQDN's, which means they have to exist in DNS first. Returning IP's (why would you ever want to return FQDN's?) would be better, faster and remove the DNS dependancy.

At least provide an option to choose...

jspiewak commented 10 years ago

The search for the config nodes? If you use IP addresses and one of the servers dies, or needs to be rebuilt, you need to take complete downtime to change it. If you use a CNAME, you can change the server behind it.

That said, you should be able to set node['mongodb']['config']['configdb'] to whatever you like. See https://github.com/edelight/chef-mongodb/blob/master/definitions/mongodb.rb#L42

josephholsten commented 10 years ago

supporting arbitrarily discovered servers is a goal of #221. I'd like us to support service discovery through node attributes, arbitrary chef queries (with hostname set by an arbitrary node attribute), or potentially any other system.

It's not really worth doing a makeshift implementation because the mechanism for selecting an ipaddress cannot be naive, different cases would require node.ipaddress, node.cloud.public_ipv4, node.cloud.private_ipv6 &c.

But seriously, any significant installation is going to need well run DNS to work effectively for a great many tasks. IP addresses should only be used for situations where DNS failure would make the problem worse. This could be the case for many syslog, snmp or statsd installations.

And don't get me started about IPv4.

jspiewak commented 10 years ago

You trailed off a bit at the end there.

josephholsten commented 10 years ago

Sorry, my laptop battery died. I updated the above.

jamesonjlee commented 10 years ago

I think this request can be satisfied by directly allow the user to override the replSet list themselves.

goncalopereira commented 10 years ago

I have a similar problem recently with a DNS failure which meant the replicaset broke as there is no way to override the replicaset list as seen here: https://github.com/edelight/chef-mongodb/blob/bd92ed176af2efdaefb1016b732a239d3e199be6/libraries/mongodb.rb

your fix allows to use IP Addresses with MongoS but not regular ReplicaSets - any suggestions?