summaryrefslogtreecommitdiff
path: root/doc/rtd/topics
diff options
context:
space:
mode:
authorharlowja <harlowja@virtualbox.rhel>2013-02-04 23:10:36 -0800
committerharlowja <harlowja@virtualbox.rhel>2013-02-04 23:10:36 -0800
commitbedf5ae6d1e81209acff81fc688f98267f9b7cf2 (patch)
treef01abf6fb3efc8cca822deb4164d165cea065434 /doc/rtd/topics
parent1bb72070b70edaa960b3158feba936fbc3687b1f (diff)
downloadvyos-cloud-init-bedf5ae6d1e81209acff81fc688f98267f9b7cf2.tar.gz
vyos-cloud-init-bedf5ae6d1e81209acff81fc688f98267f9b7cf2.zip
Add initial docs about datasources.
Start moving the current README for datasources to a RST format and include those files in the rtd site. LP: #1113650
Diffstat (limited to 'doc/rtd/topics')
-rw-r--r--doc/rtd/topics/datasources.rst99
-rw-r--r--doc/rtd/topics/dir_layout.rst6
-rw-r--r--doc/rtd/topics/hacking.rst2
3 files changed, 103 insertions, 4 deletions
diff --git a/doc/rtd/topics/datasources.rst b/doc/rtd/topics/datasources.rst
new file mode 100644
index 00000000..c2354ace
--- /dev/null
+++ b/doc/rtd/topics/datasources.rst
@@ -0,0 +1,99 @@
+.. _datasources:
+
+=========
+Datasources
+=========
+----------
+ What is a datasource?
+----------
+
+Datasources are sources of configuration data for cloud-init that typically come
+from the user (aka userdata) or come from the stack that created the configuration
+drive (aka metadata). Typical userdata would include files, yaml, and shell scripts
+while typical metadata would include server name, instance id, display name and other
+cloud specific details. Since there are multiple ways to provide this data (each cloud
+solution seems to prefer its own way) internally a datasource abstract class was
+created to allow for a single way to access the different cloud systems methods
+to provide this data through the typical usage of subclasses.
+
+The current interface that a datasource object must provide is the following:
+
+.. sourcecode:: python
+
+ def get_userdata(self, apply_filter=False)
+
+ @property
+ def launch_index(self)
+
+ @property
+ def is_disconnected(self)
+
+ def get_userdata_raw(self)
+
+ # the data sources' config_obj is a cloud-config formated
+ # object that came to it from ways other than cloud-config
+ # because cloud-config content would be handled elsewhere
+ def get_config_obj(self)
+
+ def get_public_ssh_keys(self)
+
+ def device_name_to_device(self, name)
+
+ def get_locale(self)
+
+ @property
+ def availability_zone(self)
+
+ def get_instance_id(self)
+
+ def get_hostname(self, fqdn=False)
+
+ def get_package_mirror_info(self)
+
+---------------------------
+EC2
+---------------------------
+
+TBD
+
+---------------------------
+Config Drive
+---------------------------
+
+.. include:: ../../sources/configdrive/README.rst
+
+---------------------------
+Alt cloud
+---------------------------
+
+.. include:: ../../sources/altcloud/README.rst
+
+---------------------------
+No cloud
+---------------------------
+
+.. include:: ../../sources/nocloud/README.rst
+
+---------------------------
+MAAS
+---------------------------
+
+TBD
+
+---------------------------
+CloudStack
+---------------------------
+
+TBD
+
+---------------------------
+OVF
+---------------------------
+
+See: https://bazaar.launchpad.net/~cloud-init-dev/cloud-init/trunk/files/head:/doc/sources/ovf/
+
+---------------------------
+Fallback/None
+---------------------------
+
+TBD
diff --git a/doc/rtd/topics/dir_layout.rst b/doc/rtd/topics/dir_layout.rst
index f072c585..8815d33d 100644
--- a/doc/rtd/topics/dir_layout.rst
+++ b/doc/rtd/topics/dir_layout.rst
@@ -25,9 +25,9 @@ Cloudinits's directory structure is somewhat different from a regular applicatio
- user-data.txt
- user-data.txt.i
- scripts/
- - per-boot/
- - per-instance/
- - per-once/
+ - per-boot/
+ - per-instance/
+ - per-once/
- seed/
- sem/
diff --git a/doc/rtd/topics/hacking.rst b/doc/rtd/topics/hacking.rst
index 350265eb..96ab88ef 100644
--- a/doc/rtd/topics/hacking.rst
+++ b/doc/rtd/topics/hacking.rst
@@ -1 +1 @@
-.. include:: ../../../HACKING
+.. include:: ../../../HACKING.rst