github.com/npaton/distribution@v2.3.1-rc.0+incompatible/docs/storage-drivers/swift.md (about) 1 <!--[metadata]> 2 +++ 3 title = "Swift storage driver" 4 description = "Explains how to use the OpenStack swift storage driver" 5 keywords = ["registry, service, driver, images, storage, swift"] 6 +++ 7 <![end-metadata]--> 8 9 10 # OpenStack Swift storage driver 11 12 An implementation of the `storagedriver.StorageDriver` interface that uses [OpenStack Swift](http://docs.openstack.org/developer/swift/) for object storage. 13 14 ## Parameters 15 16 17 <table> 18 <tr> 19 <th>Parameter</th> 20 <th>Required</th> 21 <th>Description</th> 22 </tr> 23 <tr> 24 <td> 25 <code>authurl</code> 26 </td> 27 <td> 28 yes 29 </td> 30 <td> 31 URL for obtaining an auth token. https://storage.myprovider.com/v2.0 or https://storage.myprovider.com/v3/auth 32 </td> 33 </tr> 34 <tr> 35 <td> 36 <code>username</code> 37 </td> 38 <td> 39 yes 40 </td> 41 <td> 42 Your Openstack user name. 43 </td> 44 </tr> 45 <tr> 46 <td> 47 <code>password</code> 48 </td> 49 <td> 50 yes 51 </td> 52 <td> 53 Your Openstack password. 54 </td> 55 </tr> 56 <tr> 57 <td> 58 <code>region</code> 59 </td> 60 <td> 61 no 62 </td> 63 <td> 64 The Openstack region in which your container exists. 65 </td> 66 </tr> 67 <tr> 68 <td> 69 <code>container</code> 70 </td> 71 <td> 72 yes 73 </td> 74 <td> 75 The name of your Swift container where you wish to store the registry's data. The driver creates the named container during its initialization. 76 </td> 77 </tr> 78 <tr> 79 <td> 80 <code>tenant</code> 81 </td> 82 <td> 83 no 84 </td> 85 <td> 86 Your Openstack tenant name. You can either use <code>tenant</code> or <code>tenantid</code>. 87 </td> 88 </tr> 89 <tr> 90 <td> 91 <code>tenantid</code> 92 </td> 93 <td> 94 no 95 </td> 96 <td> 97 Your Openstack tenant id. You can either use <code>tenant</code> or <code>tenantid</code>. 98 </td> 99 </tr> 100 <tr> 101 <td> 102 <code>domain</code> 103 </td> 104 <td> 105 no 106 </td> 107 <td> 108 Your Openstack domain name for Identity v3 API. You can either use <code>domain</code> or <code>domainid</code>. 109 </td> 110 </tr> 111 <tr> 112 <td> 113 <code>domainid</code> 114 </td> 115 <td> 116 no 117 </td> 118 <td> 119 Your Openstack domain id for Identity v3 API. You can either use <code>domain</code> or <code>domainid</code>. 120 </td> 121 </tr> 122 <tr> 123 <td> 124 <code>trustid</code> 125 </td> 126 <td> 127 no 128 </td> 129 <td> 130 Your Openstack trust id for Identity v3 API. 131 </td> 132 </tr> 133 <tr> 134 <td> 135 <code>insecureskipverify</code> 136 </td> 137 <td> 138 no 139 </td> 140 <td> 141 true to skip TLS verification, false by default. 142 </td> 143 </tr> 144 <tr> 145 <td> 146 <code>chunksize</code> 147 </td> 148 <td> 149 no 150 </td> 151 <td> 152 Size of the data segments for the Swift Dynamic Large Objects. This value should be a number (defaults to 5M). 153 </td> 154 </tr> 155 <tr> 156 <td> 157 <code>prefix</code> 158 </td> 159 <td> 160 no 161 </td> 162 <td> 163 This is a prefix that will be applied to all Swift keys to allow you to segment data in your container if necessary. Defaults to the empty string which is the container's root. 164 </td> 165 </tr> 166 <tr> 167 <td> 168 <code>secretkey</code> 169 </td> 170 <td> 171 no 172 </td> 173 <td> 174 The secret key used to generate temporary URLs. 175 </td> 176 </tr> 177 <tr> 178 <td> 179 <code>accesskey</code> 180 </td> 181 <td> 182 no 183 </td> 184 <td> 185 The access key to generate temporary URLs. It is used by HP Cloud Object Storage in addition to the `secretkey` parameter. 186 </td> 187 </tr> 188 </table> 189 190 191 <table> 192 <tr> 193 <td> 194 <code>authurl</code> 195 </td> 196 <td> 197 <p>URL for obtaining an auth token.</p> 198 </td> 199 </tr> 200 <tr> 201 <td> 202 <code>username</code> 203 </td> 204 <td> 205 <p> 206 Your OpenStack user name.</p> 207 </p> 208 </td> 209 </tr> 210 <tr> 211 <td> 212 <code>password</code> 213 <p> 214 </td> 215 <td> 216 <p> 217 Your OpenStack password. 218 </p> 219 </td> 220 </tr> 221 <tr> 222 <td> 223 <code>container</code> 224 </td> 225 <td> 226 <p> 227 The name of your Swift container where you wish to store the registry's data. The driver creates the named container during its initialization. 228 </p> 229 </td> 230 </tr> 231 <tr> 232 <td> 233 <code>tenant</code> 234 </td> 235 <td> 236 <p> 237 Optionally, your OpenStack tenant name. You can either use <code>tenant</code> or <code>tenantid</code>. 238 </p> 239 </td> 240 </tr> 241 <tr> 242 <td> 243 <code>tenantid</code> 244 </td> 245 <td> 246 <p> 247 Optionally, your OpenStack tenant id. You can either use <code>tenant</code> or <code>tenantid</code>. 248 </p> 249 </td> 250 </tr> 251 <tr> 252 <td> 253 <code>domain</code> 254 </td> 255 <td> 256 <p> 257 Optionally, your OpenStack domain name for Identity v3 API. You can either use <code>domain</code> or <code>domainid</code>. 258 </p> 259 </td> 260 </tr> 261 <tr> 262 <td> 263 <code>domainid</code> 264 </td> 265 <td> 266 <p> 267 Optionally, your OpenStack domain id for Identity v3 API. You can either use <code>domain</code> or <code>domainid</code>. 268 </p> 269 </td> 270 </tr> 271 <tr> 272 <td> 273 <code>trustid</code> 274 </td> 275 <td> 276 <p> 277 Optionally, your OpenStack trust id for Identity v3 API. 278 </p> 279 </td> 280 </tr> 281 <tr> 282 <td> 283 <code>insecureskipverify</code> 284 </td> 285 <td> 286 <p> 287 Optionally, set <code>insecureskipverify</code> to true to skip TLS verification for your OpenStack provider. The driver uses false by default. 288 </p> 289 </td> 290 </tr> 291 <tr> 292 <td> 293 <code>region</code> 294 </td> 295 <td> 296 <p> 297 Optionally, specify the OpenStack region name in which you would like to store objects (for example <code>fr</code>). 298 </p> 299 </td> 300 </tr> 301 <tr> 302 <td> 303 <code>chunksize</code> 304 </td> 305 <td> 306 <p> 307 Optionally, specify the segment size for Dynamic Large Objects uploads (performed by WriteStream) to Swift. The default is 5 MB. You might experience better performance for larger chunk sizes depending on the speed of your connection to Swift. 308 </p> 309 </td> 310 </tr> 311 <tr> 312 <td> 313 <code>prefix</code> 314 </td> 315 <td> 316 <p> 317 Optionally, supply a prefix that will be applied to all Swift keys to allow you to segment data in your container if necessary. Defaults to the empty string which is the container's root.</p> 318 </p> 319 </td> 320 </tr> 321 <tr> 322 <td> 323 <code>secretkey</code> 324 </td> 325 <td> 326 <p> 327 Optionally, the secret key used to generate temporary URLs.</p> 328 </p> 329 </td> 330 </tr> 331 <tr> 332 <td> 333 <code>accesskey</code> 334 </td> 335 <td> 336 <p> 337 Optionally, the access key to generate temporary URLs. It is used by HP Cloud Object Storage in addition to the `secretkey` parameter.</p> 338 </p> 339 </td> 340 </tr> 341 </table> 342 343 The features supported by the Swift server are queried by requesting the `/info` URL on the server. In case the administrator 344 disabled that feature, the configuration file can specify the following optional parameters : 345 346 <table> 347 <tr> 348 <td> 349 <code>tempurlcontainerkey</code> 350 </td> 351 <td> 352 <p> 353 Specify whether to use container secret key to generate temporary URL when set to true, or the account secret key otherwise.</p> 354 </p> 355 </td> 356 </tr> 357 <tr> 358 <td> 359 <code>tempurlmethods</code> 360 </td> 361 <td> 362 <p> 363 Array of HTTP methods that are supported by the TempURL middleware of the Swift server. Example:</p> 364 <code> 365 - tempurlmethods: 366 - GET 367 - PUT 368 - HEAD 369 - POST 370 - DELETE 371 </code> 372 </p> 373 </td> 374 </tr> 375 </table>