Cluster

ecs.services.k8s.aws/v1alpha1

TypeLink
GoDocecs-controller/apis/v1alpha1#Cluster

Metadata

PropertyValue
ScopeNamespaced
KindCluster
ListKindClusterList
Pluralclusters
Singularcluster

A regional grouping of one or more container instances where you can run task requests. Each account receives a default cluster the first time you use the Amazon ECS service, but you may also create other clusters. Clusters may contain more than one instance type simultaneously.

Spec

capacityProviders:
- string
configuration: 
  executeCommandConfiguration: 
    kmsKeyID: string
    logConfiguration: 
      cloudWatchEncryptionEnabled: boolean
      cloudWatchLogGroupName: string
      s3BucketName: string
      s3EncryptionEnabled: boolean
      s3KeyPrefix: string
    logging: string
defaultCapacityProviderStrategy:
- base: integer
  capacityProvider: string
  weight: integer
name: string
serviceConnectDefaults: 
  namespace: string
settings:
- name: string
  value: string
tags:
- key: string
  value: string
FieldDescription
capacityProviders
Optional
array
The short name of one or more capacity providers to associate with the cluster.
A capacity provider must be associated with a cluster before it can be included
as part of the default capacity provider strategy of the cluster or used
in a capacity provider strategy when calling the CreateService (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html)
or RunTask (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html)
actions.


If specifying a capacity provider that uses an Auto Scaling group, the capacity
provider must be created but not associated with another cluster. New Auto
Scaling group capacity providers can be created with the CreateCapacityProvider
(https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateCapacityProvider.html)
API operation.


To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT
capacity providers. The Fargate capacity providers are available to all accounts
and only need to be associated with a cluster to be used.


The PutCapacityProvider (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutCapacityProvider.html)
API operation is used to update the list of available capacity providers
for a cluster after the cluster is created.
capacityProviders.[]
Required
string
configuration.executeCommandConfiguration
Optional
object
The details of the execute command configuration.
configuration.executeCommandConfiguration.kmsKeyID
Optional
string
configuration.executeCommandConfiguration.logConfiguration
Optional
object
The log configuration for the results of the execute command actions. The
logs can be sent to CloudWatch Logs or an Amazon S3 bucket.
configuration.executeCommandConfiguration.logConfiguration.cloudWatchEncryptionEnabled
Optional
boolean
configuration.executeCommandConfiguration.logConfiguration.cloudWatchLogGroupName
Optional
string
configuration.executeCommandConfiguration.logConfiguration.s3BucketName
Optional
string
configuration.executeCommandConfiguration.logConfiguration.s3EncryptionEnabled
Optional
boolean
configuration.executeCommandConfiguration.logConfiguration.s3KeyPrefix
Optional
string
configuration.executeCommandConfiguration.logging
Optional
string
defaultCapacityProviderStrategy
Optional
array
The capacity provider strategy to set as the default for the cluster. After
a default capacity provider strategy is set for a cluster, when you call
the CreateService (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_CreateService.html)
or RunTask (https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_RunTask.html)
APIs with no capacity provider strategy or launch type specified, the default
capacity provider strategy for the cluster is used.


If a default capacity provider strategy isn’t defined for a cluster when
it was created, it can be defined later with the PutClusterCapacityProviders
API operation.
defaultCapacityProviderStrategy.[]
Required
object
The details of a capacity provider strategy. A capacity provider strategy
can be set when using the RunTask or CreateCluster APIs or as the default
capacity provider strategy for a cluster with the CreateCluster API.

Only capacity providers that are already associated with a cluster and have an ACTIVE or UPDATING status can be used in a capacity provider strategy. The PutClusterCapacityProviders API is used to associate a capacity provider with a cluster.

If specifying a capacity provider that uses an Auto Scaling group, the capacity provider must already be created. New Auto Scaling group capacity providers can be created with the CreateCapacityProvider API operation.

To use a Fargate capacity provider, specify either the FARGATE or FARGATE_SPOT capacity providers. The Fargate capacity providers are available to all accounts and only need to be associated with a cluster to be used in a capacity provider strategy.

A capacity provider strategy may contain a maximum of 6 capacity providers. || defaultCapacityProviderStrategy.[].base
Optional | integer
| | defaultCapacityProviderStrategy.[].capacityProvider
Optional | string
| | defaultCapacityProviderStrategy.[].weight
Optional | integer
| | name
Optional | string
The name of your cluster. If you don’t specify a name for your cluster, you
create a cluster that’s named default. Up to 255 letters (uppercase and lowercase),
numbers, underscores, and hyphens are allowed. | | serviceConnectDefaults
Optional | object
Use this parameter to set a default Service Connect namespace. After you
set a default Service Connect namespace, any new services with Service Connect
turned on that are created in the cluster are added as client services in
the namespace. This setting only applies to new services that set the enabled
parameter to true in the ServiceConnectConfiguration. You can set the namespace
of each service individually in the ServiceConnectConfiguration to override
this default parameter.


Tasks that run in a namespace can use short names to connect to services
in the namespace. Tasks can connect to services across all of the clusters
in the namespace. Tasks connect through a managed proxy container that collects
logs and metrics for increased visibility. Only the tasks that Amazon ECS
services create are supported with Service Connect. For more information,
see Service Connect (https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-connect.html)
in the Amazon Elastic Container Service Developer Guide. | | serviceConnectDefaults.namespace
Optional | string
| | settings
Optional | array
The setting to use when creating a cluster. This parameter is used to turn
on CloudWatch Container Insights for a cluster. If this value is specified,
it overrides the containerInsights value set with PutAccountSetting or PutAccountSettingDefault. | | settings.[]
Required | object
The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster. || settings.[].name
Optional | string
| | settings.[].value
Optional | string
| | tags
Optional | array
The metadata that you apply to the cluster to help you categorize and organize
them. Each tag consists of a key and an optional value. You define both.


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
  region: string
activeServicesCount: integer
attachments:
  details:
  - name: string
    value: string
  id: string
  status: string
  type: string
attachmentsStatus: string
conditions:
- lastTransitionTime: string
  message: string
  reason: string
  status: string
  type: string
pendingTasksCount: integer
registeredContainerInstancesCount: integer
runningTasksCount: integer
statistics:
- name: string
  value: string
status: 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.
TODO(vijat@): Find a better strategy for resources that do not have ARN in CreateOutputResponse
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.region
Required
string
Region is the AWS region in which the resource exists or will exist.
activeServicesCount
Optional
integer
The number of services that are running on the cluster in an ACTIVE state.
You can view these services with ListServices.
attachments
Optional
array
The resources attached to a cluster. When using a capacity provider with
a cluster, the capacity provider and associated resources are returned as
cluster attachments.
attachments.[]
Required
object
An object representing a container instance or task attachment.
attachments.[].details.[]
Required
object
A key-value pair object.
attachments.[].details.[].value
Optional
string
attachments.[].id
Optional
string
attachments.[].status
Optional
string
attachments.[].type
Optional
string
attachmentsStatus
Optional
string
The status of the capacity providers associated with the cluster. The following
are the states that are returned.


UPDATE_IN_PROGRESS


The available capacity providers for the cluster are updating.


UPDATE_COMPLETE


The capacity providers have successfully updated.


UPDATE_FAILED


The capacity provider updates failed.
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
pendingTasksCount
Optional
integer
The number of tasks in the cluster that are in the PENDING state.
registeredContainerInstancesCount
Optional
integer
The number of container instances registered into the cluster. This includes
container instances in both ACTIVE and DRAINING status.
runningTasksCount
Optional
integer
The number of tasks in the cluster that are in the RUNNING state.
statistics
Optional
array
Additional information about your clusters that are separated by launch type.
They include the following:


* runningEC2TasksCount


* RunningFargateTasksCount


* pendingEC2TasksCount


* pendingFargateTasksCount


* activeEC2ServiceCount


* activeFargateServiceCount


* drainingEC2ServiceCount


* drainingFargateServiceCount
statistics.[]
Required
object
A key-value pair object.
statistics.[].value
Optional
string
status
Optional
string
The status of the cluster. The following are the possible states that are
returned.


ACTIVE


The cluster is ready to accept tasks and if applicable you can register container
instances with the cluster.


PROVISIONING


The cluster has capacity providers that are associated with it and the resources
needed for the capacity provider are being created.


DEPROVISIONING


The cluster has capacity providers that are associated with it and the resources
needed for the capacity provider are being deleted.


FAILED


The cluster has capacity providers that are associated with it and the resources
needed for the capacity provider have failed to create.


INACTIVE


The cluster has been deleted. Clusters with an INACTIVE status may remain
discoverable in your account for a period of time. However, this behavior
is subject to change in the future. We don’t recommend that you rely on INACTIVE
clusters persisting.