summaryrefslogtreecommitdiff
path: root/doc/rtd/topics/datasources/lxd.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rtd/topics/datasources/lxd.rst')
-rw-r--r--doc/rtd/topics/datasources/lxd.rst110
1 files changed, 0 insertions, 110 deletions
diff --git a/doc/rtd/topics/datasources/lxd.rst b/doc/rtd/topics/datasources/lxd.rst
deleted file mode 100644
index 3b523d50..00000000
--- a/doc/rtd/topics/datasources/lxd.rst
+++ /dev/null
@@ -1,110 +0,0 @@
-.. _datasource_lxd:
-
-LXD
-===
-
-The data source ``LXD`` allows the user to provide custom user-data,
-vendor-data, meta-data and network-config to the instance without running
-a network service (or even without having a network at all). This datasource
-performs HTTP GETs against the `LXD socket device`_ which is provided to each
-running LXD container and VM as ``/dev/lxd/sock`` and represents all
-instance-metadata as versioned HTTP routes such as:
-
- - 1.0/meta-data
- - 1.0/config/user.meta-data
- - 1.0/config/user.vendor-data
- - 1.0/config/user.user-data
- - 1.0/config/user.<any-custom-key>
-
-The LXD socket device ``/dev/lxd/sock`` is only present on containers and VMs
-when the instance configuration has ``security.devlxd=true`` (default).
-Disabling ``security.devlxd`` configuration setting at initial launch will
-ensure that cloud-init uses the :ref:`datasource_nocloud` datasource.
-Disabling ``security.devlxd`` over the life of the container will result in
-warnings from cloud-init and cloud-init will keep the originally detected LXD
-datasource.
-
-The LXD datasource is detected as viable by ``ds-identify`` during systemd
-generator time when either ``/dev/lxd/sock`` exists or
-``/sys/class/dmi/id/board_name`` matches "LXD".
-
-The LXD datasource provides cloud-init the ability to react to meta-data,
-vendor-data, user-data and network-config changes and render the updated
-configuration across a system reboot.
-
-To modify what meta-data, vendor-data or user-data are provided to the
-launched container, use either LXD profiles or
-``lxc launch ... -c <key>="<value>"`` at initial container launch setting one
-of the following keys:
-
- - user.meta-data: YAML metadata which will be appended to base meta-data
- - user.vendor-data: YAML which overrides any meta-data values
- - user.network-config: YAML representing either :ref:`network_config_v1` or
- :ref:`network_config_v2` format
- - user.user-data: YAML which takes preference and overrides both meta-data
- and vendor-data values
- - user.any-key: Custom user configuration key and value pairs can be passed to
- cloud-init. Those keys/values will be present in instance-data which can be
- used by both `#template: jinja` #cloud-config templates and
- the `cloud-init query` command.
-
-Note: LXD version 4.22 introduced a new scope of config keys prefaced by
-``cloud-init.`` which are preferred above the related ``user.*`` keys:
-
- - cloud-init.meta-data
- - cloud-init.vendor-data
- - cloud-init.network-config
- - cloud-init.user-data
-
-
-By default, network configuration from this datasource will be:
-
-.. code:: yaml
-
- version: 1
- config:
- - type: physical
- name: eth0
- subnets:
- - type: dhcp
- control: auto
-
-This datasource is intended to replace :ref:`datasource_nocloud`
-datasource for LXD instances with a more direct support for LXD APIs instead
-of static NoCloud seed files.
-
-.. _LXD socket device: https://linuxcontainers.org/lxd/docs/master/dev-lxd
-.. vi: textwidth=79
-
-Hotplug
--------
-
-Network hotplug functionality is supported for the LXD datasource as described
-in the :ref:`events` documentation. As hotplug functionality relies on the
-cloud provided network metadata, the LXD datasource will only meaningfully
-react to a hotplug event if it has the configuration necessary to respond to
-the change has been provided to LXD. Practically, this means that
-even with hotplug enabled, **the default behavior for adding a new virtual
-NIC will result no change**.
-
-To update the configuration to be used by hotplug, first pass the network
-configuration via the ``cloud-init.network-config`` (or
-``user.network-config`` on older versions).
-
-For example, given an LXD instance named ``my-lxd`` with hotplug enabled and
-an LXD bridge named ``my-bridge``, the following will allow for additional
-DHCP configuration of ``eth1``:
-
-.. code-block:: shell-session
-
- $ cat /tmp/cloud-network-config.yaml
- version: 2
- ethernets:
- eth0:
- dhcp4: true
- eth1:
- dhcp4: true
-
- $ lxc config set my-lxd cloud-init.network-config="$(cat /tmp/cloud-network-config.yaml)"
- $ lxc config device add my-lxd eth1 nic name=eth1 nictype=bridged parent=my-bridge
- Device eth1 added to my-lxd