cdist/TODO-1.0

88 lines
3.4 KiB
Text
Raw Normal View History

Steps needed until 1.0:
x finish type __file
- finish type __package
- cleanup documentation (see below)
--------------------------------------------------------------------------------
This document defines how to continue work on cdist:
x general stuff
x Define configuration paths (doc/internal/config-layout)
x check whether remote and local view of objects can be the same,
i.e. local:/outdir == remote:/var/lib/cdist
x similar, but not the same
x get information from target (stage 1)
x Define how to get information from targets
x Create shell script that creates code to run on client (cdist-build-explorer)
x Redo explorers (see manpage)
x run initial manifest (stage 2)
x Create configuration tree from manifest
x write binaries, which create the tree when called from manifest (cdist_tree_wrapper)
x be able to run manifest of types (stage 3)
x Parse configuration tree/objects recursively
x can/may types modify tree?
-> yes, of everything a type created itself!
x may open door for getting information from manifest / other stuff
x Cleanly define paths for object creation, especially recursive calls
x doc/man/cdist-config-layout.text
x cd $__object_dir, before running manifest
x rename $__object_dir to $__object_base_dir
x use $type/manifest instead of $type/init
x find $object_id in recursive runner (before merge)
x move parameters of object to subdir parameter
x run explorers for every object
x generate code to be executed on clients (stage 4)
x for one object
x for all objects
x execute code on client (stage 5)
- Other stuff pre 1.0:
- doc cleanup for 1.0:
- ensure every file in bin/ has a correspondent manpage
- cdist manpage (main manpage)
- cleanup following man + their tree:
- cdist-push-pull [WRITE]
- cdist-quickstart [WRITE]
- how to write a minimal host manifest
- cdist-types [IMPORTANT]
- only do necessary work [TYPE IMPLEMENTATION HINTS]
- install packages only if not existent
- copy file only if different
- cdist [IMPORTANT]
- explain the general approach
- give right pointers
- cdist-explorers
- add terminology
- define steps within configuration apply
- detect impossible/unsafe things:
- creating a file twice
- installing and removing a package
- and report location of occurence
- parse afterwards?
- multi master setups
- templating
- how to define templates
- variable substitution from shell may be problematic
- SHELL SCRIPTS! (executables? do not support?)
- stdout == output of template == what will be used
- cleanup website
- remove HACKERS_README
- create doc/dev/HACKERS_README
- Add install target to Makefile
- create cdist-config-init to create basic tree
- cdist-type integration!
- DOC document "cd $__object_dir, before running manifest" in doc/man/cdist-types.text
- DOC document that $type/manifest is executed for every object/instance
- DOC: exported variables: __type, __explorer, __type_explorer, __object, __object_id
- cleanup READMEs
- Check all references in manpages, ensure all manpages exist
- include generation in makefile