blob: 9f2724218f55b2df4871d1897d517a6dde465f85 [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
32Default classes
33---------------
34Through the configuration file, it should be possible to define a set of
35default classes that are applied to all nodes (before anything else).
36
37This would be covered by the next point:
38
39Wildcards, regexpclass mapping
40-------------------------------
41I envision the ability to define mappings between regexps and classes, e.g.::
42
43 /^www\d+/ webservers
44 /\.ch\./ hosted@switzerland
45
46These classes would be applied before a YAML file matching the actual hostname
47would be read and merged.
48
49Data from CMS for interpolation
50-------------------------------
51Depending on the CMS in question, it would be nice if |reclass| had access to
52the host-specific data (facts, grains, etc.) and could use those in parameter
53interpolation. I can imagine this working for Salt, where the ``grains``
54dictionary (and results from previous external node classifiers) is made
55available to the external node classifiers, but I am not convinced this will
56be possible in Ansible and Puppet.
57
58Ideally, |reclass| could unify the interface so that even templates can be
59shared between the various CMS.