[chef] New RFCs: local mode and multitenancy


Chronological Thread 
  • From: John Keiser < >
  • To:
  • Subject: [chef] New RFCs: local mode and multitenancy
  • Date: Wed, 3 Sep 2014 10:11:58 -0700

Hey all!

The new RFC process has been working pretty well, and is only heating up as time goes by.  I've put up a few new RFCs up at chef-rfc that are worth taking a look at and commenting on while there's still time:

1. Turn on local mode by defaulthttps://github.com/opscode/chef-rfc/pull/48

This means that you no longer need to specify -z in most cases to get local mode.  You can walk up to a new directory and do this:

~/test> echo "puts 'hi'" > recipe.rb
~/test> chef-client recipe.rb
Starting Chef Client, version 12.0.0.alpha.1
... hi ...
Chef Client finished, 0/0 resources updated in 2.574202 seconds
~/test> knife node list
johns-mbp-3.lan
~/test>

Of course, you can do all the normal things with nodes--add to run lists, manipulate data bags, do searches and roles and all that.  The only change here is that you used to have to put a -z on every command you types.

This will not affect knife and chef-client runs that have config: anything that is already pointed at a chef_server_url will remain pointed at a chef_server_url.

2. Add multi-org to chef and local mode: https://github.com/opscode/chef-rfc/pull/49

First, this upgrades local mode to emulate a Hosted or Enterprise organization by default, so that you can test recipes which work in those environments, which are becoming more and more common.  Chef 11 non-multitenant compatibility can be flipped back on with a config option.

It also adds chef_server_root and organization to Chef::Config, so that config files can look like this:

organization 'myorg'

# chef_server_url will automatically be set to https://my.enterprise.chef.server.com/organizations/myorg

There's even a Hosted default for a very common case:

organization 'myorg'

# chef_server_url will automatically be set to https://api.opscode.com/organizations/myorg

Existing config files, which do not set chef_server_root or organization, will be unaffected except that if chef_server_url is set to <url>/organizations/myorg, chef_server_root and organization will be inferred.

This paves the way for developer features that create, list, download, upload, or otherwise manipulate organizations and users in Enterprise and Hosted Chef--for example, cheffish's soon-to-be-released chef_acl and chef_organization resources, or expanding knife upload and download to deal with full Enterprise a la knife-ec-backup.

3. Tangentially, you should also check out https://github.com/opscode/chef-rfc/pull/50, which proposes removing the ability to specify HTTP config files, because low bang, big buck.

Please comment on anything relevant to you!  We're looking for your feedback :)

Happy Cheffing,

--John Keiser



Archive powered by MHonArc 2.6.16.

§