@pulumi/openstack 5.4.1 → 5.4.2-alpha.1775837740

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/bgpvpn/networkAssociateV2.d.ts +0 -12
  2. package/bgpvpn/networkAssociateV2.js +0 -12
  3. package/bgpvpn/networkAssociateV2.js.map +1 -1
  4. package/bgpvpn/portAssociateV2.d.ts +0 -12
  5. package/bgpvpn/portAssociateV2.js +0 -12
  6. package/bgpvpn/portAssociateV2.js.map +1 -1
  7. package/bgpvpn/routerAssociateV2.d.ts +0 -12
  8. package/bgpvpn/routerAssociateV2.js +0 -12
  9. package/bgpvpn/routerAssociateV2.js.map +1 -1
  10. package/bgpvpn/v2.d.ts +0 -10
  11. package/bgpvpn/v2.js +0 -10
  12. package/bgpvpn/v2.js.map +1 -1
  13. package/bgpvpnNetworkAssociateV2.d.ts +0 -12
  14. package/bgpvpnNetworkAssociateV2.js +0 -12
  15. package/bgpvpnNetworkAssociateV2.js.map +1 -1
  16. package/bgpvpnPortAssociateV2.d.ts +0 -12
  17. package/bgpvpnPortAssociateV2.js +0 -12
  18. package/bgpvpnPortAssociateV2.js.map +1 -1
  19. package/bgpvpnRouterAssociateV2.d.ts +0 -12
  20. package/bgpvpnRouterAssociateV2.js +0 -12
  21. package/bgpvpnRouterAssociateV2.js.map +1 -1
  22. package/bgpvpnV2.d.ts +0 -10
  23. package/bgpvpnV2.js +0 -10
  24. package/bgpvpnV2.js.map +1 -1
  25. package/blockstorage/qosV3.d.ts +1 -1
  26. package/blockstorage/qosV3.js +1 -1
  27. package/blockstorage/volumeTypeV3.d.ts +1 -1
  28. package/blockstorage/volumeTypeV3.js +1 -1
  29. package/compute/aggregateV2.d.ts +2 -7
  30. package/compute/aggregateV2.js +2 -7
  31. package/compute/aggregateV2.js.map +1 -1
  32. package/compute/instance.d.ts +600 -0
  33. package/compute/instance.js +592 -0
  34. package/compute/instance.js.map +1 -1
  35. package/compute/keypair.d.ts +8 -0
  36. package/compute/keypair.js +8 -0
  37. package/compute/keypair.js.map +1 -1
  38. package/compute/volumeAttach.d.ts +24 -0
  39. package/compute/volumeAttach.js.map +1 -1
  40. package/database/configuration.d.ts +30 -0
  41. package/database/configuration.js +30 -0
  42. package/database/configuration.js.map +1 -1
  43. package/dns/recordSet.d.ts +0 -3
  44. package/dns/recordSet.js +0 -3
  45. package/dns/recordSet.js.map +1 -1
  46. package/dns/zone.d.ts +0 -3
  47. package/dns/zone.js +0 -3
  48. package/dns/zone.js.map +1 -1
  49. package/dns/zoneShareV2.d.ts +0 -5
  50. package/dns/zoneShareV2.js +0 -5
  51. package/dns/zoneShareV2.js.map +1 -1
  52. package/identity/getAuthScope.d.ts +96 -0
  53. package/identity/getAuthScope.js +96 -0
  54. package/identity/getAuthScope.js.map +1 -1
  55. package/images/image.d.ts +15 -0
  56. package/images/image.js.map +1 -1
  57. package/images/imageAccess.d.ts +2 -3
  58. package/images/imageAccess.js +2 -3
  59. package/images/imageAccess.js.map +1 -1
  60. package/images/imageAccessAccept.d.ts +2 -2
  61. package/images/imageAccessAccept.js +2 -2
  62. package/keymanager/getSecret.d.ts +16 -0
  63. package/keymanager/getSecret.js +16 -0
  64. package/keymanager/getSecret.js.map +1 -1
  65. package/keymanager/secretV1.d.ts +7 -0
  66. package/keymanager/secretV1.js +7 -0
  67. package/keymanager/secretV1.js.map +1 -1
  68. package/lbFlavorprofileV2.d.ts +0 -1
  69. package/lbFlavorprofileV2.js +0 -1
  70. package/lbFlavorprofileV2.js.map +1 -1
  71. package/loadbalancer/flavorprofileV2.d.ts +0 -1
  72. package/loadbalancer/flavorprofileV2.js +0 -1
  73. package/loadbalancer/flavorprofileV2.js.map +1 -1
  74. package/loadbalancer/monitor.d.ts +1 -0
  75. package/loadbalancer/monitor.js +1 -0
  76. package/loadbalancer/monitor.js.map +1 -1
  77. package/loadbalancer/quota.d.ts +1 -1
  78. package/loadbalancer/quota.js +1 -1
  79. package/networking/floatingIp.d.ts +37 -0
  80. package/networking/floatingIp.js +37 -0
  81. package/networking/floatingIp.js.map +1 -1
  82. package/networking/portSecGroupAssociate.d.ts +12 -0
  83. package/networking/portSecGroupAssociate.js +12 -0
  84. package/networking/portSecGroupAssociate.js.map +1 -1
  85. package/networking/routerInterface.d.ts +1 -2
  86. package/networking/routerInterface.js +1 -2
  87. package/networking/routerInterface.js.map +1 -1
  88. package/networking/routerRoute.d.ts +1 -1
  89. package/networking/routerRoute.js +1 -1
  90. package/networking/secGroup.d.ts +46 -0
  91. package/networking/secGroup.js +46 -0
  92. package/networking/secGroup.js.map +1 -1
  93. package/networking/subnetRoute.d.ts +1 -1
  94. package/networking/subnetRoute.js +1 -1
  95. package/objectstorage/container.d.ts +4 -4
  96. package/objectstorage/container.js +4 -4
  97. package/package.json +2 -2
  98. package/sharedfilesystem/shareAccess.d.ts +8 -0
  99. package/sharedfilesystem/shareAccess.js +8 -0
  100. package/sharedfilesystem/shareAccess.js.map +1 -1
@@ -5,6 +5,598 @@ Object.defineProperty(exports, "__esModule", { value: true });
5
5
  exports.Instance = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("../utilities");
8
+ /**
9
+ * Manages a V2 VM instance resource within OpenStack.
10
+ *
11
+ * > **Note:** All arguments including the instance admin password will be stored
12
+ * in the raw state as plain-text. Read more about sensitive data in
13
+ * state.
14
+ *
15
+ * ## Example Usage
16
+ *
17
+ * ### Basic Instance
18
+ *
19
+ * ```typescript
20
+ * import * as pulumi from "@pulumi/pulumi";
21
+ * import * as openstack from "@pulumi/openstack";
22
+ *
23
+ * const basic = new openstack.compute.Instance("basic", {
24
+ * name: "basic",
25
+ * imageId: "ad091b52-742f-469e-8f3c-fd81cadf0743",
26
+ * flavorId: "3",
27
+ * keyPair: "my_key_pair_name",
28
+ * securityGroups: ["default"],
29
+ * metadata: {
30
+ * "this": "that",
31
+ * },
32
+ * networks: [{
33
+ * name: "my_network",
34
+ * }],
35
+ * });
36
+ * ```
37
+ *
38
+ * ### Instance With Attached Volume
39
+ *
40
+ * ```typescript
41
+ * import * as pulumi from "@pulumi/pulumi";
42
+ * import * as openstack from "@pulumi/openstack";
43
+ *
44
+ * const myvol = new openstack.blockstorage.Volume("myvol", {
45
+ * name: "myvol",
46
+ * size: 1,
47
+ * });
48
+ * const myinstance = new openstack.compute.Instance("myinstance", {
49
+ * name: "myinstance",
50
+ * imageId: "ad091b52-742f-469e-8f3c-fd81cadf0743",
51
+ * flavorId: "3",
52
+ * keyPair: "my_key_pair_name",
53
+ * securityGroups: ["default"],
54
+ * networks: [{
55
+ * name: "my_network",
56
+ * }],
57
+ * });
58
+ * const attached = new openstack.compute.VolumeAttach("attached", {
59
+ * instanceId: myinstance.id,
60
+ * volumeId: myvol.id,
61
+ * });
62
+ * ```
63
+ *
64
+ * ### Boot From Volume
65
+ *
66
+ * ```typescript
67
+ * import * as pulumi from "@pulumi/pulumi";
68
+ * import * as openstack from "@pulumi/openstack";
69
+ *
70
+ * const boot_from_volume = new openstack.compute.Instance("boot-from-volume", {
71
+ * name: "boot-from-volume",
72
+ * flavorId: "3",
73
+ * keyPair: "my_key_pair_name",
74
+ * securityGroups: ["default"],
75
+ * blockDevices: [{
76
+ * uuid: "<image-id>",
77
+ * sourceType: "image",
78
+ * volumeSize: 5,
79
+ * bootIndex: 0,
80
+ * destinationType: "volume",
81
+ * deleteOnTermination: true,
82
+ * }],
83
+ * networks: [{
84
+ * name: "my_network",
85
+ * }],
86
+ * });
87
+ * ```
88
+ *
89
+ * ### Boot From an Existing Volume
90
+ *
91
+ * ```typescript
92
+ * import * as pulumi from "@pulumi/pulumi";
93
+ * import * as openstack from "@pulumi/openstack";
94
+ *
95
+ * const myvol = new openstack.blockstorage.Volume("myvol", {
96
+ * name: "myvol",
97
+ * size: 5,
98
+ * imageId: "<image-id>",
99
+ * });
100
+ * const boot_from_volume = new openstack.compute.Instance("boot-from-volume", {
101
+ * name: "bootfromvolume",
102
+ * flavorId: "3",
103
+ * keyPair: "my_key_pair_name",
104
+ * securityGroups: ["default"],
105
+ * blockDevices: [{
106
+ * uuid: myvol.id,
107
+ * sourceType: "volume",
108
+ * bootIndex: 0,
109
+ * destinationType: "volume",
110
+ * deleteOnTermination: true,
111
+ * }],
112
+ * networks: [{
113
+ * name: "my_network",
114
+ * }],
115
+ * });
116
+ * ```
117
+ *
118
+ * ### Boot Instance, Create Volume, and Attach Volume as a Block Device
119
+ *
120
+ * ```typescript
121
+ * import * as pulumi from "@pulumi/pulumi";
122
+ * import * as openstack from "@pulumi/openstack";
123
+ *
124
+ * const instance1 = new openstack.compute.Instance("instance_1", {
125
+ * name: "instance_1",
126
+ * imageId: "<image-id>",
127
+ * flavorId: "3",
128
+ * keyPair: "my_key_pair_name",
129
+ * securityGroups: ["default"],
130
+ * blockDevices: [
131
+ * {
132
+ * uuid: "<image-id>",
133
+ * sourceType: "image",
134
+ * destinationType: "local",
135
+ * bootIndex: 0,
136
+ * deleteOnTermination: true,
137
+ * },
138
+ * {
139
+ * sourceType: "blank",
140
+ * destinationType: "volume",
141
+ * volumeSize: 1,
142
+ * bootIndex: 1,
143
+ * deleteOnTermination: true,
144
+ * },
145
+ * ],
146
+ * });
147
+ * ```
148
+ *
149
+ * ### Boot Instance and Attach Existing Volume as a Block Device
150
+ *
151
+ * ```typescript
152
+ * import * as pulumi from "@pulumi/pulumi";
153
+ * import * as openstack from "@pulumi/openstack";
154
+ *
155
+ * const volume1 = new openstack.blockstorage.Volume("volume_1", {
156
+ * name: "volume_1",
157
+ * size: 1,
158
+ * });
159
+ * const instance1 = new openstack.compute.Instance("instance_1", {
160
+ * name: "instance_1",
161
+ * imageId: "<image-id>",
162
+ * flavorId: "3",
163
+ * keyPair: "my_key_pair_name",
164
+ * securityGroups: ["default"],
165
+ * blockDevices: [
166
+ * {
167
+ * uuid: "<image-id>",
168
+ * sourceType: "image",
169
+ * destinationType: "local",
170
+ * bootIndex: 0,
171
+ * deleteOnTermination: true,
172
+ * },
173
+ * {
174
+ * uuid: volume1.id,
175
+ * sourceType: "volume",
176
+ * destinationType: "volume",
177
+ * bootIndex: 1,
178
+ * deleteOnTermination: true,
179
+ * },
180
+ * ],
181
+ * });
182
+ * ```
183
+ *
184
+ * ### Instance With Multiple Networks
185
+ *
186
+ * ```typescript
187
+ * import * as pulumi from "@pulumi/pulumi";
188
+ * import * as openstack from "@pulumi/openstack";
189
+ *
190
+ * const myip = new openstack.networking.FloatingIp("myip", {pool: "my_pool"});
191
+ * const multi_net = new openstack.compute.Instance("multi-net", {
192
+ * name: "multi-net",
193
+ * imageId: "ad091b52-742f-469e-8f3c-fd81cadf0743",
194
+ * flavorId: "3",
195
+ * keyPair: "my_key_pair_name",
196
+ * securityGroups: ["default"],
197
+ * networks: [
198
+ * {
199
+ * name: "my_first_network",
200
+ * },
201
+ * {
202
+ * name: "my_second_network",
203
+ * },
204
+ * ],
205
+ * });
206
+ * const vm_port = pulumi.all([multi_net.id, multi_net.networks]).apply(([id, networks]) => openstack.networking.getPortOutput({
207
+ * deviceId: id,
208
+ * networkId: networks[1].uuid,
209
+ * }));
210
+ * const fipVm = new openstack.networking.FloatingIpAssociate("fip_vm", {
211
+ * floatingIp: myip.address,
212
+ * portId: vm_port.apply(vm_port => vm_port.id),
213
+ * });
214
+ * ```
215
+ *
216
+ * ### Instance With Personality
217
+ *
218
+ * ```typescript
219
+ * import * as pulumi from "@pulumi/pulumi";
220
+ * import * as openstack from "@pulumi/openstack";
221
+ *
222
+ * const personality = new openstack.compute.Instance("personality", {
223
+ * name: "personality",
224
+ * imageId: "ad091b52-742f-469e-8f3c-fd81cadf0743",
225
+ * flavorId: "3",
226
+ * keyPair: "my_key_pair_name",
227
+ * securityGroups: ["default"],
228
+ * personalities: [{
229
+ * file: "/path/to/file/on/instance.txt",
230
+ * content: "contents of file",
231
+ * }],
232
+ * networks: [{
233
+ * name: "my_network",
234
+ * }],
235
+ * });
236
+ * ```
237
+ *
238
+ * ### Instance with Multiple Ephemeral Disks
239
+ *
240
+ * ```typescript
241
+ * import * as pulumi from "@pulumi/pulumi";
242
+ * import * as openstack from "@pulumi/openstack";
243
+ *
244
+ * const multi_eph = new openstack.compute.Instance("multi-eph", {
245
+ * name: "multi_eph",
246
+ * imageId: "ad091b52-742f-469e-8f3c-fd81cadf0743",
247
+ * flavorId: "3",
248
+ * keyPair: "my_key_pair_name",
249
+ * securityGroups: ["default"],
250
+ * blockDevices: [
251
+ * {
252
+ * bootIndex: 0,
253
+ * deleteOnTermination: true,
254
+ * destinationType: "local",
255
+ * sourceType: "image",
256
+ * uuid: "<image-id>",
257
+ * },
258
+ * {
259
+ * bootIndex: -1,
260
+ * deleteOnTermination: true,
261
+ * destinationType: "local",
262
+ * sourceType: "blank",
263
+ * volumeSize: 1,
264
+ * guestFormat: "ext4",
265
+ * },
266
+ * {
267
+ * bootIndex: -1,
268
+ * deleteOnTermination: true,
269
+ * destinationType: "local",
270
+ * sourceType: "blank",
271
+ * volumeSize: 1,
272
+ * },
273
+ * ],
274
+ * });
275
+ * ```
276
+ *
277
+ * ### Instance with Boot Disk and Swap Disk
278
+ *
279
+ * ```typescript
280
+ * import * as pulumi from "@pulumi/pulumi";
281
+ * import * as openstack from "@pulumi/openstack";
282
+ *
283
+ * const flavor_with_swap = new openstack.compute.Flavor("flavor-with-swap", {
284
+ * name: "flavor-with-swap",
285
+ * ram: 8096,
286
+ * vcpus: 2,
287
+ * disk: 20,
288
+ * swap: 4096,
289
+ * });
290
+ * const vm_swap = new openstack.compute.Instance("vm-swap", {
291
+ * name: "vm_swap",
292
+ * flavorId: flavor_with_swap.id,
293
+ * keyPair: "my_key_pair_name",
294
+ * securityGroups: ["default"],
295
+ * blockDevices: [
296
+ * {
297
+ * bootIndex: 0,
298
+ * deleteOnTermination: true,
299
+ * destinationType: "local",
300
+ * sourceType: "image",
301
+ * uuid: "<image-id>",
302
+ * },
303
+ * {
304
+ * bootIndex: -1,
305
+ * deleteOnTermination: true,
306
+ * destinationType: "local",
307
+ * sourceType: "blank",
308
+ * guestFormat: "swap",
309
+ * volumeSize: 4,
310
+ * },
311
+ * ],
312
+ * });
313
+ * ```
314
+ *
315
+ * ### Instance with User Data (cloud-init)
316
+ *
317
+ * ```typescript
318
+ * import * as pulumi from "@pulumi/pulumi";
319
+ * import * as openstack from "@pulumi/openstack";
320
+ *
321
+ * const instance1 = new openstack.compute.Instance("instance_1", {
322
+ * name: "basic",
323
+ * imageId: "ad091b52-742f-469e-8f3c-fd81cadf0743",
324
+ * flavorId: "3",
325
+ * keyPair: "my_key_pair_name",
326
+ * securityGroups: ["default"],
327
+ * userData: `#cloud-config
328
+ * hostname: instance_1.example.com
329
+ * fqdn: instance_1.example.com`,
330
+ * networks: [{
331
+ * name: "my_network",
332
+ * }],
333
+ * });
334
+ * ```
335
+ *
336
+ * `userData` can come from a variety of sources: inline, read in from the `file`
337
+ * function, or the `templateCloudinitConfig` resource.
338
+ *
339
+ * ## Notes
340
+ *
341
+ * ### Multiple Ephemeral Disks
342
+ *
343
+ * It's possible to specify multiple `blockDevice` entries to create an instance
344
+ * with multiple ephemeral (local) disks. In order to create multiple ephemeral
345
+ * disks, the sum of the total amount of ephemeral space must be less than or
346
+ * equal to what the chosen flavor supports.
347
+ *
348
+ * The following example shows how to create an instance with multiple ephemeral
349
+ * disks:
350
+ *
351
+ * ```typescript
352
+ * import * as pulumi from "@pulumi/pulumi";
353
+ * import * as openstack from "@pulumi/openstack";
354
+ *
355
+ * const foo = new openstack.compute.Instance("foo", {
356
+ * name: "terraform-test",
357
+ * securityGroups: ["default"],
358
+ * blockDevices: [
359
+ * {
360
+ * bootIndex: 0,
361
+ * deleteOnTermination: true,
362
+ * destinationType: "local",
363
+ * sourceType: "image",
364
+ * uuid: "<image uuid>",
365
+ * },
366
+ * {
367
+ * bootIndex: -1,
368
+ * deleteOnTermination: true,
369
+ * destinationType: "local",
370
+ * sourceType: "blank",
371
+ * volumeSize: 1,
372
+ * },
373
+ * {
374
+ * bootIndex: -1,
375
+ * deleteOnTermination: true,
376
+ * destinationType: "local",
377
+ * sourceType: "blank",
378
+ * volumeSize: 1,
379
+ * },
380
+ * ],
381
+ * });
382
+ * ```
383
+ *
384
+ * ### Instances and Security Groups
385
+ *
386
+ * When referencing a security group resource in an instance resource, always
387
+ * use the _name_ of the security group. If you specify the ID of the security
388
+ * group, Terraform will remove and reapply the security group upon each call.
389
+ * This is because the OpenStack Compute API returns the names of the associated
390
+ * security groups and not their IDs.
391
+ *
392
+ * Note the following example:
393
+ *
394
+ * ```typescript
395
+ * import * as pulumi from "@pulumi/pulumi";
396
+ * import * as openstack from "@pulumi/openstack";
397
+ *
398
+ * const sg1 = new openstack.networking.SecGroup("sg_1", {name: "sg_1"});
399
+ * const foo = new openstack.compute.Instance("foo", {
400
+ * name: "terraform-test",
401
+ * securityGroups: [sg1.name],
402
+ * });
403
+ * ```
404
+ *
405
+ * ### Instances and Ports
406
+ *
407
+ * Neutron Ports are a great feature and provide a lot of functionality. However,
408
+ * there are some notes to be aware of when mixing Instances and Ports:
409
+ *
410
+ * * In OpenStack environments prior to the Kilo release, deleting or recreating
411
+ * an Instance will cause the Instance's Port(s) to be deleted. One way of working
412
+ * around this is to taint any Port(s) used in Instances which are to be recreated.
413
+ * See [here](https://review.openstack.org/#/c/126309/) for further information.
414
+ *
415
+ * * When attaching an Instance to one or more networks using Ports, place the
416
+ * security groups on the Port and not the Instance. If you place the security
417
+ * groups on the Instance, the security groups will not be applied upon creation,
418
+ * but they will be applied upon a refresh. This is a known OpenStack bug.
419
+ *
420
+ * * Network IP information is not available within an instance for networks that
421
+ * are attached with Ports. This is mostly due to the flexibility Neutron Ports
422
+ * provide when it comes to IP addresses. For example, a Neutron Port can have
423
+ * multiple Fixed IP addresses associated with it. It's not possible to know which
424
+ * single IP address the user would want returned to the Instance's state
425
+ * information. Therefore, in order for a Provisioner to connect to an Instance
426
+ * via it's network Port, customize the `connection` information:
427
+ *
428
+ * ```typescript
429
+ * import * as pulumi from "@pulumi/pulumi";
430
+ * import * as openstack from "@pulumi/openstack";
431
+ *
432
+ * const port1 = new openstack.networking.Port("port_1", {
433
+ * name: "port_1",
434
+ * adminStateUp: true,
435
+ * networkId: "0a1d0a27-cffa-4de3-92c5-9d3fd3f2e74d",
436
+ * securityGroupIds: [
437
+ * "2f02d20a-8dca-49b7-b26f-b6ce9fddaf4f",
438
+ * "ca1e5ed7-dae8-4605-987b-fadaeeb30461",
439
+ * ],
440
+ * });
441
+ * const instance1 = new openstack.compute.Instance("instance_1", {
442
+ * name: "instance_1",
443
+ * networks: [{
444
+ * port: port1.id,
445
+ * }],
446
+ * });
447
+ * ```
448
+ *
449
+ * ### Instances and Networks
450
+ *
451
+ * Instances almost always require a network. Here are some notes to be aware of
452
+ * with how Instances and Networks relate:
453
+ *
454
+ * * In scenarios where you only have one network available, you can create an
455
+ * instance without specifying a `network` block. OpenStack will automatically
456
+ * launch the instance on this network.
457
+ *
458
+ * * If you have access to more than one network, you will need to specify a network
459
+ * with a `network` block. Not specifying a network will result in the following
460
+ * error:
461
+ *
462
+ * * If you intend to use the `openstack.compute.InterfaceAttach` resource,
463
+ * you still need to make sure one of the above points is satisfied. An instance
464
+ * cannot be created without a valid network configuration even if you intend to
465
+ * use `openstack.compute.InterfaceAttach` after the instance has been created.
466
+ *
467
+ * ## Importing instances
468
+ *
469
+ * Importing instances can be tricky, since the nova api does not offer all
470
+ * information provided at creation time for later retrieval.
471
+ * Network interface attachment order, and number and sizes of ephemeral
472
+ * disks are examples of this.
473
+ *
474
+ * ### Importing basic instance
475
+ * Assume you want to import an instance with one ephemeral root disk,
476
+ * and one network interface.
477
+ *
478
+ * Your configuration would look like the following:
479
+ *
480
+ * ```typescript
481
+ * import * as pulumi from "@pulumi/pulumi";
482
+ * import * as openstack from "@pulumi/openstack";
483
+ *
484
+ * const basicInstance = new openstack.compute.Instance("basic_instance", {
485
+ * name: "basic",
486
+ * flavorId: "<flavor_id>",
487
+ * keyPair: "<keyname>",
488
+ * securityGroups: ["default"],
489
+ * imageId: "<image_id>",
490
+ * networks: [{
491
+ * name: "<network_name>",
492
+ * }],
493
+ * });
494
+ * ```
495
+ * Then you execute
496
+ *
497
+ * ### Importing an instance with multiple emphemeral disks
498
+ *
499
+ * The importer cannot read the emphemeral disk configuration
500
+ * of an instance, so just specify imageId as in the configuration
501
+ * of the basic instance example.
502
+ *
503
+ * ### Importing instance with multiple network interfaces.
504
+ *
505
+ * Nova returns the network interfaces grouped by network, thus not in creation
506
+ * order.
507
+ * That means that if you have multiple network interfaces you must take
508
+ * care of the order of networks in your configuration.
509
+ *
510
+ * As example we want to import an instance with one ephemeral root disk,
511
+ * and 3 network interfaces.
512
+ *
513
+ * Examples
514
+ *
515
+ * ```typescript
516
+ * import * as pulumi from "@pulumi/pulumi";
517
+ * import * as openstack from "@pulumi/openstack";
518
+ *
519
+ * const boot_from_volume = new openstack.compute.Instance("boot-from-volume", {
520
+ * name: "boot-from-volume",
521
+ * flavorId: "<flavor_id",
522
+ * keyPair: "<keyname>",
523
+ * imageId: "<image_id>",
524
+ * securityGroups: ["default"],
525
+ * networks: [
526
+ * {
527
+ * name: "<network1>",
528
+ * },
529
+ * {
530
+ * name: "<network2>",
531
+ * },
532
+ * {
533
+ * name: "<network1>",
534
+ * fixedIpV4: "<fixed_ip_v4>",
535
+ * },
536
+ * ],
537
+ * });
538
+ * ```
539
+ *
540
+ * In the above configuration the networks are out of order compared to what nova
541
+ * and thus the import code returns, which means the plan will not
542
+ * be empty after import.
543
+ *
544
+ * So either with care check the plan and modify configuration, or read the
545
+ * network order in the state file after import and modify your
546
+ * configuration accordingly.
547
+ *
548
+ * * A note on ports. If you have created a neutron port independent of an
549
+ * instance, then the import code has no way to detect that the port is created
550
+ * idenpendently, and therefore on deletion of imported instances you might have
551
+ * port resources in your project, which you expected to be created by the
552
+ * instance and thus to also be deleted with the instance.
553
+ *
554
+ * ### Importing instances with multiple block storage volumes.
555
+ *
556
+ * We have an instance with two block storage volumes, one bootable and one
557
+ * non-bootable.
558
+ * Note that we only configure the bootable device as block_device.
559
+ * The other volumes can be specified as `openstack.blockstorage.Volume`
560
+ *
561
+ * ```typescript
562
+ * import * as pulumi from "@pulumi/pulumi";
563
+ * import * as openstack from "@pulumi/openstack";
564
+ *
565
+ * const instance2 = new openstack.compute.Instance("instance_2", {
566
+ * name: "instance_2",
567
+ * imageId: "<image_id>",
568
+ * flavorId: "<flavor_id>",
569
+ * keyPair: "<keyname>",
570
+ * securityGroups: ["default"],
571
+ * blockDevices: [{
572
+ * uuid: "<image_id>",
573
+ * sourceType: "image",
574
+ * destinationType: "volume",
575
+ * bootIndex: 0,
576
+ * deleteOnTermination: true,
577
+ * }],
578
+ * networks: [{
579
+ * name: "<network_name>",
580
+ * }],
581
+ * });
582
+ * const volume1 = new openstack.blockstorage.Volume("volume_1", {
583
+ * size: 1,
584
+ * name: "<vol_name>",
585
+ * });
586
+ * const va1 = new openstack.compute.VolumeAttach("va_1", {
587
+ * volumeId: volume1.id,
588
+ * instanceId: instance2.id,
589
+ * });
590
+ * ```
591
+ * To import the instance outlined in the above configuration
592
+ * do the following:
593
+ *
594
+ * * A note on block storage volumes, the importer does not read
595
+ * deleteOnTermination flag, and always assumes true. If you
596
+ * import an instance created with deleteOnTermination false,
597
+ * you end up with "orphaned" volumes after destruction of
598
+ * instances.
599
+ */
8
600
  class Instance extends pulumi.CustomResource {
9
601
  /**
10
602
  * Get an existing Instance resource's state with the given name, ID, and optional extra
@@ -1 +1 @@
1
- {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../compute/instance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"instance.js","sourceRoot":"","sources":["../../compute/instance.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,13 @@
1
1
  import * as pulumi from "@pulumi/pulumi";
2
2
  /**
3
+ * Manages a V2 keypair resource within OpenStack.
4
+ *
5
+ * > **Important Security Notice** The private key generated by this resource will
6
+ * be stored *unencrypted* in your Terraform state file. **Use of this resource
7
+ * for production deployments is *not* recommended**. Instead, generate
8
+ * a private key file outside of Terraform and distribute it securely
9
+ * to the system where Terraform will be run.
10
+ *
3
11
  * ## Example Usage
4
12
  *
5
13
  * ### Import an Existing Public Key
@@ -6,6 +6,14 @@ exports.Keypair = void 0;
6
6
  const pulumi = require("@pulumi/pulumi");
7
7
  const utilities = require("../utilities");
8
8
  /**
9
+ * Manages a V2 keypair resource within OpenStack.
10
+ *
11
+ * > **Important Security Notice** The private key generated by this resource will
12
+ * be stored *unencrypted* in your Terraform state file. **Use of this resource
13
+ * for production deployments is *not* recommended**. Instead, generate
14
+ * a private key file outside of Terraform and distribute it securely
15
+ * to the system where Terraform will be run.
16
+ *
9
17
  * ## Example Usage
10
18
  *
11
19
  * ### Import an Existing Public Key
@@ -1 +1 @@
1
- {"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../compute/keypair.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAa,OAAQ,SAAQ,MAAM,CAAC,cAAc;IAC9C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAoB,EAAE,IAAmC;QAClH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC;IACxD,CAAC;IAiDD,YAAY,IAAY,EAAE,WAAwC,EAAE,IAAmC;QACnG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAuC,CAAC;YACtD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;SACpD;aAAM;YACH,MAAM,IAAI,GAAG,WAAsC,CAAC;YACpD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACpD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,EAAE,uBAAuB,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;;AArGL,0BAsGC;AAxFG,gBAAgB;AACO,oBAAY,GAAG,mCAAmC,CAAC"}
1
+ {"version":3,"file":"keypair.js","sourceRoot":"","sources":["../../compute/keypair.ts"],"names":[],"mappings":";AAAA,sEAAsE;AACtE,iFAAiF;;;AAEjF,yCAAyC;AACzC,0CAA0C;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAa,OAAQ,SAAQ,MAAM,CAAC,cAAc;IAC9C;;;;;;;;OAQG;IACI,MAAM,CAAC,GAAG,CAAC,IAAY,EAAE,EAA2B,EAAE,KAAoB,EAAE,IAAmC;QAClH,OAAO,IAAI,OAAO,CAAC,IAAI,EAAO,KAAK,EAAE,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9D,CAAC;IAKD;;;OAGG;IACI,MAAM,CAAC,UAAU,CAAC,GAAQ;QAC7B,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,EAAE;YACnC,OAAO,KAAK,CAAC;SAChB;QACD,OAAO,GAAG,CAAC,cAAc,CAAC,KAAK,OAAO,CAAC,YAAY,CAAC;IACxD,CAAC;IAiDD,YAAY,IAAY,EAAE,WAAwC,EAAE,IAAmC;QACnG,IAAI,cAAc,GAAkB,EAAE,CAAC;QACvC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,WAAuC,CAAC;YACtD,cAAc,CAAC,aAAa,CAAC,GAAG,KAAK,EAAE,WAAW,CAAC;YACnD,cAAc,CAAC,MAAM,CAAC,GAAG,KAAK,EAAE,IAAI,CAAC;YACrC,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;YACjD,cAAc,CAAC,WAAW,CAAC,GAAG,KAAK,EAAE,SAAS,CAAC;YAC/C,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,QAAQ,CAAC,GAAG,KAAK,EAAE,MAAM,CAAC;YACzC,cAAc,CAAC,YAAY,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC;SACpD;aAAM;YACH,MAAM,IAAI,GAAG,WAAsC,CAAC;YACpD,cAAc,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,IAAI,CAAC;YACpC,cAAc,CAAC,WAAW,CAAC,GAAG,IAAI,EAAE,SAAS,CAAC;YAC9C,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,MAAM,CAAC;YACxC,cAAc,CAAC,YAAY,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC;YAChD,cAAc,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;YAClD,cAAc,CAAC,YAAY,CAAC,GAAG,SAAS,CAAC,OAAO,CAAC;SACpD;QACD,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,SAAS,CAAC,oBAAoB,EAAE,EAAE,IAAI,CAAC,CAAC;QACnE,MAAM,UAAU,GAAG,EAAE,uBAAuB,EAAE,CAAC,YAAY,CAAC,EAAE,CAAC;QAC/D,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,KAAK,CAAC,OAAO,CAAC,YAAY,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,CAAC;IAC5D,CAAC;;AArGL,0BAsGC;AAxFG,gBAAgB;AACO,oBAAY,GAAG,mCAAmC,CAAC"}