Bootstrap templates


#1

We’re happy with the success of moving the knife cloud providers into
separate projects, particularly with the increased release cycle for
the more active ones. We have found ourselves on a similar decision
path for bootstrap templates. There is a desire to add more operating
system bootstrap templates [1] to the project, and with that brings
the possibility of managing many templates that are difficult for us
to test regularly. How should we manage the matrix of multiple
operating systems, releases and installation methods?

Our one idea so far is to fork most or all of the bootstrap templates
into a knife-bootstrap project. There’s a little reluctance of the
overhead of another project, but it seems like it would be a net win.
Thoughts?


Bryan McLellan | opscode | senior systems administrator
© 206.607.7108 | (t) @btmspox | (b) http://blog.loftninjas.org

[1] http://tickets.opscode.com/browse/CHEF-2403


#2

I really like this idea. It would also encourage people to vet their
bootstrap recipes, and understand what is actually occurring.

James

On Thu, Aug 4, 2011 at 1:40 PM, Bryan McLellan btm@opscode.com wrote:

We’re happy with the success of moving the knife cloud providers into
separate projects, particularly with the increased release cycle for
the more active ones. We have found ourselves on a similar decision
path for bootstrap templates. There is a desire to add more operating
system bootstrap templates [1] to the project, and with that brings
the possibility of managing many templates that are difficult for us
to test regularly. How should we manage the matrix of multiple
operating systems, releases and installation methods?

Our one idea so far is to fork most or all of the bootstrap templates
into a knife-bootstrap project. There’s a little reluctance of the
overhead of another project, but it seems like it would be a net win.
Thoughts?


Bryan McLellan | opscode | senior systems administrator
© 206.607.7108 | (t) @btmspox | (b) http://blog.loftninjas.org

[1] http://tickets.opscode.com/browse/CHEF-2403


#3

On Thu, Aug 4, 2011 at 10:40 PM, Bryan McLellan btm@opscode.com wrote:

Our one idea so far is to fork most or all of the bootstrap templates
into a knife-bootstrap project. There’s a little reluctance of the
overhead of another project, but it seems like it would be a net win.
Thoughts?

+1


Bryan McLellan | opscode | senior systems administrator
© 206.607.7108 | (t) @btmspox | (b) http://blog.loftninjas.org

[1] http://tickets.opscode.com/browse/CHEF-2403


#4

Bryan McLellan btm@opscode.com writes:

Hi,

We’re happy with the success of moving the knife cloud providers into
separate projects, particularly with the increased release cycle for
the more active ones. We have found ourselves on a similar decision
path for bootstrap templates. There is a desire to add more operating
system bootstrap templates [1] to the project, and with that brings
the possibility of managing many templates that are difficult for us
to test regularly. How should we manage the matrix of multiple
operating systems, releases and installation methods?

Our one idea so far is to fork most or all of the bootstrap templates
into a knife-bootstrap project. There’s a little reluctance of the
overhead of another project, but it seems like it would be a net win.
Thoughts?

just some offtopic thoughts :slight_smile:
I dislike the bootstrap templates, they are awful shell scripts and
not idempotent at all, that makes me think they’re not compatible with
chef’s concepts. :wink:

I’d rather see chroot and remote(ssh) support for resources instead.
That would enable the use of resources/definitions/recipes to
bootstrap nodes and chef clients.

so to answer the initial question: yes create a new project for it !
get it out of chef and let’s make chef able to install himself with
its resources and providers ! :wink:


Laurent


#5

On Sun, Aug 7, 2011 at 7:17 AM, laurent+opscode@u-picardie.fr wrote:

just some offtopic thoughts :slight_smile:
I dislike the bootstrap templates, they are awful shell scripts and
not idempotent at all, that makes me think they’re not compatible with
chef’s concepts. :wink:

Well, if Chef has a single over-arching concept, it’s that Chef should
never be in the way of you getting your job done. In this case,
getting Chef installed on systems that don’t have Chef (or ruby, or
any number of other dependencies) was pretty paramount. They may be
"awful shell scripts", but they surely get it done.

That said, the work we’re doing on getting full-stack installers will
certainly make it more possible to handle the installation in an
idempotent way - the amount of variation in the bootstrap scripts
(assuming you are willing to use the full-stack installer) will be
substantially less.

I’d rather see chroot and remote(ssh) support for resources instead.
That would enable the use of resources/definitions/recipes to
bootstrap nodes and chef clients.

That would be interesting, but a very tall order. You could experiment
with this as a library, and have a certain number of providers that
are available for remote functionality. I think some of the basics are
not that hard, but the devil is in the details.

Best,
Adam


Opscode, Inc.
Adam Jacob, Chief Product Officer
T: (206) 619-7151 E: adam@opscode.com


#6

On Thu, Aug 4, 2011 at 1:40 PM, Bryan McLellan btm@opscode.com wrote:

Our one idea so far is to fork most or all of the bootstrap templates
into a knife-bootstrap project. There’s a little reluctance of the
overhead of another project, but it seems like it would be a net win.

CHEF-2193 [1] added support for this, so I’ve created CHEF-2524 [2]
for the work of configuring the bootstrap project.

We will keep the existing templates in core Chef for now, but all new
templates will be in the new project.

On the next minor release (0.11) we will look at moving the existing
templates to the new projects like we need with the knife cloud
plugins for 0.10.

Note that there is functionality for reading templates from other
directories thanks to some work by Ian Meyer in CHEF-1393 [3], so we
still need to decide where we draw the line where we won’t include new
bootstrap templates or variations into this project and instead expect
users to facilitate each other, probably through an upcoming feature
on the community site.

[1] http://tickets.opscode.com/browse/CHEF-2193
[2] http://tickets.opscode.com/browse/CHEF-2524
[3] http://tickets.opscode.com/browse/CHEF-1393


#7

This is so great, thanks a lot!

I was beginning to worry that every time we pushed out new RPMs we’d have to
wait for the following Chef release to get the bootstrap updated, which
would keep it a version behind.

James

On Mon, Aug 8, 2011 at 12:05 PM, Bryan McLellan btm@loftninjas.org wrote:

On Thu, Aug 4, 2011 at 1:40 PM, Bryan McLellan btm@opscode.com wrote:

Our one idea so far is to fork most or all of the bootstrap templates
into a knife-bootstrap project. There’s a little reluctance of the
overhead of another project, but it seems like it would be a net win.

CHEF-2193 [1] added support for this, so I’ve created CHEF-2524 [2]
for the work of configuring the bootstrap project.

We will keep the existing templates in core Chef for now, but all new
templates will be in the new project.

On the next minor release (0.11) we will look at moving the existing
templates to the new projects like we need with the knife cloud
plugins for 0.10.

Note that there is functionality for reading templates from other
directories thanks to some work by Ian Meyer in CHEF-1393 [3], so we
still need to decide where we draw the line where we won’t include new
bootstrap templates or variations into this project and instead expect
users to facilitate each other, probably through an upcoming feature
on the community site.

[1] http://tickets.opscode.com/browse/CHEF-2193
[2] http://tickets.opscode.com/browse/CHEF-2524
[3] http://tickets.opscode.com/browse/CHEF-1393


#8

A dedicated repo for knife bootstrap templates would be great. It
would be very helpful to have one place to go to look for the
bootstrap for your OS of choice.

-J

On Thu, Aug 4, 2011 at 2:40 PM, Bryan McLellan btm@opscode.com wrote:

We’re happy with the success of moving the knife cloud providers into
separate projects, particularly with the increased release cycle for
the more active ones. We have found ourselves on a similar decision
path for bootstrap templates. There is a desire to add more operating
system bootstrap templates [1] to the project, and with that brings
the possibility of managing many templates that are difficult for us
to test regularly. How should we manage the matrix of multiple
operating systems, releases and installation methods?

Our one idea so far is to fork most or all of the bootstrap templates
into a knife-bootstrap project. There’s a little reluctance of the
overhead of another project, but it seems like it would be a net win.
Thoughts?


Bryan McLellan | opscode | senior systems administrator
© 206.607.7108 | (t) @btmspox | (b) http://blog.loftninjas.org

[1] http://tickets.opscode.com/browse/CHEF-2403


#9

On Thu, Aug 4, 2011 at 2:04 PM, Jason J. W. Williams
jasonjwwilliams@gmail.com wrote:

A dedicated repo for knife bootstrap templates would be great. It
would be very helpful to have one place to go to look for the
bootstrap for your OS of choice.

This could also be a feature that we add to
http://community.opscode.com where you could share bootstrap templates
as well as cookbooks.

When we get a better search and recipe viewer on the community site,
it seems like it would be a boon for searches to also optionally
include bootstrap templates.

I think it that case we would include just a few templates in the core project.

Bryan


#10

A dedicated repo for bootstrap templates on the community site is an idea
we’ve been considering recently. I think it would be good to create this,
and we’re having a conversation about relative priority now.

On Thu, Aug 4, 2011 at 2:16 PM, Bryan McLellan btm@loftninjas.org wrote:

On Thu, Aug 4, 2011 at 2:04 PM, Jason J. W. Williams
jasonjwwilliams@gmail.com wrote:

A dedicated repo for knife bootstrap templates would be great. It
would be very helpful to have one place to go to look for the
bootstrap for your OS of choice.

This could also be a feature that we add to
http://community.opscode.com where you could share bootstrap templates
as well as cookbooks.

When we get a better search and recipe viewer on the community site,
it seems like it would be a boon for searches to also optionally
include bootstrap templates.

I think it that case we would include just a few templates in the core
project.

Bryan