Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Start sharing reusable recipes #264

Closed
vincent-zurczak opened this issue Mar 13, 2015 · 5 comments
Closed

Start sharing reusable recipes #264

vincent-zurczak opened this issue Mar 13, 2015 · 5 comments
Milestone

Comments

@vincent-zurczak
Copy link
Member

We must provide some reusable recipes.

@vincent-zurczak vincent-zurczak added this to the 0.3 milestone Mar 13, 2015
@vincent-zurczak
Copy link
Member Author

I have created a new organization, called roboconf-recipes, to gather reusable recipes. It is better to put them apart from the platform and so on.

I created a parent with common configuration for the Roboconf Maven plugin.
See https://github.com/roboconf-recipes/recipes-parent

I also copied one of Yousri's recipe. I updated it a little bit.
See https://github.com/roboconf-recipes/puppet-apache-mod-jk-last Feel free to comment it. Among the little things to check...

  • The module name. Is it good?
  • The readme's structure. Does it hold enough information?
  • What do you think about the reuse mechanism described in the readme? Will it be enough to prevent conflicts? I think so, but what about you?

Notice that the recipe does not use the Apache port for the moment.
I think that from the moment a component exports a variable, the recipe should handle the case where an instance changes the variable's value. Example: the components indicates the port value is 80, but an instance could specify it is 81. In this case, the recipe should update Apache's configuration to use the value given by the instance.

@rpignolet
Copy link

  • Why "last" in the module name ?
  • For me the readme is good.
  • For me the reuse mechanism is well described exception for the point 3:

Add the loadbalance_able facet to the components that should be plugged to Apache

maybe

Add the loadbalance_able facet to the components that should be load balanced by Apache

Because the word "plugged" is too generic for me. The component will not be an Apache plugin 😄 .

And the readme needs some hyperlink like for Puppet, Apache and Ubuntu.

@vincent-zurczak
Copy link
Member Author

In the specification, we wrote it would work as follows:

  • A repository per recipe.
  • A central repository to aggregate all the others.

I wonder if the central repository is really useful in fact.
Git modules are not a well-suited option. There are other solutions like repo (and many others) but why do we need such a repository? Classification and documentation can be placed on the web site. And we can write a custom project that will use Github API to introspect our recipes repositories and extract the right information. In this case, we only needs to add to our readme some information like keywords to deduce recipe categories.

Besides, released recipes should be located in Maven repositories.
Git repositories are only useful to find sources and use snapshot versions with Maven hacks (most likely based on the Maven ANT plugin).

What do you think about it?
Do we really need a central repository to aggregate links to all the recipes? Wouldn't the web site be more suitable?

@vincent-zurczak
Copy link
Member Author

Why "last" in the module name ?

Because it installs the last Apache version, not a specific one.
And OK to replace plugged by load balanced. 😉

@vincent-zurczak
Copy link
Member Author

OK. I updated the Apache recipe.
Application descriptors are now optional in recipes, provided they contain only 1 graph file.
I also removed the namespace property from application descriptors.

Eventually, I wrote an example on the wiki to discuss a LAMP use case.
See https://github.com/roboconf/roboconf-platform/wiki/Reusable-Recipes-:-LAMP-example
Feel free to coment it here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants