~0x44/nova/extdoc

« back to all changes in this revision

Viewing changes to nova/api/openstack/contrib/doc/ext_config_drive.rst

  • Committer: Christopher MacGown
  • Date: 2011-09-17 01:01:45 UTC
  • Revision ID: chris@pistoncloud.com-20110917010145-rlrywle2m0to2p2j
Added config_drive ext doc

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
About This Extension
 
2
====================
 
3
The config-drive extension enables attaching a separate drive to the Compute guest on instance create. It is used with the OpenStack Compute 1.1 API to write configuration data into guest for those guests whose root filesystems cannot be mounted by the Compute host.
 
4
 
 
5
To use this extension, you must have installed Compute, with libvirt or Xen using local disk.
 
6
 
 
7
.. Are there any pre-requisites prior to using it such as special hardware or configuration?
 
8
 
 
9
To obtain current information the extensions available to you, issue an EXTENSION query on the OpenStack system where it is installed, such as http://mycloud.com/v1.1/tenant/extensions.
 
10
 
 
11
Extension Overview
 
12
------------------
 
13
 
 
14
Name
 
15
    Config Drive
 
16
        
 
17
Namespace
 
18
        http://docs.openstack.org/ext/config-drive/api/v1.1
 
19
 
 
20
Alias
 
21
        ORG-EXT
 
22
        
 
23
Contact
 
24
    Christopher MacGown <chris@pistoncloud.com>
 
25
        Name <email@mailingaddress.net>
 
26
        
 
27
Status
 
28
        Alpha
 
29
        
 
30
Extension Version
 
31
        v1.0 (2011-09-16)
 
32
 
 
33
Dependencies
 
34
    Compute API 1.1
 
35
        
 
36
Doc Link (PDF)
 
37
        http://
 
38
        
 
39
Doc Link (WADL)
 
40
        http://
 
41
        
 
42
Short Description
 
43
        This extension enables the assignment of config-drives to a compute guest on instance create running in an OpenStack cloud.
 
44
 
 
45
Sample Query Responses
 
46
----------------------
 
47
 
 
48
As shown below, responses to an EXTENSION query in XML or JSON provide basic information about the extension. 
 
49
 
 
50
Extension Query Response: XML::
 
51
 
 
52
 
 
53
Extension Query Response: JSON::
 
54
 
 
55
 
 
56
Document Change History
 
57
-----------------------
 
58
 
 
59
============= =====================================
 
60
Revision Date Summary of Changes
 
61
2011-09-16    Initial draft
 
62
============= =====================================
 
63
 
 
64
 
 
65
Summary of Changes
 
66
==================
 
67
This extension to the OpenStack Compute API allows the addition of a configuration drive to an instance.
 
68
 
 
69
To support these new actions, the extension also issues new (faults, headers, resources, states, you name it.)
 
70
 
 
71
New Action
 
72
----------
 
73
None
 
74
 
 
75
New Faults
 
76
----------
 
77
 
 
78
None
 
79
 
 
80
New Headers
 
81
-----------
 
82
None
 
83
 
 
84
New Resources
 
85
-------------
 
86
This extension to the OpenStack Compute API adds the following resources:
 
87
 
 
88
A config_drive attribute to the servers API that is None by default, but can optionally be True or the imageRef of a config-drive image.
 
89
 
 
90
Upon instance create, a guest built with a True config_drive attribute will create a local volume and partition it as a fat32 drive, all passed in metadata, networks, and keys will be written to the config_drive which is associated as the last available disk on the instance.
 
91
Upon instance create, a guest built with an imageRef config_drive attribute will create a local volume from the image.
 
92
 
 
93
New States
 
94
----------
 
95
 
 
96
Changes to the Cloud Servers Specification
 
97
------------------------------------------
 
98
 
 
99
In section 4.1.2 (Create Servers) of the API Specification: Examples 4.3 and 4.4 should optionally add the config-drive attribute as in the below examples:
 
100
 
 
101
 
 
102
Example XML with config_drive attribute = True:
 
103
 
 
104
<?xml version="1.0" encoding="UTF-8"?>
 
105
<server xmlns="http://docs.openstack.org/compute/api/v1.1"
 
106
        imageRef="http://servers.api.openstack.org/1234/images/52415800-8b69-11e0-9b19-734f6f006e54"
 
107
        flavorRef="52415800-8b69-11e0-9b19-734f1195ff37"
 
108
        name="new-server-test"
 
109
        config=drive="True"
 
110
        >
 
111
  <metadata>
 
112
    <meta key="My Server Name">Apache1</meta>
 
113
  </metadata>
 
114
  <personality>
 
115
    <file path="/etc/banner.txt">
 
116
        ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
 
117
        dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
 
118
        IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
 
119
        c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
 
120
        QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
 
121
        ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
 
122
        dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
 
123
        c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
 
124
        b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
 
125
    </file>
 
126
  </personality>
 
127
</server>
 
128
 
 
129
 
 
130
Example XML with config_drive attribute is an imageRef:
 
131
 
 
132
<?xml version="1.0" encoding="UTF-8"?>
 
133
<server xmlns="http://docs.openstack.org/compute/api/v1.1"
 
134
        imageRef="http://servers.api.openstack.org/1234/images/
 
135
52415800-8b69-11e0-9b19-734f6f006e54"
 
136
        flavorRef="52415800-8b69-11e0-9b19-734f1195ff37"
 
137
        name="new-server-test"
 
138
        config_drive="http://servers.api.openstack.org/1234/images/52415800-8b69-1341-9b19-734f6f006e54"
 
139
        >
 
140
  <metadata>
 
141
    <meta key="My Server Name">Apache1</meta>
 
142
  </metadata>
 
143
  <personality>
 
144
    <file path="/etc/banner.txt">
 
145
        ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
 
146
        dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
 
147
        IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
 
148
        c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
 
149
        QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
 
150
        ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
 
151
        dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
 
152
        c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
 
153
        b25zLiINCg0KLVJpY2hhcmQgQmFjaA==
 
154
    </file>
 
155
  </personality>
 
156
</server>
 
157
 
 
158
 
 
159
Example JSON with config_drive attribute is true:
 
160
{
 
161
    "server" : {
 
162
        "name" : "new-server-test",
 
163
        "imageRef" : "http://servers.api.openstack.org/1234/images/52415800-8b69-11e0-9b19-734f6f006e54",
 
164
        "flavorRef" : "52415800-8b69-11e0-9b19-734f1195ff37",
 
165
        "config_drive" : "true",
 
166
        "metadata" : {
 
167
            "My Server Name" : "Apache1" 
 
168
        },
 
169
        "personality" : [
 
170
            {
 
171
                "path" : "/etc/banner.txt",
 
172
                "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
 
173
 dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
 
174
 IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
 
175
 c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
 
176
 QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
 
177
 ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
 
178
 dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
 
179
 c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
 
180
 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" 
 
181
            } 
 
182
        ] 
 
183
    }
 
184
}
 
185
 
 
186
Example JSON with config_drive attribute is an imageRef:
 
187
{
 
188
    "server" : {
 
189
        "name" : "new-server-test",
 
190
        "imageRef" : "http://servers.api.openstack.org/1234/images/52415800-8b69-11e0-9b19-734f6f006e54",
 
191
        "flavorRef" : "52415800-8b69-11e0-9b19-734f1195ff37",
 
192
        "config_drive" : "http://servers.api.openstack.org/1234/images/52415800-8b69-11e0-9b19-734f6f006e54",
 
193
        "metadata" : {
 
194
            "My Server Name" : "Apache1" 
 
195
        },
 
196
        "personality" : [
 
197
            {
 
198
                "path" : "/etc/banner.txt",
 
199
                "contents" : "ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
 
200
 dCBtb3ZlcyBpbiBqdXN0IHN1Y2ggYSBkaXJlY3Rpb24gYW5k
 
201
 IGF0IHN1Y2ggYSBzcGVlZC4uLkl0IGZlZWxzIGFuIGltcHVs
 
202
 c2lvbi4uLnRoaXMgaXMgdGhlIHBsYWNlIHRvIGdvIG5vdy4g
 
203
 QnV0IHRoZSBza3kga25vd3MgdGhlIHJlYXNvbnMgYW5kIHRo
 
204
 ZSBwYXR0ZXJucyBiZWhpbmQgYWxsIGNsb3VkcywgYW5kIHlv
 
205
 dSB3aWxsIGtub3csIHRvbywgd2hlbiB5b3UgbGlmdCB5b3Vy
 
206
 c2VsZiBoaWdoIGVub3VnaCB0byBzZWUgYmV5b25kIGhvcml6
 
207
 b25zLiINCg0KLVJpY2hhcmQgQmFjaA==" 
 
208
            } 
 
209
        ] 
 
210
    }
 
211
}