vsphere.VmfsDatastore
Explore with Pulumi AI
The vsphere.VmfsDatastore
resource can be used to create and manage VMFS
datastores on an ESXi host or a set of hosts. The resource supports using any
SCSI device that can generally be used in a datastore, such as local disks, or
disks presented to a host or multiple hosts over Fibre Channel or iSCSI.
Devices can be specified manually, or discovered using the
vsphere.getVmfsDisks
data source.
Auto-Mounting of Datastores Within vCenter
Note that the current behavior of this resource will auto-mount any created datastores to any other host within vCenter that has access to the same disk.
Example: You want to create a datastore with a iSCSI LUN that is visible on 3
hosts in a single vSphere cluster (esxi1
, esxi2
and esxi3
). When you
create the datastore on esxi1
, the datastore will be automatically mounted on
esxi2
and esxi3
, without the need to configure the resource on either of
those two hosts.
Future versions of this resource may allow you to control the hosts that a datastore is mounted to, but currently, this automatic behavior cannot be changed, so keep this in mind when writing your configurations and deploying your disks.
Increasing Datastore Size
To increase the size of a datastore, you must add additional disks to the
disks
attribute. Expanding the size of a datastore by increasing the size of
an already provisioned disk is currently not supported (but may be in future
versions of this resource).
NOTE: You cannot decrease the size of a datastore. If the resource detects disks removed from the configuration, the provider will give an error.
Example Usage
Addition of local disks on a single host
The following example uses the default datacenter and default host to add a datastore with local disks to a single ESXi server.
NOTE: There are some situations where datastore creation will not work when working through vCenter (usually when trying to create a datastore on a single host with local disks). If you experience trouble creating the datastore you need through vCenter, break the datastore off into a different configuration and deploy it using the ESXi server as the provider endpoint, using a similar configuration to what is below.
import * as pulumi from "@pulumi/pulumi";
import * as vsphere from "@pulumi/vsphere";
const datacenter = vsphere.getDatacenter({});
const host = datacenter.then(datacenter => vsphere.getHost({
datacenterId: datacenter.id,
}));
const datastore = new vsphere.VmfsDatastore("datastore", {
name: "test",
hostSystemId: esxiHost.id,
disks: [
"mpx.vmhba1:C0:T1:L0",
"mpx.vmhba1:C0:T2:L0",
"mpx.vmhba1:C0:T2:L0",
],
});
import pulumi
import pulumi_vsphere as vsphere
datacenter = vsphere.get_datacenter()
host = vsphere.get_host(datacenter_id=datacenter.id)
datastore = vsphere.VmfsDatastore("datastore",
name="test",
host_system_id=esxi_host["id"],
disks=[
"mpx.vmhba1:C0:T1:L0",
"mpx.vmhba1:C0:T2:L0",
"mpx.vmhba1:C0:T2:L0",
])
package main
import (
"github.com/pulumi/pulumi-vsphere/sdk/v4/go/vsphere"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
datacenter, err := vsphere.LookupDatacenter(ctx, &vsphere.LookupDatacenterArgs{}, nil)
if err != nil {
return err
}
_, err = vsphere.LookupHost(ctx, &vsphere.LookupHostArgs{
DatacenterId: datacenter.Id,
}, nil)
if err != nil {
return err
}
_, err = vsphere.NewVmfsDatastore(ctx, "datastore", &vsphere.VmfsDatastoreArgs{
Name: pulumi.String("test"),
HostSystemId: pulumi.Any(esxiHost.Id),
Disks: pulumi.StringArray{
pulumi.String("mpx.vmhba1:C0:T1:L0"),
pulumi.String("mpx.vmhba1:C0:T2:L0"),
pulumi.String("mpx.vmhba1:C0:T2:L0"),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using VSphere = Pulumi.VSphere;
return await Deployment.RunAsync(() =>
{
var datacenter = VSphere.GetDatacenter.Invoke();
var host = VSphere.GetHost.Invoke(new()
{
DatacenterId = datacenter.Apply(getDatacenterResult => getDatacenterResult.Id),
});
var datastore = new VSphere.VmfsDatastore("datastore", new()
{
Name = "test",
HostSystemId = esxiHost.Id,
Disks = new[]
{
"mpx.vmhba1:C0:T1:L0",
"mpx.vmhba1:C0:T2:L0",
"mpx.vmhba1:C0:T2:L0",
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vsphere.VsphereFunctions;
import com.pulumi.vsphere.inputs.GetDatacenterArgs;
import com.pulumi.vsphere.inputs.GetHostArgs;
import com.pulumi.vsphere.VmfsDatastore;
import com.pulumi.vsphere.VmfsDatastoreArgs;
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) {
final var datacenter = VsphereFunctions.getDatacenter();
final var host = VsphereFunctions.getHost(GetHostArgs.builder()
.datacenterId(datacenter.applyValue(getDatacenterResult -> getDatacenterResult.id()))
.build());
var datastore = new VmfsDatastore("datastore", VmfsDatastoreArgs.builder()
.name("test")
.hostSystemId(esxiHost.id())
.disks(
"mpx.vmhba1:C0:T1:L0",
"mpx.vmhba1:C0:T2:L0",
"mpx.vmhba1:C0:T2:L0")
.build());
}
}
resources:
datastore:
type: vsphere:VmfsDatastore
properties:
name: test
hostSystemId: ${esxiHost.id}
disks:
- mpx.vmhba1:C0:T1:L0
- mpx.vmhba1:C0:T2:L0
- mpx.vmhba1:C0:T2:L0
variables:
datacenter:
fn::invoke:
Function: vsphere:getDatacenter
Arguments: {}
host:
fn::invoke:
Function: vsphere:getHost
Arguments:
datacenterId: ${datacenter.id}
Auto-detection of disks via vsphere.getVmfsDisks
The following example makes use of the
vsphere.getVmfsDisks
data source to auto-detect
exported iSCSI LUNS matching a certain NAA vendor ID (in this case, LUNs
exported from a NetApp). These discovered disks are then loaded
into vsphere.VmfsDatastore
. The datastore is also placed in the
datastore-folder
folder afterwards.
import * as pulumi from "@pulumi/pulumi";
import * as vsphere from "@pulumi/vsphere";
const datacenter = vsphere.getDatacenter({
name: "dc-01",
});
const host = datacenter.then(datacenter => vsphere.getHost({
name: "esxi-01.example.com",
datacenterId: datacenter.id,
}));
const available = host.then(host => vsphere.getVmfsDisks({
hostSystemId: host.id,
rescan: true,
filter: "naa.60a98000",
}));
const datastore = new vsphere.VmfsDatastore("datastore", {
name: "test",
hostSystemId: esxiHost.id,
folder: "datastore-folder",
disks: [available.then(available => available.disks)],
});
import pulumi
import pulumi_vsphere as vsphere
datacenter = vsphere.get_datacenter(name="dc-01")
host = vsphere.get_host(name="esxi-01.example.com",
datacenter_id=datacenter.id)
available = vsphere.get_vmfs_disks(host_system_id=host.id,
rescan=True,
filter="naa.60a98000")
datastore = vsphere.VmfsDatastore("datastore",
name="test",
host_system_id=esxi_host["id"],
folder="datastore-folder",
disks=[available.disks])
package main
import (
"github.com/pulumi/pulumi-vsphere/sdk/v4/go/vsphere"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
datacenter, err := vsphere.LookupDatacenter(ctx, &vsphere.LookupDatacenterArgs{
Name: pulumi.StringRef("dc-01"),
}, nil)
if err != nil {
return err
}
host, err := vsphere.LookupHost(ctx, &vsphere.LookupHostArgs{
Name: pulumi.StringRef("esxi-01.example.com"),
DatacenterId: datacenter.Id,
}, nil)
if err != nil {
return err
}
available, err := vsphere.GetVmfsDisks(ctx, &vsphere.GetVmfsDisksArgs{
HostSystemId: host.Id,
Rescan: pulumi.BoolRef(true),
Filter: pulumi.StringRef("naa.60a98000"),
}, nil)
if err != nil {
return err
}
_, err = vsphere.NewVmfsDatastore(ctx, "datastore", &vsphere.VmfsDatastoreArgs{
Name: pulumi.String("test"),
HostSystemId: pulumi.Any(esxiHost.Id),
Folder: pulumi.String("datastore-folder"),
Disks: pulumi.StringArray{
interface{}(available.Disks),
},
})
if err != nil {
return err
}
return nil
})
}
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using VSphere = Pulumi.VSphere;
return await Deployment.RunAsync(() =>
{
var datacenter = VSphere.GetDatacenter.Invoke(new()
{
Name = "dc-01",
});
var host = VSphere.GetHost.Invoke(new()
{
Name = "esxi-01.example.com",
DatacenterId = datacenter.Apply(getDatacenterResult => getDatacenterResult.Id),
});
var available = VSphere.GetVmfsDisks.Invoke(new()
{
HostSystemId = host.Apply(getHostResult => getHostResult.Id),
Rescan = true,
Filter = "naa.60a98000",
});
var datastore = new VSphere.VmfsDatastore("datastore", new()
{
Name = "test",
HostSystemId = esxiHost.Id,
Folder = "datastore-folder",
Disks = new[]
{
available.Apply(getVmfsDisksResult => getVmfsDisksResult.Disks),
},
});
});
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.vsphere.VsphereFunctions;
import com.pulumi.vsphere.inputs.GetDatacenterArgs;
import com.pulumi.vsphere.inputs.GetHostArgs;
import com.pulumi.vsphere.inputs.GetVmfsDisksArgs;
import com.pulumi.vsphere.VmfsDatastore;
import com.pulumi.vsphere.VmfsDatastoreArgs;
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) {
final var datacenter = VsphereFunctions.getDatacenter(GetDatacenterArgs.builder()
.name("dc-01")
.build());
final var host = VsphereFunctions.getHost(GetHostArgs.builder()
.name("esxi-01.example.com")
.datacenterId(datacenter.applyValue(getDatacenterResult -> getDatacenterResult.id()))
.build());
final var available = VsphereFunctions.getVmfsDisks(GetVmfsDisksArgs.builder()
.hostSystemId(host.applyValue(getHostResult -> getHostResult.id()))
.rescan(true)
.filter("naa.60a98000")
.build());
var datastore = new VmfsDatastore("datastore", VmfsDatastoreArgs.builder()
.name("test")
.hostSystemId(esxiHost.id())
.folder("datastore-folder")
.disks(available.applyValue(getVmfsDisksResult -> getVmfsDisksResult.disks()))
.build());
}
}
resources:
datastore:
type: vsphere:VmfsDatastore
properties:
name: test
hostSystemId: ${esxiHost.id}
folder: datastore-folder
disks:
- ${available.disks}
variables:
datacenter:
fn::invoke:
Function: vsphere:getDatacenter
Arguments:
name: dc-01
host:
fn::invoke:
Function: vsphere:getHost
Arguments:
name: esxi-01.example.com
datacenterId: ${datacenter.id}
available:
fn::invoke:
Function: vsphere:getVmfsDisks
Arguments:
hostSystemId: ${host.id}
rescan: true
filter: naa.60a98000
Create VmfsDatastore Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new VmfsDatastore(name: string, args: VmfsDatastoreArgs, opts?: CustomResourceOptions);
@overload
def VmfsDatastore(resource_name: str,
args: VmfsDatastoreArgs,
opts: Optional[ResourceOptions] = None)
@overload
def VmfsDatastore(resource_name: str,
opts: Optional[ResourceOptions] = None,
disks: Optional[Sequence[str]] = None,
host_system_id: Optional[str] = None,
custom_attributes: Optional[Mapping[str, str]] = None,
datastore_cluster_id: Optional[str] = None,
folder: Optional[str] = None,
name: Optional[str] = None,
tags: Optional[Sequence[str]] = None)
func NewVmfsDatastore(ctx *Context, name string, args VmfsDatastoreArgs, opts ...ResourceOption) (*VmfsDatastore, error)
public VmfsDatastore(string name, VmfsDatastoreArgs args, CustomResourceOptions? opts = null)
public VmfsDatastore(String name, VmfsDatastoreArgs args)
public VmfsDatastore(String name, VmfsDatastoreArgs args, CustomResourceOptions options)
type: vsphere:VmfsDatastore
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args VmfsDatastoreArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args VmfsDatastoreArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args VmfsDatastoreArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args VmfsDatastoreArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args VmfsDatastoreArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var vmfsDatastoreResource = new VSphere.VmfsDatastore("vmfsDatastoreResource", new()
{
Disks = new[]
{
"string",
},
HostSystemId = "string",
CustomAttributes =
{
{ "string", "string" },
},
DatastoreClusterId = "string",
Folder = "string",
Name = "string",
Tags = new[]
{
"string",
},
});
example, err := vsphere.NewVmfsDatastore(ctx, "vmfsDatastoreResource", &vsphere.VmfsDatastoreArgs{
Disks: pulumi.StringArray{
pulumi.String("string"),
},
HostSystemId: pulumi.String("string"),
CustomAttributes: pulumi.StringMap{
"string": pulumi.String("string"),
},
DatastoreClusterId: pulumi.String("string"),
Folder: pulumi.String("string"),
Name: pulumi.String("string"),
Tags: pulumi.StringArray{
pulumi.String("string"),
},
})
var vmfsDatastoreResource = new VmfsDatastore("vmfsDatastoreResource", VmfsDatastoreArgs.builder()
.disks("string")
.hostSystemId("string")
.customAttributes(Map.of("string", "string"))
.datastoreClusterId("string")
.folder("string")
.name("string")
.tags("string")
.build());
vmfs_datastore_resource = vsphere.VmfsDatastore("vmfsDatastoreResource",
disks=["string"],
host_system_id="string",
custom_attributes={
"string": "string",
},
datastore_cluster_id="string",
folder="string",
name="string",
tags=["string"])
const vmfsDatastoreResource = new vsphere.VmfsDatastore("vmfsDatastoreResource", {
disks: ["string"],
hostSystemId: "string",
customAttributes: {
string: "string",
},
datastoreClusterId: "string",
folder: "string",
name: "string",
tags: ["string"],
});
type: vsphere:VmfsDatastore
properties:
customAttributes:
string: string
datastoreClusterId: string
disks:
- string
folder: string
hostSystemId: string
name: string
tags:
- string
VmfsDatastore Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The VmfsDatastore resource accepts the following input properties:
- Disks List<string>
- The disks to use with the datastore.
- Host
System stringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- Custom
Attributes Dictionary<string, string> Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- Datastore
Cluster stringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - Folder string
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - Name string
- The name of the datastore. Forces a new resource if changed.
- List<string>
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- Disks []string
- The disks to use with the datastore.
- Host
System stringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- Custom
Attributes map[string]string Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- Datastore
Cluster stringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - Folder string
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - Name string
- The name of the datastore. Forces a new resource if changed.
- []string
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- disks List<String>
- The disks to use with the datastore.
- host
System StringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- custom
Attributes Map<String,String> Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- datastore
Cluster StringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - folder String
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - name String
- The name of the datastore. Forces a new resource if changed.
- List<String>
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- disks string[]
- The disks to use with the datastore.
- host
System stringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- custom
Attributes {[key: string]: string} Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- datastore
Cluster stringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - folder string
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - name string
- The name of the datastore. Forces a new resource if changed.
- string[]
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- disks Sequence[str]
- The disks to use with the datastore.
- host_
system_ strid - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- custom_
attributes Mapping[str, str] Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- datastore_
cluster_ strid - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - folder str
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - name str
- The name of the datastore. Forces a new resource if changed.
- Sequence[str]
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- disks List<String>
- The disks to use with the datastore.
- host
System StringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- custom
Attributes Map<String> Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- datastore
Cluster StringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - folder String
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - name String
- The name of the datastore. Forces a new resource if changed.
- List<String>
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
Outputs
All input properties are implicitly available as output properties. Additionally, the VmfsDatastore resource produces the following output properties:
- Accessible bool
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - Capacity int
- Maximum capacity of the datastore, in megabytes.
- Free
Space int - Available space of this datastore, in megabytes.
- Id string
- The provider-assigned unique ID for this managed resource.
- Maintenance
Mode string - The current maintenance mode state of the datastore.
- Multiple
Host boolAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - Uncommitted
Space int - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- Url string
- The unique locator for the datastore.
- Accessible bool
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - Capacity int
- Maximum capacity of the datastore, in megabytes.
- Free
Space int - Available space of this datastore, in megabytes.
- Id string
- The provider-assigned unique ID for this managed resource.
- Maintenance
Mode string - The current maintenance mode state of the datastore.
- Multiple
Host boolAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - Uncommitted
Space int - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- Url string
- The unique locator for the datastore.
- accessible Boolean
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - capacity Integer
- Maximum capacity of the datastore, in megabytes.
- free
Space Integer - Available space of this datastore, in megabytes.
- id String
- The provider-assigned unique ID for this managed resource.
- maintenance
Mode String - The current maintenance mode state of the datastore.
- multiple
Host BooleanAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - uncommitted
Space Integer - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- url String
- The unique locator for the datastore.
- accessible boolean
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - capacity number
- Maximum capacity of the datastore, in megabytes.
- free
Space number - Available space of this datastore, in megabytes.
- id string
- The provider-assigned unique ID for this managed resource.
- maintenance
Mode string - The current maintenance mode state of the datastore.
- multiple
Host booleanAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - uncommitted
Space number - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- url string
- The unique locator for the datastore.
- accessible bool
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - capacity int
- Maximum capacity of the datastore, in megabytes.
- free_
space int - Available space of this datastore, in megabytes.
- id str
- The provider-assigned unique ID for this managed resource.
- maintenance_
mode str - The current maintenance mode state of the datastore.
- multiple_
host_ boolaccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - uncommitted_
space int - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- url str
- The unique locator for the datastore.
- accessible Boolean
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - capacity Number
- Maximum capacity of the datastore, in megabytes.
- free
Space Number - Available space of this datastore, in megabytes.
- id String
- The provider-assigned unique ID for this managed resource.
- maintenance
Mode String - The current maintenance mode state of the datastore.
- multiple
Host BooleanAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - uncommitted
Space Number - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- url String
- The unique locator for the datastore.
Look up Existing VmfsDatastore Resource
Get an existing VmfsDatastore resource’s state with the given name, ID, and optional extra properties used to qualify the lookup.
public static get(name: string, id: Input<ID>, state?: VmfsDatastoreState, opts?: CustomResourceOptions): VmfsDatastore
@staticmethod
def get(resource_name: str,
id: str,
opts: Optional[ResourceOptions] = None,
accessible: Optional[bool] = None,
capacity: Optional[int] = None,
custom_attributes: Optional[Mapping[str, str]] = None,
datastore_cluster_id: Optional[str] = None,
disks: Optional[Sequence[str]] = None,
folder: Optional[str] = None,
free_space: Optional[int] = None,
host_system_id: Optional[str] = None,
maintenance_mode: Optional[str] = None,
multiple_host_access: Optional[bool] = None,
name: Optional[str] = None,
tags: Optional[Sequence[str]] = None,
uncommitted_space: Optional[int] = None,
url: Optional[str] = None) -> VmfsDatastore
func GetVmfsDatastore(ctx *Context, name string, id IDInput, state *VmfsDatastoreState, opts ...ResourceOption) (*VmfsDatastore, error)
public static VmfsDatastore Get(string name, Input<string> id, VmfsDatastoreState? state, CustomResourceOptions? opts = null)
public static VmfsDatastore get(String name, Output<String> id, VmfsDatastoreState state, CustomResourceOptions options)
Resource lookup is not supported in YAML
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- resource_name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- name
- The unique name of the resulting resource.
- id
- The unique provider ID of the resource to lookup.
- state
- Any extra arguments used during the lookup.
- opts
- A bag of options that control this resource's behavior.
- Accessible bool
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - Capacity int
- Maximum capacity of the datastore, in megabytes.
- Custom
Attributes Dictionary<string, string> Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- Datastore
Cluster stringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - Disks List<string>
- The disks to use with the datastore.
- Folder string
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - Free
Space int - Available space of this datastore, in megabytes.
- Host
System stringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- Maintenance
Mode string - The current maintenance mode state of the datastore.
- Multiple
Host boolAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - Name string
- The name of the datastore. Forces a new resource if changed.
- List<string>
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- Uncommitted
Space int - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- Url string
- The unique locator for the datastore.
- Accessible bool
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - Capacity int
- Maximum capacity of the datastore, in megabytes.
- Custom
Attributes map[string]string Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- Datastore
Cluster stringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - Disks []string
- The disks to use with the datastore.
- Folder string
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - Free
Space int - Available space of this datastore, in megabytes.
- Host
System stringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- Maintenance
Mode string - The current maintenance mode state of the datastore.
- Multiple
Host boolAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - Name string
- The name of the datastore. Forces a new resource if changed.
- []string
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- Uncommitted
Space int - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- Url string
- The unique locator for the datastore.
- accessible Boolean
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - capacity Integer
- Maximum capacity of the datastore, in megabytes.
- custom
Attributes Map<String,String> Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- datastore
Cluster StringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - disks List<String>
- The disks to use with the datastore.
- folder String
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - free
Space Integer - Available space of this datastore, in megabytes.
- host
System StringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- maintenance
Mode String - The current maintenance mode state of the datastore.
- multiple
Host BooleanAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - name String
- The name of the datastore. Forces a new resource if changed.
- List<String>
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- uncommitted
Space Integer - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- url String
- The unique locator for the datastore.
- accessible boolean
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - capacity number
- Maximum capacity of the datastore, in megabytes.
- custom
Attributes {[key: string]: string} Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- datastore
Cluster stringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - disks string[]
- The disks to use with the datastore.
- folder string
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - free
Space number - Available space of this datastore, in megabytes.
- host
System stringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- maintenance
Mode string - The current maintenance mode state of the datastore.
- multiple
Host booleanAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - name string
- The name of the datastore. Forces a new resource if changed.
- string[]
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- uncommitted
Space number - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- url string
- The unique locator for the datastore.
- accessible bool
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - capacity int
- Maximum capacity of the datastore, in megabytes.
- custom_
attributes Mapping[str, str] Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- datastore_
cluster_ strid - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - disks Sequence[str]
- The disks to use with the datastore.
- folder str
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - free_
space int - Available space of this datastore, in megabytes.
- host_
system_ strid - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- maintenance_
mode str - The current maintenance mode state of the datastore.
- multiple_
host_ boolaccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - name str
- The name of the datastore. Forces a new resource if changed.
- Sequence[str]
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- uncommitted_
space int - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- url str
- The unique locator for the datastore.
- accessible Boolean
- The connectivity status of the datastore. If this is
false
, some other computed attributes may be out of date. - capacity Number
- Maximum capacity of the datastore, in megabytes.
- custom
Attributes Map<String> Map of custom attribute ids to attribute value string to set on datastore resource.
NOTE: Custom attributes are unsupported on direct ESXi connections and require vCenter.
- datastore
Cluster StringId - The managed object
ID of a datastore cluster to put this datastore in.
Conflicts with
folder
. - disks List<String>
- The disks to use with the datastore.
- folder String
- The relative path to a folder to put this datastore in.
This is a path relative to the datacenter you are deploying the datastore to.
Example: for the
dc1
datacenter, and a providedfolder
offoo/bar
, The provider will place a datastore namedtest
in a datastore folder located at/dc1/datastore/foo/bar
, with the final inventory path being/dc1/datastore/foo/bar/test
. Conflicts withdatastore_cluster_id
. - free
Space Number - Available space of this datastore, in megabytes.
- host
System StringId - The managed object ID of the host to set the datastore up on. Note that this is not necessarily the only host that the datastore will be set up on - see here for more info. Forces a new resource if changed.
- maintenance
Mode String - The current maintenance mode state of the datastore.
- multiple
Host BooleanAccess - If
true
, more than one host in the datacenter has been configured with access to the datastore. - name String
- The name of the datastore. Forces a new resource if changed.
- List<String>
The IDs of any tags to attach to this resource.
NOTE: Tagging support is unsupported on direct ESXi connections and requires vCenter 6.0 or higher.
- uncommitted
Space Number - Total additional storage space, in megabytes, potentially used by all virtual machines on this datastore.
- url String
- The unique locator for the datastore.
Import
An existing VMFS datastore can be imported into this resource
via its managed object ID, via the command below. You also need the host system
ID.
$ pulumi import vsphere:index/vmfsDatastore:VmfsDatastore datastore datastore-123:host-10
You need a tool like govc
that can display managed object IDs.
In the case of govc, you can locate a managed object ID from an inventory path
by doing the following:
$ govc ls -i /dc/datastore/terraform-test
Datastore:datastore-123
To locate host IDs, it might be a good idea to supply the -l
flag as well so
that you can line up the names with the IDs:
$ govc ls -l -i /dc/host/cluster1
ResourcePool:resgroup-10 /dc/host/cluster1/Resources
HostSystem:host-10 /dc/host/cluster1/esxi1
HostSystem:host-11 /dc/host/cluster1/esxi2
HostSystem:host-12 /dc/host/cluster1/esxi3
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- vSphere pulumi/pulumi-vsphere
- License
- Apache-2.0
- Notes
- This Pulumi package is based on the
vsphere
Terraform Provider.