basho-labs / puppet-riak

A puppet module to deploy Riak clusters
Apache License 2.0
33 stars 37 forks source link

Determine best go-forward puppet-riak module #48

Closed mbbroberg closed 9 years ago

mbbroberg commented 9 years ago

As you can see from the moving around of repos and updates, I'm making a big effort to get our Puppet strategy to parity with other tools. My honest question for those who care most about this is straightforward: which of the following is the best repo to start from?

@basho-labs/puppet-committers - I'll need your input here!

Let's all discuss this with a positive view on what we need to accomplish to make the most useful code for our communities. If you'd like more guidance, the goals are all outlined here: https://github.com/basho-labs/the-riak-community/blob/master/config-mgmt-strategy.md

danieldreier commented 9 years ago

Quick comparison

basho-labs/puppet-riak

Cornellio/puppet-riak

jbussdieker/puppet-riak

I haven't done an incredibly in-depth review, but it looks to me like basho-labs/puppet-riak is the most mature of these modules. I think there are elements of the others to be used as inspiration. I don't intend this as being overly critical of the other modules; they were probably written for specific use cases, and this is looking to fill a very general use case.

The major blind spot is that I haven't evaluated what versions of riak these modules support. The basho-labs/puppet-riak module looks most flexible for that because it doesn't hardcode the config settings.

mbbroberg commented 9 years ago

To keep this thread up-to-date and confirm: we're only concerned with coverage of 2.X going forward @danieldreier. Thank you for this review!!

Cornellio commented 9 years ago

Thank you for the input. For what it's worth, I plan on making improvements to what I've done so far.

danieldreier commented 9 years ago

The next major steps I'd see for this module are:

Reduce barriers to contribution

Adding comprehensive test coverage is critical to facilitating community contribution, because it makes it possible for a less-experienced participant to refactor existing code and have confidence that the changes won't break existing usage.

Cleanup

Major improvements

I'm not trying to tell other people what to do, just to create some momentum and a common sense of direction. We can break them out as other issues but I figured it'd be easier to have a discussion with them listed here. Totally open to changing the list.

danieldreier commented 9 years ago

@Cornellio looking back, I feel like I didn't phrase my evaluation of your module in a very friendly way. I apologize for my harsh language; I would have felt bad if somebody had said the same about a module I maintain.

Can you help me understand where the specific optimizations in riak::baseconfig in your module came from? I do like the idea of optionally doing those sorts of optimizations, but I don't want to cargo-cult them into this module without some understanding or docs we can link people to for more understanding.

haf commented 9 years ago

For historical reference, this module was written before automatic parameter resolution worked, when the anchor pattern was 'the way to go' and before Basho had their own repositories for packages. I also don't like to depend on a 'glue' module like wget since wget isn't installed by default on Fedora/RHEL systems and you have to explicitly install it. Curl is better in that regard.

The anchor pattern is needed for all Puppet 3 code, too, so if you clean that up, it won't support (most of) Puppet 3.

Still, it's great that bugs get fixed in puppet and we now don't have these problems anymore. =)

As for the extra module, I have already extracted it https://github.com/haf/puppet-httpfile

mbbroberg commented 9 years ago

I'd like to +1 to @Cornellio -- your work is fantastic. Please note that I brought it up here because of your hard work and I see value in it.

You are more than welcome to continue to edit that code. I also want to invite you to contribute to this repo as it improves thanks to @danieldreier & @haf's teamwork! :+1:

mbbroberg commented 9 years ago

@danieldreier & @haf - I believe we have an idea of what to go forward with. This issue is resolved for me. I love your recommendations too Daniel, so I'll start looking into mapping this stuff out.

Cornellio commented 9 years ago

@danieldreier not a problem, that's how it goes sometimes.

For the optimizations in baseconfig, I got those from the Basho docs on Linux tuning. I wanted this for my own use but can certainly see how it should be optional or broken into a separate module.

I'll look for places to contribute to this repo.

mbbroberg commented 9 years ago

@danieldreier, I'd like to break these out into separate items in Backlog. I started tags based on scrum where we can flesh out work in Backlog, get it to Ready with clear stories (more on Ready definition) and then move it to Done when PR is ready for discussion.

If everyone here would prefer a different strategy, no prob - let's discuss :smile:

danieldreier commented 9 years ago

+1

danieldreier commented 9 years ago

@haf I believe that the switch from anchor to contain happened in puppet 3.4.0.

I totally understand the history here. The reason I'm being relatively aggressive about redoing a lot of this code is that when I helped update puppet-puppet we had a bunch of code dating back as far as the 0.25 puppet versions, and support for a bunch of deprecated features that it turned out nobody was using. Keeping backwards compatibility that it turned out nobody needed took months of work, which was really unfortunate. I'm know how significantly puppet has changed since the 2.7 series, and that the prevailing norms around usage have also shifted significantly. I'm just trying to avoid grandfathering in old approaches unnecessarily, and don't intend it as a judgement on the original code or the work that went into it.

mbbroberg commented 9 years ago

@danieldreier +1 on moving forward aggressively if it helps get us from where we are to something updated with best practices. @haf - glad to talk more on here or offline at mbrender [at] basho!