exoscale_compute_instance (Resource)
Manage Exoscale Compute Instances.
Corresponding data sources: exoscale_compute_instance, exoscale_compute_instance_list.
After the creation, you can retrieve the password of an instance with Exoscale CLI: exo compute instance reveal-password NAME.
Example Usage
data "exoscale_template" "my_template" {
zone = "ch-gva-2"
name = "Linux Ubuntu 22.04 LTS 64-bit"
}
resource "exoscale_compute_instance" "my_instance" {
zone = "ch-gva-2"
name = "my-instance"
template_id = data.exoscale_template.my_template.id
type = "standard.medium"
disk_size = 10
}Please refer to the examples directory for complete configuration examples.
Schema
Required
disk_size(Number) The instance disk size (GiB; at least10). Can not be decreased after creation. WARNING: updating this attribute stops/restarts the instance.name(String) The compute instance name.template_id(String) ❗ The exoscale_template (ID) to use when creating the instance.type(String) The instance type (<family>.<size>, e.g.standard.medium; use the Exoscale CLI -exo compute instance-type list- for the list of available types). WARNING: updating this attribute stops/restarts the instance.zone(String) ❗ The Exoscale Zone name.
Optional
anti_affinity_group_ids(Set of String) ❗ A list of exoscale_anti_affinity_group (IDs) to attach to the instance (may only be set at creation time).block_storage_volume_ids(Set of String) A list of exoscale_block_storage_volume (ID) to attach to the instance.deploy_target_id(String) ❗ A deploy target ID.destroy_protected(Boolean) Mark the instance as protected, the Exoscale API will refuse to delete the instance until the protection is removed (boolean; default:false).elastic_ip_ids(Set of String) A list of exoscale_elastic_ip (IDs) to attach to the instance.enable_secure_boot(Boolean) ❗ Enable secure boot on the instance (boolean; default:false). Can not be changed after the creation.enable_tpm(Boolean) Enable TPM on the instance (boolean; default:false). Can not be disabled after the creation. WARNING: enabling this attribute stops/restarts the instance.ipv6(Boolean) Enable IPv6 on the instance (boolean; default:false).labels(Map of String) A map of key/value labels.network_interface(Block Set) Private network interfaces (may be specified multiple times). Structure is documented below. (see below for nested schema)private(Boolean) Whether the instance is private (no public IP addresses; default: false)reverse_dns(String) Domain name for reverse DNS record.security_group_ids(Set of String) A list of exoscale_security_group (IDs) to attach to the instance.ssh_key(String, Deprecated) ❗ The exoscale_ssh_key (name) to authorize in the instance (may only be set at creation time).ssh_keys(Set of String) ❗ The list of exoscale_ssh_key (name) to authorize in the instance (may only be set at creation time).state(String) The instance state (runningorstopped). If omitted, instance will start and reachrunningstate.timeouts(Block, Optional) (see below for nested schema)user_data(String) cloud-init configuration.
Read-Only
created_at(String) The instance creation date.id(String) The ID of this resource.ipv6_address(String) The instance (main network interface) IPv6 address (if enabled).mac_address(String) MAC addressprivate_network_ids(Set of String, Deprecated) A list of private networks (IDs) attached to the instance. Please use thenetwork_interface.*.network_idargument instead.public_ip_address(String) The instance (main network interface) IPv4 address.
Nested Schema for network_interface
Required:
network_id(String) The exoscale_private_network (ID) to attach to the instance.
Optional:
ip_address(String) The IPv4 address to request as static DHCP lease if the network interface is attached to a managed private network.
Read-Only:
mac_address(String) MAC address
Nested Schema for timeouts
Optional:
create(String)delete(String)read(String)update(String)
-> The symbol ❗ in an attribute indicates that modifying it, will force the creation of a new resource.
Import
# An existing compute instance may be imported by `<ID>@<zone>`:
terraform import \
exoscale_compute_instance.my_instance \
f81d4fae-7dec-11d0-a765-00a0c91e6bf6@ch-gva-2Last updated on