blob: 06b099987672ce24589fa0b0e233f5922db84b04 [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. krafftcc8851d2013-08-27 13:43:16 +020032Data from CMS for interpolation
33-------------------------------
34Depending on the CMS in question, it would be nice if |reclass| had access to
35the host-specific data (facts, grains, etc.) and could use those in parameter
36interpolation. I can imagine this working for Salt, where the ``grains``
37dictionary (and results from previous external node classifiers) is made
38available to the external node classifiers, but I am not convinced this will
39be possible in Ansible and Puppet.
40
41Ideally, |reclass| could unify the interface so that even templates can be
42shared between the various CMS.
martin f. krafft3fe5f942013-08-27 15:58:51 +020043
martin f. krafftb640cfa2013-08-28 10:01:13 +020044Node environments
45-----------------
46At least Salt and Puppet support the notion of "environments", but the Salt
47adapter just puts everything into the "base" environment at the moment.
48
49Part of the reason that multiple environments aren't (yet) supported is
50because I don't see the use-case (anymore) with |reclass|. If you still see
51a use-case, then please help me understand it and let's figure out a good way
52to introduce this concept into |reclass|.
53
martin f. krafft4ff12822013-08-28 11:51:17 +020054Membership information
55----------------------
56It would be nice if |reclass| could provide e.g. the Nagios master node with
57a list of clients that define it as their master. That would short-circuit
58Puppet's ``storeconfigs`` and Salt's ``mine``.
59
martin f. krafft54bb4722013-12-26 14:47:19 +130060Configuration file lookup improvements
61--------------------------------------
62Right now, the adapters and the CLI look for the :doc:`configuration file
63<configfile>` in a fixed set of locations. On of those derives from
64``OPT_INVENTORY_BASE_URI``, the default inventory base URI (``/etc/reclass``).
65This should probably be updated in case the user changes the URI.
66
67Furthermore, ``$CWD`` and ``~`` might not make a lot of sense in all
68use-cases.
69
martin f. krafft3fe5f942013-08-27 15:58:51 +020070.. include:: substs.inc