Ultimate chef setup

I have a little questing regarding chef and environments. Or rather,
im kind of asking how you all guys have set up everything.

Myself I have a redhat satellite running witch i kickstart a bare
minimal installation (300mb footprint). I have 3 " frozen " repos
witch is test, stage and prod that I with activation keys in cobbler
(pxe engine in satellite) tell my kickstart system what environment it
should be connected to.
After the bare minimum kickstart that installs core RHEL and some
admin tools (I dont think its nessesary to chef em since its just a
yum install package) I install chef client.
After that I have recipes that installs application stacks like a java
stack witch installs a frontend apache, tomcat and mysql backend and
configures them. If there is a HA app it connects to the F5
loadbalancer and adds the tomcat server to the vip (long annoying api
calls).
Then i build up roles for apps, like we have an internal app that is
called sitemonitor. I just drop the role on the node and tada, it
magicly appears.
In all my roles I allso have included a global library coobkook that
connects with soap to the satellite to check if the node is test,
stage or prod and adds the correct values to the templates it deploys
in other cookbooks for like apache and tomcat.

I run satellite 5.5 with RHEL 6 server, chef server 10.6 (framos repo)
and jenkins to update cookbooks on checkins (jenkins allso runs knife
and foodcritic to test the cookbooks before it uploads them and fails
if there is a error from the two tests)

So, how do you do it?
And how do you think i should improve my setup even further?

Just intrested to know =)

Jens Skott
Tel: +46-8-5142 4396
Schibsted Centralen IT