ionoscloud_volume
Creates and manages IonosCloud Volume objects.
Manages a Volume on IonosCloud.
Example Usage
A primary volume will be created with the server. If there is a need for additional volumes, this resource handles it.
data "ionoscloud_image" "example" {
type = "HDD"
cloud_init = "V1"
image_alias = "ubuntu:latest"
location = "us/las"
}
resource "ionoscloud_datacenter" "example" {
name = "Datacenter Example"
location = "us/las"
description = "Datacenter Description"
sec_auth_protection = false
}
resource "ionoscloud_lan" "example" {
datacenter_id = ionoscloud_datacenter.example.id
public = true
name = "Lan Example"
}
resource "ionoscloud_ipblock" "example" {
location = ionoscloud_datacenter.example.location
size = 4
name = "IP Block Example"
}
resource "ionoscloud_server" "example" {
name = "Server Example"
datacenter_id = ionoscloud_datacenter.example.id
cores = 1
ram = 1024
image_name = data.ionoscloud_image.example.name
image_password = random_password.server_image_password.result
type = "ENTERPRISE"
volume {
name = "system"
size = 5
disk_type = "SSD Standard"
user_data = "foo"
bus = "VIRTIO"
availability_zone = "ZONE_1"
}
nic {
lan = ionoscloud_lan.example.id
name = "system"
dhcp = true
firewall_active = true
firewall_type = "BIDIRECTIONAL"
ips = [ ionoscloud_ipblock.example.ips[0], ionoscloud_ipblock.example.ips[1] ]
firewall {
protocol = "TCP"
name = "SSH"
port_range_start = 22
port_range_end = 22
source_mac = "00:0a:95:9d:68:17"
source_ip = ionoscloud_ipblock.example.ips[2]
target_ip = ionoscloud_ipblock.example.ips[3]
type = "EGRESS"
}
}
}
resource "ionoscloud_volume" "example" {
datacenter_id = ionoscloud_datacenter.example.id
server_id = ionoscloud_server.example.id
name = "Volume Example"
availability_zone = "ZONE_1"
size = 5
disk_type = "SSD Standard"
bus = "VIRTIO"
image_name = data.ionoscloud_image.example.name
image_password = random_password.volume_image_password.result
user_data = "foo"
}
resource "ionoscloud_volume" "example2" {
datacenter_id = ionoscloud_datacenter.example.id
server_id = ionoscloud_server.example.id
name = "Another Volume Example"
availability_zone = "ZONE_1"
size = 5
disk_type = "SSD Standard"
bus = "VIRTIO"
licence_type = "OTHER"
}
resource "random_password" "server_image_password" {
length = 16
special = false
}
resource "random_password" "volume_image_password" {
length = 16
special = false
}
Argument reference
datacenter_id
- (Required)[string] The ID of a Virtual Data Center.server_id
- (Required)[string] The ID of a server.disk_type
- (Required)[string] The volume type: HDD or SSD. This property is immutable.bus
- (Optional)[Boolean] The bus type of the volume: VIRTIO or IDE.size
- (Required)[integer] The size of the volume in GB.ssh_key_path
- (Optional)[list] List of absolute paths to files containing a public SSH key that will be injected into IonosCloud provided Linux images. Also accepts ssh keys directly. Required for IonosCloud Linux images. Required ifimage_password
is not provided. This property is immutable.ssh_keys
- (Optional)[list] List of absolute paths to files containing a public SSH key that will be injected into IonosCloud provided Linux images. Also accepts ssh keys directly. Required for IonosCloud Linux images. Required ifimage_password
is not provided. This property is immutable.sshkey
- (Computed) The associated public SSH key.image_password
- (Optional)[string] Required ifsshkey_path
is not provided.image_name
- (Optional)[string] The name, ID or alias of the image. May also be a snapshot ID. It is required iflicence_type
is not provided. Attribute is immutable.image
- (Computed) The image or snapshot UUID.licence_type
- (Optional)[string] Required ifimage_name
is not provided.name
- (Optional)[string] The name of the volume.availability_zone
- (Optional)[string] The storage availability zone assigned to the volume: AUTO, ZONE_1, ZONE_2, or ZONE_3. This property is immutableuser_data
- (Optional)[string] The cloud-init configuration for the volume as base64 encoded string. The property is immutable and is only allowed to be set on a new volume creation. This option will work only with cloud-init compatible images.backup_unit_id
- (Optional)[string] The uuid of the Backup Unit that user has access to. The property is immutable and is only allowed to be set on a new volume creation. It is mandatory to provide either 'public image' or 'imageAlias' in conjunction with this property.device_number
- (Computed) The Logical Unit Number of the storage volume. Null for volumes not mounted to any VM.pci_slot
- (Computed) The PCI slot number of the storage volume. Null for volumes not mounted to any VM.cpu_hot_plug
- (Computed)[string] Is capable of CPU hot plug (no reboot required)ram_hot_plug
- (Computed)[string] Is capable of memory hot plug (no reboot required)nic_hot_plug
- (Computed)[string] Is capable of nic hot plug (no reboot required)nic_hot_unplug
- (Computed)[string] Is capable of nic hot unplug (no reboot required)disc_virtio_hot_plug
- (Computed)[string] Is capable of Virt-IO drive hot plug (no reboot required)disc_virtio_hot_unplug
- (Computed)[string] Is capable of Virt-IO drive hot unplug (no reboot required). This works only for non-Windows virtual Machines.boot_server
- (Computed)[string] The UUID of the attached server.expose_serial
- (Optional)(Computed) [boolean] Defaults tofalse
if not previously set by the image used to create the volume. If set totrue
will expose the serial id of the disk attached to the server. If set tofalse
will not expose the serial id. Some operating systems or software solutions require the serial id to be exposed to work properly. Exposing the serial can influence licensed software (e.g. Windows) behavior
⚠ WARNING
ssh_key_path and ssh_keys fields are immutable. If you want to create a CUBE server, the type of the inline volume must be set to DAS. In this case, you can not set the
size
argument since it is taken from thetemplate_uuid
you set in the server.
Import
Resource Volume can be imported using the resource id
, e.g.
terraform import ionoscloud_volume.myvolume datacenter uuid/server uuid/volume uuid
Last updated