openstack_blockstorage_volume_attach_v2
This resource is experimental and may be removed in the future! Feedback is requested if you find this resource useful or if you find any problems with it.
Creates a general purpose attachment connection to a Block Storage volume using the OpenStack Block Storage (Cinder) v2 API. Depending on your Block Storage service configuration, this resource can assist in attaching a volume to a non-OpenStack resource such as a bare-metal server or a remote virtual machine in a different cloud provider.
This does not actually attach a volume to an instance. Please use the openstack_compute_volume_attach_v2
resource for that.
Example Usage
resource "openstack_blockstorage_volume_v2" "volume_1" { name = "volume_1" size = 1 } resource "openstack_blockstorage_volume_attach_v2" "va_1" { volume_id = "${openstack_blockstorage_volume_v2.volume_1.id}" device = "auto" host_name = "devstack" ip_address = "192.168.255.10" initiator = "iqn.1993-08.org.debian:01:e9861fb1859" os_type = "linux2" platform = "x86_64" }
Argument Reference
The following arguments are supported:
-
region
- (Optional) The region in which to obtain the V2 Block Storage client. A Block Storage client is needed to create a volume attachment. If omitted, theregion
argument of the provider is used. Changing this creates a new volume attachment. -
attach_mode
- (Optional) Specify whether to attach the volume as Read-Only (ro
) or Read-Write (rw
). Only values ofro
andrw
are accepted. If left unspecified, the Block Storage API will apply a default ofrw
. -
device
- (Optional) The device to tell the Block Storage service this volume will be attached as. This is purely for informational purposes. You can specifyauto
or a device such as/dev/vdc
. -
host_name
- (Required) The host to attach the volume to. -
initiator
- (Optional) The iSCSI initiator string to make the connection. -
ip_address
- (Optional) The IP address of thehost_name
above. -
multipath
- (Optional) Whether to connect to this volume via multipath. -
os_type
- (Optional) The iSCSI initiator OS type. -
platform
- (Optional) The iSCSI initiator platform. -
volume_id
- (Required) The ID of the Volume to attach to an Instance. -
wwpn
- (Optional) An array of wwpn strings. Used for Fibre Channel connections. -
wwnn
- (Optional) A wwnn name. Used for Fibre Channel connections.
Attributes Reference
In addition to the above, the following attributes are exported:
-
data
- This is a map of key/value pairs that contain the connection information. You will want to pass this information to a provisioner script to finalize the connection. See below for more information. -
driver_volume_type
- The storage driver that the volume is based on. -
mount_point_base
- A mount point base name for shared storage.
Volume Connection Data
Upon creation of this resource, a data
exported attribute will be available. This attribute is a set of key/value pairs that contains the information required to complete the block storage connection.
As an example, creating an iSCSI-based volume will return the following:
data.access_mode = rw data.auth_method = CHAP data.auth_password = xUhbGKQ8QCwKmHQ2 data.auth_username = Sphn5X4EoyFUUMYVYSA4 data.target_iqn = iqn.2010-10.org.openstack:volume-2d87ed25-c312-4f42-be1d-3b36b014561d data.target_portal = 192.168.255.10:3260 data.volume_id = 2d87ed25-c312-4f42-be1d-3b36b014561d
This information can then be fed into a provisioner or a template shell script, where the final result would look something like:
iscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --interface default --op new iscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.authmethod -v ${self.data.auth_method} iscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.username -v ${self.data.auth_username} iscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.session.auth.password -v ${self.data.auth_password} iscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --login iscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --op update -n node.startup -v automatic iscsiadm -m node -T ${self.data.target_iqn} -p ${self.data.target_portal} --rescan
The contents of data
will vary from each Block Storage service. You must have a good understanding of how the service is configured and how to make the appropriate final connection. However, if used correctly, this has the flexibility to be able to attach OpenStack Block Storage volumes to non-OpenStack resources.
Import
It is not possible to import this resource.
© 2018 HashiCorpLicensed under the MPL 2.0 License.
https://www.terraform.io/docs/providers/openstack/r/blockstorage_volume_attach_v2.html