Skip to content

Commit

Permalink
Merge pull request #1514 from hashicorp/f-relationshipRef
Browse files Browse the repository at this point in the history
Support resources with `relationshipRef`
  • Loading branch information
ewbankkit authored Apr 4, 2024
2 parents d1f668d + 40f6da7 commit 16665a7
Show file tree
Hide file tree
Showing 14 changed files with 558 additions and 320 deletions.
74 changes: 49 additions & 25 deletions docs/data-sources/ecs_cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,50 +21,68 @@ Data Source schema for AWS::ECS::Cluster

### Read-Only

- `arn` (String) The Amazon Resource Name (ARN) of the Amazon ECS cluster, such as arn:aws:ecs:us-east-2:123456789012:cluster/MyECSCluster.
- `capacity_providers` (List of String)
- `cluster_name` (String) A user-generated string that you use to identify your cluster. If you don't specify a name, AWS CloudFormation generates a unique physical ID for the name.
- `cluster_settings` (Attributes List) (see [below for nested schema](#nestedatt--cluster_settings))
- `configuration` (Attributes) The configurations to be set at cluster level. (see [below for nested schema](#nestedatt--configuration))
- `default_capacity_provider_strategy` (Attributes List) (see [below for nested schema](#nestedatt--default_capacity_provider_strategy))
- `service_connect_defaults` (Attributes) Service Connect Configuration default for all services or tasks within this cluster (see [below for nested schema](#nestedatt--service_connect_defaults))
- `tags` (Attributes List) (see [below for nested schema](#nestedatt--tags))
- `arn` (String)
- `capacity_providers` (List of String) 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 FARGATElong capacity provider, specify either the ``FARGATE`` or ``FARGATE_SPOT`` capacity providers. The FARGATElong 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.
- `cluster_name` (String) A user-generated string that you use to identify your cluster. If you don't specify a name, CFNlong generates a unique physical ID for the name.
- `cluster_settings` (Attributes List) The settings to use when creating a cluster. This parameter is used to turn on CloudWatch Container Insights for a cluster. (see [below for nested schema](#nestedatt--cluster_settings))
- `configuration` (Attributes) The execute command configuration for the cluster. (see [below for nested schema](#nestedatt--configuration))
- `default_capacity_provider_strategy` (Attributes List) The default capacity provider strategy for the cluster. When services or tasks are run in the cluster with no launch type or capacity provider strategy specified, the default capacity provider strategy is used. (see [below for nested schema](#nestedatt--default_capacity_provider_strategy))
- `service_connect_defaults` (Attributes) 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*. (see [below for nested schema](#nestedatt--service_connect_defaults))
- `tags` (Attributes List) 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 AWS 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. (see [below for nested schema](#nestedatt--tags))

<a id="nestedatt--cluster_settings"></a>
### Nested Schema for `cluster_settings`

Read-Only:

- `name` (String)
- `value` (String)
- `name` (String) The name of the cluster setting. The value is ``containerInsights`` .
- `value` (String) The value to set for the cluster setting. The supported values are ``enabled`` and ``disabled``.
If you set ``name`` to ``containerInsights`` and ``value`` to ``enabled``, CloudWatch Container Insights will be on for the cluster, otherwise it will be off unless the ``containerInsights`` account setting is turned on. If a cluster value is specified, it will override the ``containerInsights`` value set with [PutAccountSetting](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSetting.html) or [PutAccountSettingDefault](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_PutAccountSettingDefault.html).


<a id="nestedatt--configuration"></a>
### Nested Schema for `configuration`

Read-Only:

- `execute_command_configuration` (Attributes) The configuration for ExecuteCommand. (see [below for nested schema](#nestedatt--configuration--execute_command_configuration))
- `execute_command_configuration` (Attributes) The details of the execute command configuration. (see [below for nested schema](#nestedatt--configuration--execute_command_configuration))

<a id="nestedatt--configuration--execute_command_configuration"></a>
### Nested Schema for `configuration.execute_command_configuration`

Read-Only:

- `kms_key_id` (String)
- `log_configuration` (Attributes) The session logging configuration for ExecuteCommand. (see [below for nested schema](#nestedatt--configuration--execute_command_configuration--log_configuration))
- `logging` (String)
- `kms_key_id` (String) Specify an KMSlong key ID to encrypt the data between the local client and the container.
- `log_configuration` (Attributes) The log configuration for the results of the execute command actions. The logs can be sent to CloudWatch Logs or an Amazon S3 bucket. When ``logging=OVERRIDE`` is specified, a ``logConfiguration`` must be provided. (see [below for nested schema](#nestedatt--configuration--execute_command_configuration--log_configuration))
- `logging` (String) The log setting to use for redirecting logs for your execute command results. The following log settings are available.
+ ``NONE``: The execute command session is not logged.
+ ``DEFAULT``: The ``awslogs`` configuration in the task definition is used. If no logging parameter is specified, it defaults to this value. If no ``awslogs`` log driver is configured in the task definition, the output won't be logged.
+ ``OVERRIDE``: Specify the logging details as a part of ``logConfiguration``. If the ``OVERRIDE`` logging option is specified, the ``logConfiguration`` is required.

<a id="nestedatt--configuration--execute_command_configuration--log_configuration"></a>
### Nested Schema for `configuration.execute_command_configuration.log_configuration`

Read-Only:

- `cloudwatch_encryption_enabled` (Boolean)
- `cloudwatch_log_group_name` (String)
- `s3_bucket_name` (String)
- `s3_encryption_enabled` (Boolean)
- `s3_key_prefix` (String)
- `cloudwatch_encryption_enabled` (Boolean) Determines whether to use encryption on the CloudWatch logs. If not specified, encryption will be off.
- `cloudwatch_log_group_name` (String) The name of the CloudWatch log group to send logs to.
The CloudWatch log group must already be created.
- `s3_bucket_name` (String) The name of the S3 bucket to send logs to.
The S3 bucket must already be created.
- `s3_encryption_enabled` (Boolean) Determines whether to use encryption on the S3 logs. If not specified, encryption is not used.
- `s3_key_prefix` (String) An optional folder in the S3 bucket to place logs in.



Expand All @@ -74,23 +92,29 @@ Read-Only:

Read-Only:

- `base` (Number)
- `capacity_provider` (String)
- `weight` (Number)
- `base` (Number) The *base* value designates how many tasks, at a minimum, to run on the specified capacity provider. Only one capacity provider in a capacity provider strategy can have a *base* defined. If no value is specified, the default value of ``0`` is used.
- `capacity_provider` (String) The short name of the capacity provider.
- `weight` (Number) The *weight* value designates the relative percentage of the total number of tasks launched that should use the specified capacity provider. The ``weight`` value is taken into consideration after the ``base`` value, if defined, is satisfied.
If no ``weight`` value is specified, the default value of ``0`` is used. When multiple capacity providers are specified within a capacity provider strategy, at least one of the capacity providers must have a weight value greater than zero and any capacity providers with a weight of ``0`` can't be used to place tasks. If you specify multiple capacity providers in a strategy that all have a weight of ``0``, any ``RunTask`` or ``CreateService`` actions using the capacity provider strategy will fail.
An example scenario for using weights is defining a strategy that contains two capacity providers and both have a weight of ``1``, then when the ``base`` is satisfied, the tasks will be split evenly across the two capacity providers. Using that same logic, if you specify a weight of ``1`` for *capacityProviderA* and a weight of ``4`` for *capacityProviderB*, then for every one task that's run using *capacityProviderA*, four tasks would use *capacityProviderB*.


<a id="nestedatt--service_connect_defaults"></a>
### Nested Schema for `service_connect_defaults`

Read-Only:

- `namespace` (String) Service Connect Namespace Name or ARN default for all services or tasks within this cluster
- `namespace` (String) The namespace name or full Amazon Resource Name (ARN) of the CMAPlong namespace that's used when you create a service and don't specify a Service Connect configuration. The namespace name can include up to 1024 characters. The name is case-sensitive. The name can't include hyphens (-), tilde (~), greater than (>), less than (<), or slash (/).
If you enter an existing namespace name or ARN, then that namespace will be used. Any namespace type is supported. The namespace must be in this account and this AWS Region.
If you enter a new name, a CMAPlong namespace will be created. Amazon ECS creates a CMAP namespace with the "API calls" method of instance discovery only. This instance discovery method is the "HTTP" namespace type in the CLIlong. Other types of instance discovery aren't used by Service Connect.
If you update the cluster with an empty string ``""`` for the namespace name, the cluster configuration for Service Connect is removed. Note that the namespace will remain in CMAP and must be deleted separately.
For more information about CMAPlong, see [Working with Services](https://docs.aws.amazon.com/cloud-map/latest/dg/working-with-services.html) in the *Developer Guide*.


<a id="nestedatt--tags"></a>
### Nested Schema for `tags`

Read-Only:

- `key` (String)
- `value` (String)
- `key` (String) One part of a key-value pair that make up a tag. A ``key`` is a general label that acts like a category for more specific tag values.
- `value` (String) The optional part of a key-value pair that make up a tag. A ``value`` acts as a descriptor within a tag category (key).
Loading

0 comments on commit 16665a7

Please sign in to comment.