=== Overview ===
Vendordata is data provided by the entity that launches an instance
(for example, the cloud provider).  This data can be used to
customize the image to fit into the particular environment it is
being run in.

Vendordata follows the same rules as user-data, with the following
caveats:
    1. Users have ultimate control over vendordata. They can disable its
       execution or disable handling of specific parts of multipart input.
    2. By default it only runs on first boot
    3. Vendordata can be disabled by the user. If the use of vendordata is
       required for the instance to run, then vendordata should not be
       used.
    4. user supplied cloud-config is merged over cloud-config from
       vendordata.

Users providing cloud-config data can use the '#cloud-config-jsonp' method
to more finely control their modifications to the vendor supplied
cloud-config.  For example, if both vendor and user have provided
'runcnmd' then the default merge handler will cause the user's runcmd to
override the one provided by the vendor.  To append to 'runcmd', the user
could better provide multipart input with a cloud-config-jsonp part like:
 #cloud-config-jsonp
 [{ "op": "add", "path": "/runcmd", "value": ["my", "command", "here"]}]
 
Further, we strongly advise vendors to not 'be evil'. By evil, we
mean any action that could compromise a system. Since users trust
you, please take care to make sure that any vendordata is safe,
atomic, idempotent and does not put your users at risk.

=== Input Formats ===
cloud-init will download and cache to filesystem any vendor-data that it
finds.  Vendordata is handled exactly like user-data.  That means that
the vendor can supply multipart input and have those parts acted on
in the same way as user-data.

The only differences are:
 * user-scripts are stored in a different location than user-scripts (to
   avoid namespace collision)
 * user can disable part handlers by cloud-config settings.
   For example, to disable handling of 'part-handlers' in vendor-data,
   the user could provide user-data like this:
    #cloud-config
    vendordata: {excluded: 'text/part-handler'}

=== Examples ===
There are examples in the examples subdirectory.
Additionally, the 'tools' directory contains 'write-mime-multipart',
which can be used to easily generate mime-multi-part files from a list
of input files.  That data can then be given to an instance.

See 'write-mime-multipart --help' for usage.
