summaryrefslogtreecommitdiff
path: root/doc/rtd/reference/datasources/configdrive.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rtd/reference/datasources/configdrive.rst')
-rw-r--r--doc/rtd/reference/datasources/configdrive.rst141
1 files changed, 141 insertions, 0 deletions
diff --git a/doc/rtd/reference/datasources/configdrive.rst b/doc/rtd/reference/datasources/configdrive.rst
new file mode 100644
index 00000000..17913517
--- /dev/null
+++ b/doc/rtd/reference/datasources/configdrive.rst
@@ -0,0 +1,141 @@
+.. _datasource_config_drive:
+
+Config drive
+************
+
+The configuration drive datasource supports the `OpenStack`_ configuration
+drive disk.
+
+By default, ``cloud-init`` *always* considers this source to be a
+fully-fledged datasource. Instead, the typical behavior is to assume it is
+really only present to provide networking information. ``Cloud-init`` will
+copy the network information, apply it to the system, and then continue on.
+The "full" datasource could then be found in the EC2 metadata service. If
+this is not the case then the files contained on the located drive must
+provide equivalents to what the EC2 metadata service would provide (which is
+typical of the version 2 support listed below).
+
+.. note::
+ See `the config drive extension`_ and `metadata introduction`_ in the
+ public documentation for more information.
+
+.. dropdown:: Version 1 (deprecated)
+
+ **Note: Version 1 is legacy and should be considered deprecated.
+ Version 2 has been supported in OpenStack since 2012.2 (Folsom).**
+
+ The following criteria are required to use a config drive:
+
+ 1. Must be formatted with `vfat`_ filesystem.
+ 2. Must contain *one* of the following files: ::
+
+ /etc/network/interfaces
+ /root/.ssh/authorized_keys
+ /meta.js
+
+ ``/etc/network/interfaces``
+
+ This file is laid down by nova in order to pass static networking
+ information to the guest. ``Cloud-init`` will copy it off of the
+ config-drive and into /etc/network/interfaces (or convert it to RH
+ format) as soon as it can, and then attempt to bring up all network
+ interfaces.
+
+ ``/root/.ssh/authorized_keys``
+
+ This file is laid down by nova, and contains the ssk keys that were
+ provided to nova on instance creation (nova-boot --key ....)
+
+ ``/meta.js``
+
+ meta.js is populated on the config-drive in response to the user
+ passing "meta flags" (nova boot --meta key=value ...). It is
+ expected to be json formatted.
+
+
+Version 2
+=========
+
+The following criteria are required to use a config drive:
+
+1. Must be formatted with `vfat`_ or `iso9660`_ filesystem, or have a
+ *filesystem* label of ``config-2`` or ``CONFIG-2``.
+2. The files that will typically be present in the config drive are: ::
+
+ openstack/
+ - 2012-08-10/ or latest/
+ - meta_data.json
+ - user_data (not mandatory)
+ - content/
+ - 0000 (referenced content files)
+ - 0001
+ - ....
+ ec2
+ - latest/
+ - meta-data.json (not mandatory)
+
+Keys and values
+===============
+
+``Cloud-init``'s behaviour can be modified by keys found in the
+:file:`meta.js` (version 1 only) file in the following ways.
+
+``ds-mode``
+-----------
+
+::
+
+ dsmode:
+ values: local, net, pass
+ default: pass
+
+This is what indicates if config drive is a final datasource or not. By
+default it is 'pass', meaning this datasource should not be read. Set it to
+'local' or 'net' to stop ``cloud-init`` from continuing to search for other
+datasources after network config.
+
+The difference between 'local' and 'net' is that local will not require
+networking to be up before user-data actions (or boothooks) are run.
+
+``instance-id``
+---------------
+
+::
+
+ instance-id:
+ default: iid-dsconfigdrive
+
+This is utilised as the metadata's instance-id. It should generally
+be unique, as it is what is used to determine "is this a new instance?".
+
+``public-keys``
+---------------
+
+::
+
+ public-keys:
+ default: None
+
+If present, these keys will be used as the public keys for the
+instance. This value overrides the content in ``authorized_keys``.
+
+.. note::
+ It is likely preferable to provide keys via user data.
+
+``user-data``
+-------------
+
+::
+
+ user-data:
+ default: None
+
+This provides ``cloud-init`` user data. See :ref:`examples <yaml_examples>`
+for details of what needs to be present here.
+
+.. _OpenStack: http://www.openstack.org/
+.. _metadata introduction: https://docs.openstack.org/nova/latest/user/metadata.html#config-drives
+.. _python-novaclient: https://github.com/openstack/python-novaclient
+.. _iso9660: https://en.wikipedia.org/wiki/ISO_9660
+.. _vfat: https://en.wikipedia.org/wiki/File_Allocation_Table
+.. _the config drive extension: https://docs.openstack.org/nova/latest/admin/config-drive.html