~ubuntu-branches/ubuntu/saucy/cloud-init/saucy

« back to all changes in this revision

Viewing changes to doc/sources/smartos/README.rst

  • Committer: Package Import Robot
  • Author(s): Scott Moser
  • Date: 2013-08-29 04:54:39 UTC
  • mfrom: (1.4.4)
  • Revision ID: package-import@ubuntu.com-20130829045439-lp1xe1nvv462ko11
Tags: 0.7.3~bzr862-0ubuntu1
* New upstream snapshot.
  * support base64 encoded data in the smart os datasource

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
==================
 
2
SmartOS Datasource
 
3
==================
 
4
 
 
5
This datasource finds metadata and user-data from the SmartOS virtualization
 
6
platform (i.e. Joyent).
 
7
 
 
8
SmartOS Platform
 
9
----------------
 
10
The SmartOS virtualization platform meta-data to the instance via the second
 
11
serial console. On Linux, this is /dev/ttyS1. The data is a provided via a
 
12
simple protocol, where something queries for the userdata, where the console
 
13
responds with the status and if "SUCCESS" returns until a single ".\n".
 
14
 
 
15
New versions of the SmartOS tooling will include support for base64 encoded data.
 
16
 
 
17
Userdata
 
18
--------
 
19
 
 
20
In SmartOS parlance, user-data is a actually meta-data. This userdata can be
 
21
provided a key-value pairs.
 
22
 
 
23
Cloud-init supports reading the traditional meta-data fields supported by the
 
24
SmartOS tools. These are:
 
25
 * root_authorized_keys
 
26
 * hostname
 
27
 * enable_motd_sys_info
 
28
 * iptables_disable
 
29
 
 
30
Note: At this time iptables_disable and enable_motd_sys_info are read but
 
31
    are not actioned.
 
32
 
 
33
user-script
 
34
-----------
 
35
 
 
36
SmartOS traditionally supports sending over a user-script for execution at the
 
37
rc.local level. Cloud-init supports running user-scripts as if they were
 
38
cloud-init user-data. In this sense, anything with a shell interpreter
 
39
directive will run
 
40
 
 
41
user-data and user-script
 
42
-------------------------
 
43
 
 
44
In the event that a user defines the meta-data key of "user-data" it will
 
45
always supercede any user-script data. This is for consistency.
 
46
 
 
47
base64
 
48
------
 
49
 
 
50
The following are exempt from base64 encoding, owing to the fact that they
 
51
are provided by SmartOS:
 
52
 * root_authorized_keys
 
53
 * enable_motd_sys_info
 
54
 * iptables_disable
 
55
 
 
56
This list can be changed through system config of variable 'no_base64_decode'.
 
57
 
 
58
This means that user-script and user-data as well as other values can be
 
59
base64 encoded. Since Cloud-init can only guess as to whether or not something
 
60
is truly base64 encoded, the following meta-data keys are hints as to whether
 
61
or not to base64 decode something:
 
62
  * base64_all: Except for excluded keys, attempt to base64 decode
 
63
        the values. If the value fails to decode properly, it will be
 
64
        returned in its text
 
65
  * base64_keys: A comma deliminated list of which keys are base64 encoded.
 
66
  * b64-<key>:
 
67
    for any key, if there exists an entry in the metadata for 'b64-<key>'
 
68
    Then 'b64-<key>' is expected to be a plaintext boolean indicating whether
 
69
    or not its value is encoded.
 
70
  * no_base64_decode: This is a configuration setting
 
71
        (i.e. /etc/cloud/cloud.cfg.d) that sets which values should not be
 
72
        base64 decoded.