summaryrefslogtreecommitdiff
path: root/doc/rtd/topics/format.rst
diff options
context:
space:
mode:
authorRyan Harper <ryan.harper@canonical.com>2020-08-17 11:06:20 -0500
committerGitHub <noreply@github.com>2020-08-17 12:06:20 -0400
commita4b6b96f30bdd994ab535b222cf4b4bf09f20668 (patch)
treeb663314d2bc85a48460306d215e107bb4af3787c /doc/rtd/topics/format.rst
parentef041fd822a2cf3a4022525e942ce988b1f95180 (diff)
downloadvyos-cloud-init-a4b6b96f30bdd994ab535b222cf4b4bf09f20668.tar.gz
vyos-cloud-init-a4b6b96f30bdd994ab535b222cf4b4bf09f20668.zip
cli: add devel make-mime subcommand (#518)
* cli: add devel make-mime subcommand Cloud-init documents an in-source-tree tool, make-mime.py used to help users create multi-part mime user-data. This tool is not shipped in the cloud-init install and unavailable at runtime. This patch takes tools/make-mime.py and makes the functionality available via the devel subcommand. The primary interface of --attach file:content-type is still present. The cli now adds: -l, --list-types Print out a list of supported content-types -f, --force Ignore errors for unsupported content-types The tool will now raise a RunTime error if the supplied content-type is not supported (or more likely a typo: x-shell-script vs. x-shellscript) * make-mime: write to stderr and exit 1 instead of raising RuntimeError * Update example to match docs * Update docs for make-mime subcommand * Remove tools/make-mime.py; replaced by cloud-init devel make-mime Co-authored-by: Rick Harding <rharding@mitechie.com>
Diffstat (limited to 'doc/rtd/topics/format.rst')
-rw-r--r--doc/rtd/topics/format.rst44
1 files changed, 23 insertions, 21 deletions
diff --git a/doc/rtd/topics/format.rst b/doc/rtd/topics/format.rst
index 1d0a7097..d03e4caf 100644
--- a/doc/rtd/topics/format.rst
+++ b/doc/rtd/topics/format.rst
@@ -23,33 +23,35 @@ Using a mime-multi part file, the user can specify more than one type of data.
For example, both a user data script and a cloud-config type could be
specified.
-Supported content-types:
+Supported content-types are listed from the cloud-init subcommand make-mime::
-- text/cloud-boothook
-- text/cloud-config
-- text/cloud-config-archive
-- text/jinja2
-- text/part-handler
-- text/upstart-job
-- text/x-include-once-url
-- text/x-include-url
-- text/x-shellscript
+ % cloud-init devel make-mime --list-types
+ cloud-boothook
+ cloud-config
+ cloud-config-archive
+ cloud-config-jsonp
+ jinja2
+ part-handler
+ upstart-job
+ x-include-once-url
+ x-include-url
+ x-shellscript
-Helper script to generate mime messages
----------------------------------------
-The cloud-init codebase includes a helper script to generate MIME multi-part
-files: `make-mime.py`_.
+Helper subcommand to generate mime messages
+-------------------------------------------
-``make-mime.py`` takes pairs of (filename, "text/" mime subtype) separated by
-a colon (e.g. ``config.yaml:cloud-config``) and emits a MIME multipart
-message to stdout. An example invocation, assuming you have your cloud config
-in ``config.yaml`` and a shell script in ``script.sh`` and want to store the
-multipart message in ``user-data``::
+The cloud-init subcommand can generate MIME multi-part files: `make-mime`_.
- ./tools/make-mime.py -a config.yaml:cloud-config -a script.sh:x-shellscript > user-data
+``make-mime`` subcommand takes pairs of (filename, "text/" mime subtype)
+separated by a colon (e.g. ``config.yaml:cloud-config``) and emits a MIME
+multipart message to stdout. An example invocation, assuming you have your
+cloud config in ``config.yaml`` and a shell script in ``script.sh`` and want
+to store the multipart message in ``user-data``::
-.. _make-mime.py: https://github.com/canonical/cloud-init/blob/master/tools/make-mime.py
+ % cloud-init devel make-mime -a config.yaml:cloud-config -a script.sh:x-shellscript > user-data
+
+.. _make-mime: https://github.com/canonical/cloud-init/blob/master/cloudinit/cmd/devel/make_mime.py
User-Data Script