On reboot, you should have crowbar_join running that will call chef-client.

Crowbar doesn't keep the applying state (as chef-client will have completed successfully). Which I think is okay, because on reboot, the node should move to the "rebooting/readying/ready" states.