Instance
Instance is the Schema for the Instances API. Provides an EC2 instance resource. This allows instances to be created, updated, and deleted. Instances also support provisioning.
TypeMR
Providerprovider-aws-ec2
Groupec2.aws.upbound.io
Scopecluster
Versionv1beta1

1apiVersion: ec2.aws.upbound.io/v1beta1

2kind: Instance

apiVersion
string
kind
string
metadata
object
spec
object

InstanceSpec defines the desired state of Instance

deletionPolicy
string
forProvider
required
object

(No description available)

ami
string
associatePublicIpAddress
boolean
availabilityZone
string
capacityReservationSpecification
array

Describes an instance's Capacity Reservation targeting option. See Capacity Reservation Specification below for more details.

capacityReservationPreference
string
capacityReservationTarget
array

Information about the target Capacity Reservation. See Capacity Reservation Target below for more details.

capacityReservationId
string
capacityReservationResourceGroupArn
string
cpuCoreCount
number
cpuOptions
array

The CPU options for the instance. See CPU Options below for more details.

amdSevSnp
string
coreCount
number
threadsPerCore
number
cpuThreadsPerCore
number
creditSpecification
array

Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.

cpuCredits
string
disableApiStop
boolean
disableApiTermination
boolean
ebsBlockDevice
array

One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.

deleteOnTermination
boolean
deviceName
string
encrypted
boolean
iops
number
kmsKeyId
string
kmsKeyIdRef
object

Reference to a Key in kms to populate kmsKeyId.

name
required
string
policy
object

Policies for referencing.

resolution
string
resolve
string
kmsKeyIdSelector
object

Selector for a Key in kms to populate kmsKeyId.

matchControllerRef
boolean
matchLabels
object
policy
object

Policies for selection.

resolution
string
resolve
string
snapshotId
string
tags
object
throughput
number
volumeSize
number
volumeType
string
ebsOptimized
boolean
enclaveOptions
array

Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.

enabled
boolean
ephemeralBlockDevice
array

One or more configuration blocks to customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.

deviceName
string
noDevice
boolean
virtualName
string
getPasswordData
boolean
hibernation
boolean
hostId
string
hostResourceGroupArn
string
iamInstanceProfile
string
instanceInitiatedShutdownBehavior
string
instanceType
string
ipv6AddressCount
number
ipv6Addresses
array

Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface

keyName
string
launchTemplate
array

Specifies a Launch Template to configure the instance. Parameters configured on this resource will override the corresponding parameters in the Launch Template. See Launch Template Specification below for more details.

id
string
name
string
version
string
maintenanceOptions
array

Maintenance and recovery options for the instance. See Maintenance Options below for more details.

autoRecovery
string
metadataOptions
array

Customize the metadata options of the instance. See Metadata Options below for more details.

httpEndpoint
string
httpPutResponseHopLimit
number
httpTokens
string
instanceMetadataTags
string
monitoring
boolean
networkInterface
array

Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.

deleteOnTermination
boolean
deviceIndex
number
networkCardIndex
number
networkInterfaceId
string
networkInterfaceIdRef
object

Reference to a NetworkInterface to populate networkInterfaceId.

name
required
string
policy
object

Policies for referencing.

resolution
string
resolve
string
networkInterfaceIdSelector
object

Selector for a NetworkInterface to populate networkInterfaceId.

matchControllerRef
boolean
matchLabels
object
policy
object

Policies for selection.

resolution
string
resolve
string
placementGroup
string
placementPartitionNumber
number
privateDnsNameOptions
array

Options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details.

enableResourceNameDnsARecord
boolean
enableResourceNameDnsAaaaRecord
boolean
hostnameType
string
privateIp
string
region
required
string
rootBlockDevice
array

Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.

deleteOnTermination
boolean
encrypted
boolean
iops
number
kmsKeyId
string
kmsKeyIdRef
object

Reference to a Key in kms to populate kmsKeyId.

name
required
string
policy
object

Policies for referencing.

resolution
string
resolve
string
kmsKeyIdSelector
object

Selector for a Key in kms to populate kmsKeyId.

matchControllerRef
boolean
matchLabels
object
policy
object

Policies for selection.

resolution
string
resolve
string
tags
object
throughput
number
volumeSize
number
volumeType
string
secondaryPrivateIps
array

List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.

sourceDestCheck
boolean
subnetId
string
subnetIdRef
object

Reference to a Subnet to populate subnetId.

name
required
string
policy
object

Policies for referencing.

resolution
string
resolve
string
subnetIdSelector
object

Selector for a Subnet to populate subnetId.

matchControllerRef
boolean
matchLabels
object
policy
object

Policies for selection.

resolution
string
resolve
string
tags
object
tenancy
string
userData
string
userDataBase64
string
userDataReplaceOnChange
boolean
volumeTags
object
vpcSecurityGroupIdRefs
array

References to SecurityGroup to populate vpcSecurityGroupIds.

name
required
string
policy
object

Policies for referencing.

resolution
string
resolve
string
vpcSecurityGroupIdSelector
object

Selector for a list of SecurityGroup to populate vpcSecurityGroupIds.

matchControllerRef
boolean
matchLabels
object
policy
object

Policies for selection.

resolution
string
resolve
string
vpcSecurityGroupIds
array

List of security group IDs to associate with.

initProvider
object

THIS IS A BETA FIELD. It will be honored unless the Management Policies feature flag is disabled. InitProvider holds the same fields as ForProvider, with the exception of Identifier and other resource reference fields. The fields that are in InitProvider are merged into ForProvider when the resource is created. The same fields are also added to the terraform ignore_changes hook, to avoid updating them after creation. This is useful for fields that are required on creation, but we do not desire to update them after creation, for example because of an external controller is managing them, like an autoscaler.

ami
string
associatePublicIpAddress
boolean
availabilityZone
string
capacityReservationSpecification
array

Describes an instance's Capacity Reservation targeting option. See Capacity Reservation Specification below for more details.

capacityReservationPreference
string
capacityReservationTarget
array

Information about the target Capacity Reservation. See Capacity Reservation Target below for more details.

capacityReservationId
string
capacityReservationResourceGroupArn
string
cpuCoreCount
number
cpuOptions
array

The CPU options for the instance. See CPU Options below for more details.

amdSevSnp
string
coreCount
number
threadsPerCore
number
cpuThreadsPerCore
number
creditSpecification
array

Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.

cpuCredits
string
disableApiStop
boolean
disableApiTermination
boolean
ebsBlockDevice
array

One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.

deleteOnTermination
boolean
deviceName
string
encrypted
boolean
iops
number
snapshotId
string
tags
object
throughput
number
volumeSize
number
volumeType
string
ebsOptimized
boolean
enclaveOptions
array

Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.

enabled
boolean
ephemeralBlockDevice
array

One or more configuration blocks to customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.

deviceName
string
noDevice
boolean
virtualName
string
getPasswordData
boolean
hibernation
boolean
hostId
string
hostResourceGroupArn
string
iamInstanceProfile
string
instanceInitiatedShutdownBehavior
string
instanceType
string
ipv6AddressCount
number
ipv6Addresses
array

Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface

keyName
string
launchTemplate
array

Specifies a Launch Template to configure the instance. Parameters configured on this resource will override the corresponding parameters in the Launch Template. See Launch Template Specification below for more details.

id
string
name
string
version
string
maintenanceOptions
array

Maintenance and recovery options for the instance. See Maintenance Options below for more details.

autoRecovery
string
metadataOptions
array

Customize the metadata options of the instance. See Metadata Options below for more details.

httpEndpoint
string
httpPutResponseHopLimit
number
httpTokens
string
instanceMetadataTags
string
monitoring
boolean
networkInterface
array

Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.

deleteOnTermination
boolean
deviceIndex
number
networkCardIndex
number
placementGroup
string
placementPartitionNumber
number
privateDnsNameOptions
array

Options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details.

enableResourceNameDnsARecord
boolean
enableResourceNameDnsAaaaRecord
boolean
hostnameType
string
privateIp
string
rootBlockDevice
array

Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.

deleteOnTermination
boolean
encrypted
boolean
iops
number
tags
object
throughput
number
volumeSize
number
volumeType
string
secondaryPrivateIps
array

List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.

sourceDestCheck
boolean
tags
object
tenancy
string
userData
string
userDataBase64
string
userDataReplaceOnChange
boolean
volumeTags
object
managementPolicies
array

THIS IS A BETA FIELD. It is on by default but can be opted out through a Crossplane feature flag. ManagementPolicies specify the array of actions Crossplane is allowed to take on the managed and external resources. This field is planned to replace the DeletionPolicy field in a future release. Currently, both could be set independently and non-default values would be honored if the feature flag is enabled. If both are custom, the DeletionPolicy field will be ignored. See the design doc for more information: https://github.com/crossplane/crossplane/blob/499895a25d1a1a0ba1604944ef98ac7a1a71f197/design/design-doc-observe-only-resources.md?plain=1#L223 and this one: https://github.com/crossplane/crossplane/blob/444267e84783136daa93568b364a5f01228cacbe/design/one-pager-ignore-changes.md

providerConfigRef
object

ProviderConfigReference specifies how the provider that will be used to create, observe, update, and delete this managed resource should be configured.

name
required
string
policy
object

Policies for referencing.

resolution
string
resolve
string
publishConnectionDetailsTo
object

PublishConnectionDetailsTo specifies the connection secret config which contains a name, metadata and a reference to secret store config to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource.

configRef
object

SecretStoreConfigRef specifies which secret store config should be used for this ConnectionSecret.

name
required
string
policy
object

Policies for referencing.

resolution
string
resolve
string
metadata
object

Metadata is the metadata for connection secret.

annotations
object
labels
object
type
string
name
required
string
writeConnectionSecretToRef
object

WriteConnectionSecretToReference specifies the namespace and name of a Secret to which any connection details for this managed resource should be written. Connection details frequently include the endpoint, username, and password required to connect to the managed resource. This field is planned to be replaced in a future release in favor of PublishConnectionDetailsTo. Currently, both could be set independently and connection details would be published to both without affecting each other.

name
required
string
namespace
required
string
status
object

InstanceStatus defines the observed state of Instance.

atProvider
object

(No description available)

ami
string
arn
string
associatePublicIpAddress
boolean
availabilityZone
string
capacityReservationSpecification
array

Describes an instance's Capacity Reservation targeting option. See Capacity Reservation Specification below for more details.

capacityReservationPreference
string
capacityReservationTarget
array

Information about the target Capacity Reservation. See Capacity Reservation Target below for more details.

capacityReservationId
string
capacityReservationResourceGroupArn
string
cpuCoreCount
number
cpuOptions
array

The CPU options for the instance. See CPU Options below for more details.

amdSevSnp
string
coreCount
number
threadsPerCore
number
cpuThreadsPerCore
number
creditSpecification
array

Configuration block for customizing the credit specification of the instance. See Credit Specification below for more details. Removing this configuration on existing instances will only stop managing it. It will not change the configuration back to the default for the instance type.

cpuCredits
string
disableApiStop
boolean
disableApiTermination
boolean
ebsBlockDevice
array

One or more configuration blocks with additional EBS block devices to attach to the instance. Block device configurations only apply on resource creation. See Block Devices below for details on attributes and drift detection. When accessing this as an attribute reference, it is a set of objects.

deleteOnTermination
boolean
deviceName
string
encrypted
boolean
iops
number
kmsKeyId
string
snapshotId
string
tags
object
throughput
number
volumeId
string
volumeSize
number
volumeType
string
ebsOptimized
boolean
enclaveOptions
array

Enable Nitro Enclaves on launched instances. See Enclave Options below for more details.

enabled
boolean
ephemeralBlockDevice
array

One or more configuration blocks to customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a set of objects.

deviceName
string
noDevice
boolean
virtualName
string
getPasswordData
boolean
hibernation
boolean
hostId
string
hostResourceGroupArn
string
iamInstanceProfile
string
id
string
instanceInitiatedShutdownBehavior
string
instanceState
string
instanceType
string
ipv6AddressCount
number
ipv6Addresses
array

Specify one or more IPv6 addresses from the range of the subnet to associate with the primary network interface

keyName
string
launchTemplate
array

Specifies a Launch Template to configure the instance. Parameters configured on this resource will override the corresponding parameters in the Launch Template. See Launch Template Specification below for more details.

id
string
name
string
version
string
maintenanceOptions
array

Maintenance and recovery options for the instance. See Maintenance Options below for more details.

autoRecovery
string
metadataOptions
array

Customize the metadata options of the instance. See Metadata Options below for more details.

httpEndpoint
string
httpPutResponseHopLimit
number
httpTokens
string
instanceMetadataTags
string
monitoring
boolean
networkInterface
array

Customize network interfaces to be attached at instance boot time. See Network Interfaces below for more details.

deleteOnTermination
boolean
deviceIndex
number
networkCardIndex
number
networkInterfaceId
string
outpostArn
string
passwordData
string
placementGroup
string
placementPartitionNumber
number
primaryNetworkInterfaceId
string
privateDns
string
privateDnsNameOptions
array

Options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details.

enableResourceNameDnsARecord
boolean
enableResourceNameDnsAaaaRecord
boolean
hostnameType
string
privateIp
string
publicDns
string
publicIp
string
rootBlockDevice
array

Configuration block to customize details about the root block device of the instance. See Block Devices below for details. When accessing this as an attribute reference, it is a list containing one object.

deleteOnTermination
boolean
deviceName
string
encrypted
boolean
iops
number
kmsKeyId
string
tags
object
throughput
number
volumeId
string
volumeSize
number
volumeType
string
secondaryPrivateIps
array

List of secondary private IPv4 addresses to assign to the instance's primary network interface (eth0) in a VPC. Can only be assigned to the primary network interface (eth0) attached at instance creation, not a pre-existing network interface i.e., referenced in a network_interface block. Refer to the Elastic network interfaces documentation to see the maximum number of private IP addresses allowed per instance type.

securityGroups
array

List of security group names to associate with.

sourceDestCheck
boolean
subnetId
string
tags
object
tagsAll
object
tenancy
string
userData
string
userDataBase64
string
userDataReplaceOnChange
boolean
volumeTags
object
vpcSecurityGroupIds
array

List of security group IDs to associate with.

conditions
array

Conditions of the resource.

lastTransitionTime
required
string
message
string
reason
required
string
status
required
string
type
required
string
Discover the building blocks for your internal cloud platform.
© 2026 Upbound, Inc.
Solutions
Learn
Company
Community
More