ExternalVolume

Example Usage

Creating a volume

using System.Collections.Generic;
using Pulumi;
using Nomad = Pulumi.Nomad;

return await Deployment.RunAsync(() => 
{
    var ebs = Nomad.GetPlugin.Invoke(new()
    {
        PluginId = "aws-ebs0",
        WaitForHealthy = true,
    });

    var mysqlVolume = new Nomad.ExternalVolume("mysqlVolume", new()
    {
        Type = "csi",
        PluginId = "aws-ebs0",
        VolumeId = "mysql_volume",
        CapacityMin = "10GiB",
        CapacityMax = "20GiB",
        Capabilities = new[]
        {
            new Nomad.Inputs.ExternalVolumeCapabilityArgs
            {
                AccessMode = "single-node-writer",
                AttachmentMode = "file-system",
            },
        },
        MountOptions = new Nomad.Inputs.ExternalVolumeMountOptionsArgs
        {
            FsType = "ext4",
        },
        TopologyRequest = new Nomad.Inputs.ExternalVolumeTopologyRequestArgs
        {
            Required = new Nomad.Inputs.ExternalVolumeTopologyRequestRequiredArgs
            {
                Topologies = new[]
                {
                    new Nomad.Inputs.ExternalVolumeTopologyRequestRequiredTopologyArgs
                    {
                        Segments = 
                        {
                            { "rack", "R1" },
                            { "zone", "us-east-1a" },
                        },
                    },
                    new Nomad.Inputs.ExternalVolumeTopologyRequestRequiredTopologyArgs
                    {
                        Segments = 
                        {
                            { "rack", "R2" },
                        },
                    },
                },
            },
        },
    }, new CustomResourceOptions
    {
        DependsOn = new[]
        {
            ebs.Apply(getPluginResult => getPluginResult),
        },
    });

});
package main

import (
	"github.com/pulumi/pulumi-nomad/sdk/go/nomad"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)

func main() {
	pulumi.Run(func(ctx *pulumi.Context) error {
		ebs, err := nomad.GetPlugin(ctx, &GetPluginArgs{
			PluginId:       "aws-ebs0",
			WaitForHealthy: pulumi.BoolRef(true),
		}, nil)
		if err != nil {
			return err
		}
		_, err = nomad.NewExternalVolume(ctx, "mysqlVolume", &nomad.ExternalVolumeArgs{
			Type:        pulumi.String("csi"),
			PluginId:    pulumi.String("aws-ebs0"),
			VolumeId:    pulumi.String("mysql_volume"),
			CapacityMin: pulumi.String("10GiB"),
			CapacityMax: pulumi.String("20GiB"),
			Capabilities: ExternalVolumeCapabilityArray{
				&ExternalVolumeCapabilityArgs{
					AccessMode:     pulumi.String("single-node-writer"),
					AttachmentMode: pulumi.String("file-system"),
				},
			},
			MountOptions: &ExternalVolumeMountOptionsArgs{
				FsType: pulumi.String("ext4"),
			},
			TopologyRequest: &ExternalVolumeTopologyRequestArgs{
				Required: &ExternalVolumeTopologyRequestRequiredArgs{
					Topologies: ExternalVolumeTopologyRequestRequiredTopologyArray{
						&ExternalVolumeTopologyRequestRequiredTopologyArgs{
							Segments: pulumi.StringMap{
								"rack": pulumi.String("R1"),
								"zone": pulumi.String("us-east-1a"),
							},
						},
						&ExternalVolumeTopologyRequestRequiredTopologyArgs{
							Segments: pulumi.StringMap{
								"rack": pulumi.String("R2"),
							},
						},
					},
				},
			},
		}, pulumi.DependsOn([]pulumi.Resource{
			ebs,
		}))
		if err != nil {
			return err
		}
		return nil
	})
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.nomad.NomadFunctions;
import com.pulumi.nomad.inputs.GetPluginArgs;
import com.pulumi.nomad.ExternalVolume;
import com.pulumi.nomad.ExternalVolumeArgs;
import com.pulumi.nomad.inputs.ExternalVolumeCapabilityArgs;
import com.pulumi.nomad.inputs.ExternalVolumeMountOptionsArgs;
import com.pulumi.nomad.inputs.ExternalVolumeTopologyRequestArgs;
import com.pulumi.nomad.inputs.ExternalVolumeTopologyRequestRequiredArgs;
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) {
        final var ebs = NomadFunctions.getPlugin(GetPluginArgs.builder()
            .pluginId("aws-ebs0")
            .waitForHealthy(true)
            .build());

        var mysqlVolume = new ExternalVolume("mysqlVolume", ExternalVolumeArgs.builder()        
            .type("csi")
            .pluginId("aws-ebs0")
            .volumeId("mysql_volume")
            .capacityMin("10GiB")
            .capacityMax("20GiB")
            .capabilities(ExternalVolumeCapabilityArgs.builder()
                .accessMode("single-node-writer")
                .attachmentMode("file-system")
                .build())
            .mountOptions(ExternalVolumeMountOptionsArgs.builder()
                .fsType("ext4")
                .build())
            .topologyRequest(ExternalVolumeTopologyRequestArgs.builder()
                .required(ExternalVolumeTopologyRequestRequiredArgs.builder()
                    .topologies(                    
                        ExternalVolumeTopologyRequestRequiredTopologyArgs.builder()
                            .segments(Map.ofEntries(
                                Map.entry("rack", "R1"),
                                Map.entry("zone", "us-east-1a")
                            ))
                            .build(),
                        ExternalVolumeTopologyRequestRequiredTopologyArgs.builder()
                            .segments(Map.of("rack", "R2"))
                            .build())
                    .build())
                .build())
            .build(), CustomResourceOptions.builder()
                .dependsOn(ebs.applyValue(getPluginResult -> getPluginResult))
                .build());

    }
}
import pulumi
import pulumi_nomad as nomad

ebs = nomad.get_plugin(plugin_id="aws-ebs0",
    wait_for_healthy=True)
mysql_volume = nomad.ExternalVolume("mysqlVolume",
    type="csi",
    plugin_id="aws-ebs0",
    volume_id="mysql_volume",
    capacity_min="10GiB",
    capacity_max="20GiB",
    capabilities=[nomad.ExternalVolumeCapabilityArgs(
        access_mode="single-node-writer",
        attachment_mode="file-system",
    )],
    mount_options=nomad.ExternalVolumeMountOptionsArgs(
        fs_type="ext4",
    ),
    topology_request=nomad.ExternalVolumeTopologyRequestArgs(
        required=nomad.ExternalVolumeTopologyRequestRequiredArgs(
            topologies=[
                nomad.ExternalVolumeTopologyRequestRequiredTopologyArgs(
                    segments={
                        "rack": "R1",
                        "zone": "us-east-1a",
                    },
                ),
                nomad.ExternalVolumeTopologyRequestRequiredTopologyArgs(
                    segments={
                        "rack": "R2",
                    },
                ),
            ],
        ),
    ),
    opts=pulumi.ResourceOptions(depends_on=[ebs]))
import * as pulumi from "@pulumi/pulumi";
import * as nomad from "@pulumi/nomad";

const ebs = nomad.getPlugin({
    pluginId: "aws-ebs0",
    waitForHealthy: true,
});
const mysqlVolume = new nomad.ExternalVolume("mysqlVolume", {
    type: "csi",
    pluginId: "aws-ebs0",
    volumeId: "mysql_volume",
    capacityMin: "10GiB",
    capacityMax: "20GiB",
    capabilities: [{
        accessMode: "single-node-writer",
        attachmentMode: "file-system",
    }],
    mountOptions: {
        fsType: "ext4",
    },
    topologyRequest: {
        required: {
            topologies: [
                {
                    segments: {
                        rack: "R1",
                        zone: "us-east-1a",
                    },
                },
                {
                    segments: {
                        rack: "R2",
                    },
                },
            ],
        },
    },
}, {
    dependsOn: [ebs],
});
resources:
  mysqlVolume:
    type: nomad:ExternalVolume
    properties:
      type: csi
      pluginId: aws-ebs0
      volumeId: mysql_volume
      capacityMin: 10GiB
      capacityMax: 20GiB
      capabilities:
        - accessMode: single-node-writer
          attachmentMode: file-system
      mountOptions:
        fsType: ext4
      topologyRequest:
        required:
          topologies:
            - segments:
                rack: R1
                zone: us-east-1a
            - segments:
                rack: R2
    options:
      dependson:
        - ${ebs}
variables:
  ebs:
    Fn::Invoke:
      Function: nomad:getPlugin
      Arguments:
        pluginId: aws-ebs0
        waitForHealthy: true

Create ExternalVolume Resource

new ExternalVolume(name: string, args: ExternalVolumeArgs, opts?: CustomResourceOptions);
@overload
def ExternalVolume(resource_name: str,
                   opts: Optional[ResourceOptions] = None,
                   capabilities: Optional[Sequence[ExternalVolumeCapabilityArgs]] = None,
                   capacity_max: Optional[str] = None,
                   capacity_min: Optional[str] = None,
                   clone_id: Optional[str] = None,
                   mount_options: Optional[ExternalVolumeMountOptionsArgs] = None,
                   name: Optional[str] = None,
                   namespace: Optional[str] = None,
                   parameters: Optional[Mapping[str, str]] = None,
                   plugin_id: Optional[str] = None,
                   secrets: Optional[Mapping[str, str]] = None,
                   snapshot_id: Optional[str] = None,
                   topology_request: Optional[ExternalVolumeTopologyRequestArgs] = None,
                   type: Optional[str] = None,
                   volume_id: Optional[str] = None)
@overload
def ExternalVolume(resource_name: str,
                   args: ExternalVolumeArgs,
                   opts: Optional[ResourceOptions] = None)
func NewExternalVolume(ctx *Context, name string, args ExternalVolumeArgs, opts ...ResourceOption) (*ExternalVolume, error)
public ExternalVolume(string name, ExternalVolumeArgs args, CustomResourceOptions? opts = null)
public ExternalVolume(String name, ExternalVolumeArgs args)
public ExternalVolume(String name, ExternalVolumeArgs args, CustomResourceOptions options)
type: nomad:ExternalVolume
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.

name string
The unique name of the resource.
args ExternalVolumeArgs
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 ExternalVolumeArgs
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 ExternalVolumeArgs
The arguments to resource properties.
opts ResourceOption
Bag of options to control resource's behavior.
name string
The unique name of the resource.
args ExternalVolumeArgs
The arguments to resource properties.
opts CustomResourceOptions
Bag of options to control resource's behavior.
name String
The unique name of the resource.
args ExternalVolumeArgs
The arguments to resource properties.
options CustomResourceOptions
Bag of options to control resource's behavior.

ExternalVolume Resource Properties

To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.

Inputs

The ExternalVolume resource accepts the following input properties:

Capabilities List<ExternalVolumeCapabilityArgs>

Capabilities intended to be used in a job. At least one capability must be provided.

PluginId string

The ID of the CSI plugin that manages this volume.

VolumeId string

The unique ID of the volume, how jobs will refer to the volume.

CapacityMax string

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

CapacityMin string

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

CloneId string

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

MountOptions ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

Name string

The display name of the volume.

Namespace string

The namespace in which to create the volume.

Parameters Dictionary<string, string>

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

Secrets Dictionary<string, string>

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

SnapshotId string

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

TopologyRequest ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

Type string

The type of the volume. Currently, only 'csi' is supported.

Capabilities []ExternalVolumeCapabilityArgs

Capabilities intended to be used in a job. At least one capability must be provided.

PluginId string

The ID of the CSI plugin that manages this volume.

VolumeId string

The unique ID of the volume, how jobs will refer to the volume.

CapacityMax string

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

CapacityMin string

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

CloneId string

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

MountOptions ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

Name string

The display name of the volume.

Namespace string

The namespace in which to create the volume.

Parameters map[string]string

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

Secrets map[string]string

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

SnapshotId string

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

TopologyRequest ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

Type string

The type of the volume. Currently, only 'csi' is supported.

capabilities List<ExternalVolumeCapabilityArgs>

Capabilities intended to be used in a job. At least one capability must be provided.

pluginId String

The ID of the CSI plugin that manages this volume.

volumeId String

The unique ID of the volume, how jobs will refer to the volume.

capacityMax String

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

capacityMin String

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

cloneId String

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

mountOptions ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

name String

The display name of the volume.

namespace String

The namespace in which to create the volume.

parameters Map<String,String>

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

secrets Map<String,String>

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

snapshotId String

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

topologyRequest ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

type String

The type of the volume. Currently, only 'csi' is supported.

capabilities ExternalVolumeCapabilityArgs[]

Capabilities intended to be used in a job. At least one capability must be provided.

pluginId string

The ID of the CSI plugin that manages this volume.

volumeId string

The unique ID of the volume, how jobs will refer to the volume.

capacityMax string

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

capacityMin string

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

cloneId string

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

mountOptions ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

name string

The display name of the volume.

namespace string

The namespace in which to create the volume.

parameters {[key: string]: string}

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

secrets {[key: string]: string}

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

snapshotId string

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

topologyRequest ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

type string

The type of the volume. Currently, only 'csi' is supported.

capabilities Sequence[ExternalVolumeCapabilityArgs]

Capabilities intended to be used in a job. At least one capability must be provided.

plugin_id str

The ID of the CSI plugin that manages this volume.

volume_id str

The unique ID of the volume, how jobs will refer to the volume.

capacity_max str

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

capacity_min str

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

clone_id str

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

mount_options ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

name str

The display name of the volume.

namespace str

The namespace in which to create the volume.

parameters Mapping[str, str]

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

secrets Mapping[str, str]

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

snapshot_id str

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

topology_request ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

type str

The type of the volume. Currently, only 'csi' is supported.

capabilities List<Property Map>

Capabilities intended to be used in a job. At least one capability must be provided.

pluginId String

The ID of the CSI plugin that manages this volume.

volumeId String

The unique ID of the volume, how jobs will refer to the volume.

capacityMax String

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

capacityMin String

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

cloneId String

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

mountOptions Property Map

Options for mounting 'block-device' volumes without a pre-formatted file system.

name String

The display name of the volume.

namespace String

The namespace in which to create the volume.

parameters Map<String>

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

secrets Map<String>

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

snapshotId String

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

topologyRequest Property Map

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

type String

The type of the volume. Currently, only 'csi' is supported.

Outputs

All input properties are implicitly available as output properties. Additionally, the ExternalVolume resource produces the following output properties:

controllerRequired Boolean
controllersExpected Integer
controllersHealthy Integer
id String

The provider-assigned unique ID for this managed resource.

nodesExpected Integer
nodesHealthy Integer
pluginProvider String
pluginProviderVersion String
schedulable Boolean
topologies List<ExternalVolumeTopology>
controllerRequired boolean
controllersExpected number
controllersHealthy number
id string

The provider-assigned unique ID for this managed resource.

nodesExpected number
nodesHealthy number
pluginProvider string
pluginProviderVersion string
schedulable boolean
topologies ExternalVolumeTopology[]
controllerRequired Boolean
controllersExpected Number
controllersHealthy Number
id String

The provider-assigned unique ID for this managed resource.

nodesExpected Number
nodesHealthy Number
pluginProvider String
pluginProviderVersion String
schedulable Boolean
topologies List<Property Map>

Look up Existing ExternalVolume Resource

Get an existing ExternalVolume 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?: ExternalVolumeState, opts?: CustomResourceOptions): ExternalVolume
@staticmethod
def get(resource_name: str,
        id: str,
        opts: Optional[ResourceOptions] = None,
        capabilities: Optional[Sequence[ExternalVolumeCapabilityArgs]] = None,
        capacity_max: Optional[str] = None,
        capacity_min: Optional[str] = None,
        clone_id: Optional[str] = None,
        controller_required: Optional[bool] = None,
        controllers_expected: Optional[int] = None,
        controllers_healthy: Optional[int] = None,
        mount_options: Optional[ExternalVolumeMountOptionsArgs] = None,
        name: Optional[str] = None,
        namespace: Optional[str] = None,
        nodes_expected: Optional[int] = None,
        nodes_healthy: Optional[int] = None,
        parameters: Optional[Mapping[str, str]] = None,
        plugin_id: Optional[str] = None,
        plugin_provider: Optional[str] = None,
        plugin_provider_version: Optional[str] = None,
        schedulable: Optional[bool] = None,
        secrets: Optional[Mapping[str, str]] = None,
        snapshot_id: Optional[str] = None,
        topologies: Optional[Sequence[ExternalVolumeTopologyArgs]] = None,
        topology_request: Optional[ExternalVolumeTopologyRequestArgs] = None,
        type: Optional[str] = None,
        volume_id: Optional[str] = None) -> ExternalVolume
func GetExternalVolume(ctx *Context, name string, id IDInput, state *ExternalVolumeState, opts ...ResourceOption) (*ExternalVolume, error)
public static ExternalVolume Get(string name, Input<string> id, ExternalVolumeState? state, CustomResourceOptions? opts = null)
public static ExternalVolume get(String name, Output<String> id, ExternalVolumeState 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.
The following state arguments are supported:
Capabilities List<ExternalVolumeCapabilityArgs>

Capabilities intended to be used in a job. At least one capability must be provided.

CapacityMax string

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

CapacityMin string

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

CloneId string

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

ControllerRequired bool
ControllersExpected int
ControllersHealthy int
MountOptions ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

Name string

The display name of the volume.

Namespace string

The namespace in which to create the volume.

NodesExpected int
NodesHealthy int
Parameters Dictionary<string, string>

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

PluginId string

The ID of the CSI plugin that manages this volume.

PluginProvider string
PluginProviderVersion string
Schedulable bool
Secrets Dictionary<string, string>

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

SnapshotId string

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

Topologies List<ExternalVolumeTopologyArgs>
TopologyRequest ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

Type string

The type of the volume. Currently, only 'csi' is supported.

VolumeId string

The unique ID of the volume, how jobs will refer to the volume.

Capabilities []ExternalVolumeCapabilityArgs

Capabilities intended to be used in a job. At least one capability must be provided.

CapacityMax string

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

CapacityMin string

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

CloneId string

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

ControllerRequired bool
ControllersExpected int
ControllersHealthy int
MountOptions ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

Name string

The display name of the volume.

Namespace string

The namespace in which to create the volume.

NodesExpected int
NodesHealthy int
Parameters map[string]string

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

PluginId string

The ID of the CSI plugin that manages this volume.

PluginProvider string
PluginProviderVersion string
Schedulable bool
Secrets map[string]string

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

SnapshotId string

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

Topologies []ExternalVolumeTopologyArgs
TopologyRequest ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

Type string

The type of the volume. Currently, only 'csi' is supported.

VolumeId string

The unique ID of the volume, how jobs will refer to the volume.

capabilities List<ExternalVolumeCapabilityArgs>

Capabilities intended to be used in a job. At least one capability must be provided.

capacityMax String

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

capacityMin String

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

cloneId String

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

controllerRequired Boolean
controllersExpected Integer
controllersHealthy Integer
mountOptions ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

name String

The display name of the volume.

namespace String

The namespace in which to create the volume.

nodesExpected Integer
nodesHealthy Integer
parameters Map<String,String>

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

pluginId String

The ID of the CSI plugin that manages this volume.

pluginProvider String
pluginProviderVersion String
schedulable Boolean
secrets Map<String,String>

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

snapshotId String

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

topologies List<ExternalVolumeTopologyArgs>
topologyRequest ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

type String

The type of the volume. Currently, only 'csi' is supported.

volumeId String

The unique ID of the volume, how jobs will refer to the volume.

capabilities ExternalVolumeCapabilityArgs[]

Capabilities intended to be used in a job. At least one capability must be provided.

capacityMax string

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

capacityMin string

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

cloneId string

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

controllerRequired boolean
controllersExpected number
controllersHealthy number
mountOptions ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

name string

The display name of the volume.

namespace string

The namespace in which to create the volume.

nodesExpected number
nodesHealthy number
parameters {[key: string]: string}

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

pluginId string

The ID of the CSI plugin that manages this volume.

pluginProvider string
pluginProviderVersion string
schedulable boolean
secrets {[key: string]: string}

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

snapshotId string

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

topologies ExternalVolumeTopologyArgs[]
topologyRequest ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

type string

The type of the volume. Currently, only 'csi' is supported.

volumeId string

The unique ID of the volume, how jobs will refer to the volume.

capabilities Sequence[ExternalVolumeCapabilityArgs]

Capabilities intended to be used in a job. At least one capability must be provided.

capacity_max str

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

capacity_min str

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

clone_id str

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

controller_required bool
controllers_expected int
controllers_healthy int
mount_options ExternalVolumeMountOptionsArgs

Options for mounting 'block-device' volumes without a pre-formatted file system.

name str

The display name of the volume.

namespace str

The namespace in which to create the volume.

nodes_expected int
nodes_healthy int
parameters Mapping[str, str]

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

plugin_id str

The ID of the CSI plugin that manages this volume.

plugin_provider str
plugin_provider_version str
schedulable bool
secrets Mapping[str, str]

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

snapshot_id str

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

topologies Sequence[ExternalVolumeTopologyArgs]
topology_request ExternalVolumeTopologyRequestArgs

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

type str

The type of the volume. Currently, only 'csi' is supported.

volume_id str

The unique ID of the volume, how jobs will refer to the volume.

capabilities List<Property Map>

Capabilities intended to be used in a job. At least one capability must be provided.

capacityMax String

Defines how large the volume can be. The storage provider may return a volume that is smaller than this value.

capacityMin String

Defines how small the volume can be. The storage provider may return a volume that is larger than this value.

cloneId String

The volume ID to clone when creating this volume. Storage provider must support cloning. Conflicts with 'snapshot_id'.

controllerRequired Boolean
controllersExpected Number
controllersHealthy Number
mountOptions Property Map

Options for mounting 'block-device' volumes without a pre-formatted file system.

name String

The display name of the volume.

namespace String

The namespace in which to create the volume.

nodesExpected Number
nodesHealthy Number
parameters Map<String>

An optional key-value map of strings passed directly to the CSI plugin to configure the volume.

pluginId String

The ID of the CSI plugin that manages this volume.

pluginProvider String
pluginProviderVersion String
schedulable Boolean
secrets Map<String>

An optional key-value map of strings used as credentials for publishing and unpublishing volumes.

snapshotId String

The snapshot ID to restore when creating this volume. Storage provider must support snapshots. Conflicts with 'clone_id'.

topologies List<Property Map>
topologyRequest Property Map

Specify locations (region, zone, rack, etc.) where the provisioned volume is accessible from.

type String

The type of the volume. Currently, only 'csi' is supported.

volumeId String

The unique ID of the volume, how jobs will refer to the volume.

Supporting Types

ExternalVolumeCapability

ExternalVolumeMountOptions

FsType string
MountFlags List<string>
FsType string
MountFlags []string
fsType String
mountFlags List<String>
fsType string
mountFlags string[]
fs_type str
mount_flags Sequence[str]
fsType String
mountFlags List<String>

ExternalVolumeTopology

Segments Dictionary<string, string>
Segments map[string]string
segments Map<String,String>
segments {[key: string]: string}
segments Mapping[str, str]
segments Map<String>

ExternalVolumeTopologyRequest

ExternalVolumeTopologyRequestPreferred

ExternalVolumeTopologyRequestPreferredTopology

Segments Dictionary<string, string>
Segments map[string]string
segments Map<String,String>
segments {[key: string]: string}
segments Mapping[str, str]
segments Map<String>

ExternalVolumeTopologyRequestRequired

ExternalVolumeTopologyRequestRequiredTopology

Segments Dictionary<string, string>
Segments map[string]string
segments Map<String,String>
segments {[key: string]: string}
segments Mapping[str, str]
segments Map<String>

Package Details

Repository
https://github.com/pulumi/pulumi-nomad
License
Apache-2.0
Notes

This Pulumi package is based on the nomad Terraform Provider.