CapacityProvider
ecs.services.k8s.aws/v1alpha1
| Type | Link |
|---|---|
| GoDoc | ecs-controller/apis/v1alpha1#CapacityProvider |
Metadata
| Property | Value |
|---|---|
| Scope | Namespaced |
| Kind | CapacityProvider |
| ListKind | CapacityProviderList |
| Plural | capacityproviders |
| Singular | capacityprovider |
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
| Field | Description |
|---|---|
| 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
| Field | Description |
|---|---|
| ackResourceMetadata Optional | object All CRs managed by ACK have a common Status.ACKResourceMetadata memberthat 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 thatcontains a collection of ackv1alpha1.Condition objects that describethe 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. |