On the server:

conf/manifests/init
   - the central entry point
   - is a shell script
   - defines mapping from types to hosts
   -  will be called by cdist and the name
      will be available for tracking in
      cdist core functions

core/manifests/* (all other)
   - same function as above
   - but won't be called by cdist
   - method to seperate configuration parts


conf/types/<name>/
   - provide standard types
   - have required and optional arguments
   - are independent of hosts
   - may make use of other types to realise a new type
      - how to overwrite stuff?
      - overwrite in own tree?
         - needs knowledge of inherited provider
            - similar to current situation in puppet,
              but more like reusable defines
   - or may implement some functionality on their own

lib/types/<name>/
   - same as above, but provided by the cdist distribution
   - if name exists in both, conf/ has priority

Differences manifests vs. types


                     manifests               types

main purpose         map config to host      provide functionality
can change config    no (prevent conflicts)  yes (allow inheritance)
specificness         site specific           (globally) reusable