Class VolumeAttach


  • public class VolumeAttach
    extends com.pulumi.resources.CustomResource
    Attaches a Block Storage Volume to an Instance using the OpenStack Compute (Nova) v2 API. ## Example Usage ### Basic attachment of a single volume to a single instance ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.openstack.blockstorage.Volume; import com.pulumi.openstack.blockstorage.VolumeArgs; import com.pulumi.openstack.compute.Instance; import com.pulumi.openstack.compute.InstanceArgs; import com.pulumi.openstack.compute.VolumeAttach; import com.pulumi.openstack.compute.VolumeAttachArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var volume1 = new Volume("volume1", VolumeArgs.builder() .size(1) .build()); var instance1 = new Instance("instance1", InstanceArgs.builder() .securityGroups("default") .build()); var va1 = new VolumeAttach("va1", VolumeAttachArgs.builder() .instanceId(instance1.id()) .volumeId(volume1.id()) .build()); } } ``` ### Using Multiattach-enabled volumes Multiattach Volumes are dependent upon your OpenStack cloud and not all clouds support multiattach. ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.openstack.blockstorage.Volume; import com.pulumi.openstack.blockstorage.VolumeArgs; import com.pulumi.openstack.compute.Instance; import com.pulumi.openstack.compute.InstanceArgs; import com.pulumi.openstack.compute.VolumeAttach; import com.pulumi.openstack.compute.VolumeAttachArgs; import com.pulumi.resources.CustomResourceOptions; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var volume1 = new Volume("volume1", VolumeArgs.builder() .size(1) .multiattach(true) .build()); var instance1 = new Instance("instance1", InstanceArgs.builder() .securityGroups("default") .build()); var instance2 = new Instance("instance2", InstanceArgs.builder() .securityGroups("default") .build()); var va1 = new VolumeAttach("va1", VolumeAttachArgs.builder() .instanceId(instance1.id()) .volumeId(volume1.id()) .multiattach(true) .build()); var va2 = new VolumeAttach("va2", VolumeAttachArgs.builder() .instanceId(instance2.id()) .volumeId(volume1.id()) .multiattach(true) .build(), CustomResourceOptions.builder() .dependsOn("openstack_compute_volume_attach_v2.va_1") .build()); } } ``` It is recommended to use `depends_on` for the attach resources to enforce the volume attachments to happen one at a time. ## Import Volume Attachments can be imported using the Instance ID and Volume ID separated by a slash, e.g. ```sh $ pulumi import openstack:compute/volumeAttach:VolumeAttach va_1 89c60255-9bd6-460c-822a-e2b959ede9d2/45670584-225f-46c3-b33e-6707b589b666 ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.lang.String> device()  
      static VolumeAttach get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, VolumeAttachState state, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.lang.String> instanceId()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> multiattach()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<java.util.Optional<VolumeAttachVendorOptions>> vendorOptions()  
      com.pulumi.core.Output<java.lang.String> volumeId()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • VolumeAttach

        public VolumeAttach​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • VolumeAttach

        public VolumeAttach​(java.lang.String name,
                            VolumeAttachArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • VolumeAttach

        public VolumeAttach​(java.lang.String name,
                            VolumeAttachArgs args,
                            @Nullable
                            com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • device

        public com.pulumi.core.Output<java.lang.String> device()
      • instanceId

        public com.pulumi.core.Output<java.lang.String> instanceId()
        Returns:
        The ID of the Instance to attach the Volume to.
      • multiattach

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> multiattach()
        Returns:
        Enable attachment of multiattach-capable volumes.
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        The region in which to obtain the V2 Compute client. A Compute client is needed to create a volume attachment. If omitted, the `region` argument of the provider is used. Changing this creates a new volume attachment.
      • vendorOptions

        public com.pulumi.core.Output<java.util.Optional<VolumeAttachVendorOptions>> vendorOptions()
        Returns:
        Map of additional vendor-specific options. Supported options are described below.
      • volumeId

        public com.pulumi.core.Output<java.lang.String> volumeId()
        Returns:
        The ID of the Volume to attach to an Instance.
      • get

        public static VolumeAttach get​(java.lang.String name,
                                       com.pulumi.core.Output<java.lang.String> id,
                                       @Nullable
                                       VolumeAttachState state,
                                       @Nullable
                                       com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.