[chef] conflict between using environments to manage cookbook releases and to manage application environments


Chronological Thread 
  • From: Bryan Berry < >
  • To:
  • Subject: [chef] conflict between using environments to manage cookbook releases and to manage application environments
  • Date: Tue, 1 May 2012 10:47:19 +0200

Dear Chefs,

I am flummoxed by my conflicting needs for Chef environments. I currently have 2 environments:

_default
QA:   cookbooks that I am testing,  I know exactly which nodes are in here and they can tolerate a service restart or two. No important nodes belong to this environment

PROD: Only stable, tested cookbook versions here, the vast majority of nodes belong to this environment

on the other hand, my organization has 4, count 'em, 4 application_environments 

PROD - production
QA   - user-facing tests
TS    - integration tests
DV    - development servers

All of these servers should be using stable, tested cookbooks as my devs don't want to be disrupted by a misbehaving cookbook. Thus all of them belong to PROD chef_environment, besides the couple that I am using to test cookbooks at a given moment.

I currently manage application_environments with data bags that look like this

apps/esb.json
   "pr": {
          "database_schema": "production_schema"
     },
     "qa": {
          "database_schema": "qa_schema"
     }
    . . . .
}

additionally, I add a top-level attribute to each node "app_env"  that indicates which application_environment a node belongs to

Some cookbooks, such as the haproxy cookbook, treat chef_environments like application_environments

I would love to treat chef_environments like application_environments but that would completely break my workflow. How are others dealing w/ the issues I have brought up here?





Archive powered by MHonArc 2.6.16.

§