CapacityProvider

ecs.services.k8s.aws/v1alpha1

TypeLink
GoDocecs-controller/apis/v1alpha1#CapacityProvider

Metadata

PropertyValue
ScopeNamespaced
KindCapacityProvider
ListKindCapacityProviderList
Pluralcapacityproviders
Singularcapacityprovider

The details for a capacity provider.

Spec

autoScalingGroupProvider: 
  autoScalingGroupARN: string
  autoScalingGroupRef: 
    from: 
      name: string
      namespace: string
  managedDraining: string
  managedScaling: 
    instanceWarmupPeriod: integer
    maximumScalingStepSize: integer
    minimumScalingStepSize: integer
    status: string
    targetCapacity: integer
  managedTerminationProtection: string
cluster: string
clusterRef: 
  from: 
    name: string
    namespace: string
managedInstancesProvider: 
  autoRepairConfiguration: 
    actionsStatus: string
  infrastructureOptimization: 
    scaleInAfter: integer
  infrastructureRoleARN: string
  infrastructureRoleRef: 
    from: 
      name: string
      namespace: string
  instanceLaunchTemplate: 
    capacityOptionType: string
    capacityReservations: 
      reservationGroupARN: string
      reservationPreference: string
    ec2InstanceProfileARN: string
    ec2InstanceProfileRef: 
      from: 
        name: string
        namespace: string
    fipsEnabled: boolean
    instanceMetadataTagsPropagation: boolean
    instanceRequirements: 
      acceleratorCount: 
        max: integer
        min: integer
      acceleratorManufacturers:
      - string
      acceleratorNames:
      - string
      acceleratorTotalMemoryMiB: 
        max: integer
        min: integer
      acceleratorTypes:
      - string
      allowedInstanceTypes:
      - string
      bareMetal: string
      baselineEBSBandwidthMbps: 
        max: integer
        min: integer
      burstablePerformance: string
      cpuManufacturers:
      - string
      excludedInstanceTypes:
      - string
      instanceGenerations:
      - string
      localStorage: string
      localStorageTypes:
      - string
      maxSpotPriceAsPercentageOfOptimalOnDemandPrice: integer
      memoryGiBPerVCPU: 
        max: number
        min: number
      memoryMiB: 
        max: integer
        min: integer
      networkBandwidthGbps: 
        max: number
        min: number
      networkInterfaceCount: 
        max: integer
        min: integer
      onDemandMaxPricePercentageOverLowestPrice: integer
      requireHibernateSupport: boolean
      spotMaxPricePercentageOverLowestPrice: integer
      totalLocalStorageGB: 
        max: number
        min: number
      vCPUCount: 
        max: integer
        min: integer
    localStorageConfiguration: 
      useLocalStorage: boolean
    monitoring: string
    networkConfiguration: 
      securityGroupRefs:
        from: 
          name: string
          namespace: string
      securityGroups:
      - string
      subnetRefs:
        from: 
          name: string
          namespace: string
      subnets:
      - string
    storageConfiguration: 
      storageSizeGiB: integer
  propagateTags: string
name: string
tags:
- key: string
  value: string
FieldDescription
autoScalingGroupProvider
Optional
object
The details of the Auto Scaling group for the capacity provider.
autoScalingGroupProvider.autoScalingGroupARN
Optional
string
autoScalingGroupProvider.autoScalingGroupRef
Optional
object
Reference field for AutoScalingGroupARN
autoScalingGroupProvider.autoScalingGroupRef.from
Optional
object
AWSResourceReference provides all the values necessary to reference another
k8s resource for finding the identifier(Id/ARN/Name)
autoScalingGroupProvider.autoScalingGroupRef.from.name
Optional
string
autoScalingGroupProvider.autoScalingGroupRef.from.namespace
Optional
string
autoScalingGroupProvider.managedDraining
Optional
string
autoScalingGroupProvider.managedScaling
Optional
object
The managed scaling settings for the Auto Scaling group capacity provider.

When managed scaling is turned on, Amazon ECS manages the scale-in and scale-out
actions of the Auto Scaling group. Amazon ECS manages a target tracking scaling
policy using an Amazon ECS managed CloudWatch metric with the specified targetCapacity
value as the target value for the metric. For more information, see Using
managed scaling (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/asg-capacity-providers.html#asg-capacity-providers-managed-scaling)
in the Amazon Elastic Container Service Developer Guide.

If managed scaling is off, the user must manage the scaling of the Auto Scaling
group.
autoScalingGroupProvider.managedScaling.instanceWarmupPeriod
Optional
integer
autoScalingGroupProvider.managedScaling.maximumScalingStepSize
Optional
integer
autoScalingGroupProvider.managedScaling.minimumScalingStepSize
Optional
integer
autoScalingGroupProvider.managedScaling.status
Optional
string
autoScalingGroupProvider.managedScaling.targetCapacity
Optional
integer
autoScalingGroupProvider.managedTerminationProtection
Optional
string
cluster
Optional
string
The name of the cluster to associate with the capacity provider. When you
create a capacity provider with Amazon ECS Managed Instances, it becomes
available only within the specified cluster.
clusterRef
Optional
object
AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference
type to provide more user friendly syntax for references using ‘from’ field
Ex:
APIIDRef:

from:
name: my-api
clusterRef.from
Optional
object
AWSResourceReference provides all the values necessary to reference another
k8s resource for finding the identifier(Id/ARN/Name)
clusterRef.from.name
Optional
string
clusterRef.from.namespace
Optional
string
managedInstancesProvider
Optional
object
The configuration for the Amazon ECS Managed Instances provider. This configuration
specifies how Amazon ECS manages Amazon EC2 instances on your behalf, including
the infrastructure role, instance launch template, and tag propagation settings.
managedInstancesProvider.autoRepairConfiguration
Optional
object
The auto repair configuration for an Amazon ECS Managed Instances capacity
provider. When enabled, Amazon ECS automatically replaces container instances
that are detected as unhealthy based on container instance health checks,
including accelerated compute device and daemon health checks.
managedInstancesProvider.autoRepairConfiguration.actionsStatus
Optional
string
managedInstancesProvider.infrastructureOptimization
Optional
object
The configuration that controls how Amazon ECS optimizes your infrastructure.
managedInstancesProvider.infrastructureOptimization.scaleInAfter
Optional
integer
managedInstancesProvider.infrastructureRoleARN
Optional
string
managedInstancesProvider.infrastructureRoleRef
Optional
object
Reference field for InfrastructureRoleARN
managedInstancesProvider.infrastructureRoleRef.from
Optional
object
AWSResourceReference provides all the values necessary to reference another
k8s resource for finding the identifier(Id/ARN/Name)
managedInstancesProvider.infrastructureRoleRef.from.name
Optional
string
managedInstancesProvider.infrastructureRoleRef.from.namespace
Optional
string
managedInstancesProvider.instanceLaunchTemplate
Optional
object
The launch template configuration for Amazon ECS Managed Instances. This
defines how Amazon ECS launches Amazon EC2 instances, including the instance
profile for your tasks, network and storage configuration, capacity options,
and instance requirements for flexible instance type selection.
managedInstancesProvider.instanceLaunchTemplate.capacityOptionType
Optional
string
managedInstancesProvider.instanceLaunchTemplate.capacityReservations
Optional
object
The Capacity Reservation configurations to be used when using the RESERVED
capacity option type.
managedInstancesProvider.instanceLaunchTemplate.capacityReservations.reservationGroupARN
Optional
string
managedInstancesProvider.instanceLaunchTemplate.capacityReservations.reservationPreference
Optional
string
managedInstancesProvider.instanceLaunchTemplate.ec2InstanceProfileARN
Optional
string
managedInstancesProvider.instanceLaunchTemplate.ec2InstanceProfileRef
Optional
object
Reference field for EC2InstanceProfileARN
managedInstancesProvider.instanceLaunchTemplate.ec2InstanceProfileRef.from
Optional
object
AWSResourceReference provides all the values necessary to reference another
k8s resource for finding the identifier(Id/ARN/Name)
managedInstancesProvider.instanceLaunchTemplate.ec2InstanceProfileRef.from.name
Optional
string
managedInstancesProvider.instanceLaunchTemplate.ec2InstanceProfileRef.from.namespace
Optional
string
managedInstancesProvider.instanceLaunchTemplate.fipsEnabled
Optional
boolean
managedInstancesProvider.instanceLaunchTemplate.instanceMetadataTagsPropagation
Optional
boolean
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements
Optional
object
The instance requirements for attribute-based instance type selection. Instead
of specifying exact instance types, you define requirements such as vCPU
count, memory size, network performance, and accelerator specifications.
Amazon ECS automatically selects Amazon EC2 instance types that match these
requirements, providing flexibility and helping to mitigate capacity constraints.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorCount
Optional
object
The minimum and maximum number of accelerators (such as GPUs) for instance
type selection. This is used for workloads that require specific numbers
of accelerators.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorCount.max
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorCount.min
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorManufacturers
Optional
array
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorManufacturers.[]
Required
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorNames.[]
Required
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorTotalMemoryMiB.max
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorTotalMemoryMiB.min
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorTypes
Optional
array
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.acceleratorTypes.[]
Required
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.allowedInstanceTypes.[]
Required
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.baselineEBSBandwidthMbps
Optional
object
The minimum and maximum baseline Amazon EBS bandwidth in megabits per second
(Mbps) for instance type selection. This is important for workloads with
high storage I/O requirements.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.baselineEBSBandwidthMbps.max
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.baselineEBSBandwidthMbps.min
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.burstablePerformance
Optional
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.cpuManufacturers
Optional
array
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.cpuManufacturers.[]
Required
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.excludedInstanceTypes.[]
Required
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.instanceGenerations.[]
Required
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.localStorageTypes
Optional
array
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.localStorageTypes.[]
Required
string
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.memoryGiBPerVCPU
Optional
object
The minimum and maximum amount of memory per vCPU in gibibytes (GiB). This
helps ensure that instance types have the appropriate memory-to-CPU ratio
for your workloads.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.memoryGiBPerVCPU.max
Optional
number
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.memoryGiBPerVCPU.min
Optional
number
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.memoryMiB
Optional
object
The minimum and maximum amount of memory in mebibytes (MiB) for instance
type selection. This ensures that selected instance types have adequate memory
for your workloads.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.memoryMiB.max
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.memoryMiB.min
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.networkBandwidthGbps
Optional
object
The minimum and maximum network bandwidth in gigabits per second (Gbps) for
instance type selection. This is important for network-intensive workloads.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.networkBandwidthGbps.max
Optional
number
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.networkBandwidthGbps.min
Optional
number
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.networkInterfaceCount
Optional
object
The minimum and maximum number of network interfaces for instance type selection.
This is useful for workloads that require multiple network interfaces.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.networkInterfaceCount.max
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.networkInterfaceCount.min
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.onDemandMaxPricePercentageOverLowestPrice
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.requireHibernateSupport
Optional
boolean
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.spotMaxPricePercentageOverLowestPrice
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.totalLocalStorageGB
Optional
object
The minimum and maximum total local storage in gigabytes (GB) for instance
types with local storage. This is useful for workloads that require local
storage for temporary data or caching.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.totalLocalStorageGB.max
Optional
number
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.totalLocalStorageGB.min
Optional
number
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.vCPUCount
Optional
object
The minimum and maximum number of vCPUs for instance type selection. This
allows you to specify a range of vCPU counts that meet your workload requirements.
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.vCPUCount.max
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.instanceRequirements.vCPUCount.min
Optional
integer
managedInstancesProvider.instanceLaunchTemplate.localStorageConfiguration
Optional
object
The local storage configuration for Amazon ECS Managed Instances. This defines
how ECS uses and configures instance store volumes available on container
instance.
managedInstancesProvider.instanceLaunchTemplate.localStorageConfiguration.useLocalStorage
Optional
boolean
managedInstancesProvider.instanceLaunchTemplate.monitoring
Optional
string
managedInstancesProvider.instanceLaunchTemplate.networkConfiguration
Optional
object
The network configuration for Amazon ECS Managed Instances. This specifies
the VPC subnets and security groups that instances use for network connectivity.
Amazon ECS Managed Instances support multiple network modes including awsvpc
(instances receive ENIs for task isolation), host (instances share network
namespace with tasks), and none (no external network connectivity), ensuring
backward compatibility for migrating workloads from Fargate or Amazon EC2.
managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.securityGroupRefs
Optional
array
Reference field for SecurityGroups
managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.securityGroupRefs.[]
Required
object
AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference
type to provide more user friendly syntax for references using ‘from’ field
Ex:
APIIDRef:
from:
  name: my-api || **managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.securityGroupRefs.[].from**<br/>Optional | **object**<br/>AWSResourceReference provides all the values necessary to reference another<br/>k8s resource for finding the identifier(Id/ARN/Name) |

| managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.securityGroupRefs.[].from.name
Optional | string
| | managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.securityGroupRefs.[].from.namespace
Optional | string
| | managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.securityGroups
Optional | array
| | managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.securityGroups.[]
Required | string
|| managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.subnetRefs
Optional | array
Reference field for Subnets | | managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.subnetRefs.[]
Required | object
AWSResourceReferenceWrapper provides a wrapper around *AWSResourceReference type to provide more user friendly syntax for references using ‘from’ field Ex: APIIDRef:

from:
  name: my-api || **managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.subnetRefs.[].from**<br/>Optional | **object**<br/>AWSResourceReference provides all the values necessary to reference another<br/>k8s resource for finding the identifier(Id/ARN/Name) |

| managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.subnetRefs.[].from.name
Optional | string
| | managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.subnetRefs.[].from.namespace
Optional | string
| | managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.subnets
Optional | array
| | managedInstancesProvider.instanceLaunchTemplate.networkConfiguration.subnets.[]
Required | string
|| managedInstancesProvider.instanceLaunchTemplate.storageConfiguration
Optional | object
The storage configuration for Amazon ECS Managed Instances. This defines
the data volume configuration for the instances. | | managedInstancesProvider.instanceLaunchTemplate.storageConfiguration.storageSizeGiB
Optional | integer
| | managedInstancesProvider.propagateTags
Optional | string
| | name
Required | string
The name of the capacity provider. Up to 255 characters are allowed. They
include letters (both upper and lowercase letters), numbers, underscores
(_), and hyphens (-). The name can’t be prefixed with “aws”, “ecs”, or “fargate”. | | tags
Optional | array
The metadata that you apply to the capacity provider to categorize and organize
them more conveniently. Each tag consists of a key and an optional value.
You define both of them.

The following basic restrictions apply to tags:

* Maximum number of tags per resource - 50

* For each resource, each tag key must be unique, and each tag key can
have only one value.

* Maximum key length - 128 Unicode characters in UTF-8

* Maximum value length - 256 Unicode characters in UTF-8

* If your tagging schema is used across multiple services and resources,
remember that other services may have restrictions on allowed characters.
Generally allowed characters are: letters, numbers, and spaces representable
in UTF-8, and the following characters: + - = . _ : / @.

* Tag keys and values are case-sensitive.

* Do not use aws:, AWS:, or any upper or lowercase combination of such
as a prefix for either keys or values as it is reserved for Amazon Web
Services use. You cannot edit or delete tag keys or values with this prefix.
Tags with this prefix do not count against your tags per resource limit. | | tags.[]
Required | object
The metadata that you apply to a resource to help you categorize and organize them. Each tag consists of a key and an optional value. You define them.

The following basic restrictions apply to tags:

  • Maximum number of tags per resource - 50

  • For each resource, each tag key must be unique, and each tag key can have only one value.

  • Maximum key length - 128 Unicode characters in UTF-8

  • Maximum value length - 256 Unicode characters in UTF-8

  • If your tagging schema is used across multiple services and resources, remember that other services may have restrictions on allowed characters. Generally allowed characters are: letters, numbers, and spaces representable in UTF-8, and the following characters: + - = . _ : / @.

  • Tag keys and values are case-sensitive.

  • Do not use aws:, AWS:, or any upper or lowercase combination of such as a prefix for either keys or values as it is reserved for Amazon Web Services use. You cannot edit or delete tag keys or values with this prefix. Tags with this prefix do not count against your tags per resource limit. || tags.[].key
    Optional | string
    | | tags.[].value
    Optional | string
    |

Status

ackResourceMetadata: 
  arn: string
  ownerAccountID: string
  partition: string
  region: string
conditions:
- lastTransitionTime: string
  message: string
  reason: string
  status: string
  type: string
status: string
type: string
updateStatus: string
updateStatusReason: string
FieldDescription
ackResourceMetadata
Optional
object
All CRs managed by ACK have a common Status.ACKResourceMetadata member
that is used to contain resource sync state, account ownership,
constructed ARN for the resource
ackResourceMetadata.arn
Optional
string
ARN is the Amazon Resource Name for the resource. This is a
globally-unique identifier and is set only by the ACK service controller
once the controller has orchestrated the creation of the resource OR
when it has verified that an “adopted” resource (a resource where the
ARN annotation was set by the Kubernetes user on the CR) exists and
matches the supplied CR’s Spec field values.
https://github.com/aws/aws-controllers-k8s/issues/270
ackResourceMetadata.ownerAccountID
Required
string
OwnerAccountID is the AWS Account ID of the account that owns the
backend AWS service API resource.
ackResourceMetadata.partition
Optional
string
Partition is the AWS partition in which the resource exists or will exist
ackResourceMetadata.region
Required
string
Region is the AWS region in which the resource exists or will exist.
conditions
Optional
array
All CRs managed by ACK have a common Status.Conditions member that
contains a collection of ackv1alpha1.Condition objects that describe
the various terminal states of the CR and its backend AWS service API
resource
conditions.[]
Required
object
Condition is the common struct used by all CRDs managed by ACK service
controllers to indicate terminal states of the CR and its backend AWS
service API resource
conditions.[].message
Optional
string
A human readable message indicating details about the transition.
conditions.[].reason
Optional
string
The reason for the condition’s last transition.
conditions.[].status
Optional
string
Status of the condition, one of True, False, Unknown.
conditions.[].type
Optional
string
Type is the type of the Condition
status
Optional
string
The current status of the capacity provider. Only capacity providers in an
ACTIVE state can be used in a cluster. When a capacity provider is successfully
deleted, it has an INACTIVE status.
type
Optional
string
The type of capacity provider. For Amazon ECS Managed Instances, this value
is MANAGED_INSTANCES, indicating that Amazon ECS manages the underlying Amazon
EC2 instances on your behalf.
updateStatus
Optional
string
The update status of the capacity provider. The following are the possible
states that is returned.

DELETE_IN_PROGRESS

The capacity provider is in the process of being deleted.

DELETE_COMPLETE

The capacity provider was successfully deleted and has an INACTIVE status.

DELETE_FAILED

The capacity provider can’t be deleted. The update status reason provides
further details about why the delete failed.
updateStatusReason
Optional
string
The update status reason. This provides further details about the update
status for the capacity provider.