[chef] Re: New RFCs: local mode and multitenancy


Chronological Thread 
  • From: John Keiser < >
  • To:
  • Subject: [chef] Re: New RFCs: local mode and multitenancy
  • Date: Mon, 8 Sep 2014 08:18:54 -0700

I hope some of the context behind these is a bit clearer now: local mode by default stands on its own, but multitenant+rbac mode by default is a deliberate attempt to match up Chef 12 client to the Chef 12 server, making it so that when you test, by default you are testing in an environment as close as possible to the real one.

On Wed, Sep 3, 2014 at 10:11 AM, John Keiser < " target="_blank"> > wrote:
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.

§