cdist/doc/internal/provider-integration

62 lines
1.7 KiB
Plaintext

This document is a brainstorming document,
on how to integrate providers. Providers
had been "type" in previous discussion.
Proposed/discussed structures:
1) 2010-11-02
$basedir/$type/
properties/
name/
required # required | optional
choices # \n liste
meta/
default (shell script)
providers/
pukman/
2) 2010-11-09
How to write my own type named "coffee":
Create the directory /etc/cdist/types/coffee/
Create the file /etc/cdist/types/coffee/README containing a description of the
type.
If your type supports attributes, create the directory /etc/cdist/types/coffee/
attributes.
For each attribute, create the file
/etc/cdist/types/coffee/attributes/$attribute_name which contains
a short description on the first line
then a blank line
then a long description (probably over several lines)
If you think your type may be useful for others, submit it for inclusion
into cdist at cdist -- at -- l.schottelius.org.
Create /etc/cdist/types/coffee/init which reads $configinput
(either via cconfig or via environment) and outputs a block of
shell code suitable for running on the client.
--------------------------------------------------------------------------------
cdist view on providers:
How providers are integrated/run:
- If cdist encounters provider in manifest,
a wrapper script is run, that creates a
new entry in the cconfig database and adds
attribute values:
conf/__file/cdist_bin/source
conf/__file/cdist_bin/destination
- In this stage, no conflicts may occur, as
no provider code has been called (i.e. only
manifests, which map config to hosts is
applied).