blob: 446dd595deb5f7b15a1958ed1271baf3246756af [file] [log] [blame]
martin f. krafftcc8851d2013-08-27 13:43:16 +02001==================
2reclass to-do list
3==================
4
martin f. krafftcbaf4c82013-08-27 13:47:59 +02005Common set of classes
6---------------------
7A lot of the classes I have set up during the various stages of development of
8|reclass| are generic. It would probably be sensible to make them available as
9part of |reclass|, to give people a common baseline to work from, and to
10ensure a certain level of consistency between users.
11
martin f. krafftcc8851d2013-08-27 13:43:16 +020012Testing framework
13-----------------
14There is rudimentary testing in place, but it's inconsistent. I got
15side-tracked into discussions about the philosphy of mocking objects. This
16could all be fixed and unified.
17
18Also, storage, outputters, CLI and adapters have absolutely no tests yet…
19
20Configurable file extension
21---------------------------
22Right now, ``.yml`` is hard-coded. This could be exported to the
23configuration file, or even given as a list, so that ``.yml`` and ``.yaml``
24can both be used.
25
26Verbosity, debugging
27--------------------
28Verbose output and debug logging would be a very useful addition to help
29people understand what's going on, where data are being changed/merged, and to
30help solve problems.
31
martin f. krafft3b10e802013-11-26 23:30:10 +010032Mapping interpolation
33---------------------
34Given class mappings, it should be possible to use references in the classes,
35e.g.:
martin f. krafftcc8851d2013-08-27 13:43:16 +020036
martin f. krafft3b10e802013-11-26 23:30:10 +010037 /\.(\S+)$/ in-domain-\1
martin f. krafftcc8851d2013-08-27 13:43:16 +020038
martin f. krafft3b10e802013-11-26 23:30:10 +010039such that a host like ``example.org`` would get the class ``in-domain-org``
40assigned to it.
martin f. krafftcc8851d2013-08-27 13:43:16 +020041
42Data from CMS for interpolation
43-------------------------------
44Depending on the CMS in question, it would be nice if |reclass| had access to
45the host-specific data (facts, grains, etc.) and could use those in parameter
46interpolation. I can imagine this working for Salt, where the ``grains``
47dictionary (and results from previous external node classifiers) is made
48available to the external node classifiers, but I am not convinced this will
49be possible in Ansible and Puppet.
50
51Ideally, |reclass| could unify the interface so that even templates can be
52shared between the various CMS.
martin f. krafft3fe5f942013-08-27 15:58:51 +020053
martin f. krafftb640cfa2013-08-28 10:01:13 +020054Node environments
55-----------------
56At least Salt and Puppet support the notion of "environments", but the Salt
57adapter just puts everything into the "base" environment at the moment.
58
59Part of the reason that multiple environments aren't (yet) supported is
60because I don't see the use-case (anymore) with |reclass|. If you still see
61a use-case, then please help me understand it and let's figure out a good way
62to introduce this concept into |reclass|.
63
martin f. krafft4ff12822013-08-28 11:51:17 +020064Membership information
65----------------------
66It would be nice if |reclass| could provide e.g. the Nagios master node with
67a list of clients that define it as their master. That would short-circuit
68Puppet's ``storeconfigs`` and Salt's ``mine``.
69
martin f. krafft3fe5f942013-08-27 15:58:51 +020070.. include:: substs.inc