Cluster Args
Provides an ECS cluster.
NOTE on Clusters and Cluster Capacity Providers: this provider provides both a standalone
aws.ecs.ClusterCapacityProviders
resource, as well as allowing the capacity providers and default strategies to be managed in-line by theaws.ecs.Cluster
resource. You cannot use a Cluster with in-line capacity providers in conjunction with the Capacity Providers resource, nor use more than one Capacity Providers resource with a single Cluster, as doing so will cause a conflict and will lead to mutual overwrites.
Example Usage
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.Cluster;
import com.pulumi.aws.ecs.ClusterArgs;
import com.pulumi.aws.ecs.inputs.ClusterSettingArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var foo = new Cluster("foo", ClusterArgs.builder()
.settings(ClusterSettingArgs.builder()
.name("containerInsights")
.value("enabled")
.build())
.build());
}
}
Example with Log Configuration
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.kms.Key;
import com.pulumi.aws.kms.KeyArgs;
import com.pulumi.aws.cloudwatch.LogGroup;
import com.pulumi.aws.ecs.Cluster;
import com.pulumi.aws.ecs.ClusterArgs;
import com.pulumi.aws.ecs.inputs.ClusterConfigurationArgs;
import com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationArgs;
import com.pulumi.aws.ecs.inputs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleKey = new Key("exampleKey", KeyArgs.builder()
.description("example")
.deletionWindowInDays(7)
.build());
var exampleLogGroup = new LogGroup("exampleLogGroup");
var test = new Cluster("test", ClusterArgs.builder()
.configuration(ClusterConfigurationArgs.builder()
.executeCommandConfiguration(ClusterConfigurationExecuteCommandConfigurationArgs.builder()
.kmsKeyId(exampleKey.arn())
.logging("OVERRIDE")
.logConfiguration(ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.builder()
.cloudWatchEncryptionEnabled(true)
.cloudWatchLogGroupName(exampleLogGroup.name())
.build())
.build())
.build())
.build());
}
}
Example with Capacity Providers
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.ecs.Cluster;
import com.pulumi.aws.ecs.CapacityProvider;
import com.pulumi.aws.ecs.CapacityProviderArgs;
import com.pulumi.aws.ecs.inputs.CapacityProviderAutoScalingGroupProviderArgs;
import com.pulumi.aws.ecs.ClusterCapacityProviders;
import com.pulumi.aws.ecs.ClusterCapacityProvidersArgs;
import com.pulumi.aws.ecs.inputs.ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var exampleCluster = new Cluster("exampleCluster");
var exampleCapacityProvider = new CapacityProvider("exampleCapacityProvider", CapacityProviderArgs.builder()
.autoScalingGroupProvider(CapacityProviderAutoScalingGroupProviderArgs.builder()
.autoScalingGroupArn(aws_autoscaling_group.example().arn())
.build())
.build());
var exampleClusterCapacityProviders = new ClusterCapacityProviders("exampleClusterCapacityProviders", ClusterCapacityProvidersArgs.builder()
.clusterName(exampleCluster.name())
.capacityProviders(exampleCapacityProvider.name())
.defaultCapacityProviderStrategies(ClusterCapacityProvidersDefaultCapacityProviderStrategyArgs.builder()
.base(1)
.weight(100)
.capacityProvider(exampleCapacityProvider.name())
.build())
.build());
}
}
Import
ECS clusters can be imported using the name
, e.g.,
$ pulumi import aws:ecs/cluster:Cluster stateless stateless-app
Constructors
Properties
List of short names of one or more capacity providers to associate with the cluster. Valid values also include FARGATE
and FARGATE_SPOT
.
The execute command configuration for the cluster. Detailed below.
Configuration block for capacity provider strategy to use by default for the cluster. Can be one or more. Detailed below.
Configures a default Service Connect namespace. Detailed below.
Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below.