Cluster

class Cluster : KotlinCustomResource

Provides an ECS cluster.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const foo = new aws.ecs.Cluster("foo", {
name: "white-hart",
settings: [{
name: "containerInsights",
value: "enabled",
}],
});
import pulumi
import pulumi_aws as aws
foo = aws.ecs.Cluster("foo",
name="white-hart",
settings=[aws.ecs.ClusterSettingArgs(
name="containerInsights",
value="enabled",
)])
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var foo = new Aws.Ecs.Cluster("foo", new()
{
Name = "white-hart",
Settings = new[]
{
new Aws.Ecs.Inputs.ClusterSettingArgs
{
Name = "containerInsights",
Value = "enabled",
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := ecs.NewCluster(ctx, "foo", &ecs.ClusterArgs{
Name: pulumi.String("white-hart"),
Settings: ecs.ClusterSettingArray{
&ecs.ClusterSettingArgs{
Name: pulumi.String("containerInsights"),
Value: pulumi.String("enabled"),
},
},
})
if err != nil {
return err
}
return nil
})
}
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()
.name("white-hart")
.settings(ClusterSettingArgs.builder()
.name("containerInsights")
.value("enabled")
.build())
.build());
}
}
resources:
foo:
type: aws:ecs:Cluster
properties:
name: white-hart
settings:
- name: containerInsights
value: enabled

Example with Log Configuration

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";
const example = new aws.kms.Key("example", {
description: "example",
deletionWindowInDays: 7,
});
const exampleLogGroup = new aws.cloudwatch.LogGroup("example", {name: "example"});
const test = new aws.ecs.Cluster("test", {
name: "example",
configuration: {
executeCommandConfiguration: {
kmsKeyId: example.arn,
logging: "OVERRIDE",
logConfiguration: {
cloudWatchEncryptionEnabled: true,
cloudWatchLogGroupName: exampleLogGroup.name,
},
},
},
});
import pulumi
import pulumi_aws as aws
example = aws.kms.Key("example",
description="example",
deletion_window_in_days=7)
example_log_group = aws.cloudwatch.LogGroup("example", name="example")
test = aws.ecs.Cluster("test",
name="example",
configuration=aws.ecs.ClusterConfigurationArgs(
execute_command_configuration=aws.ecs.ClusterConfigurationExecuteCommandConfigurationArgs(
kms_key_id=example.arn,
logging="OVERRIDE",
log_configuration=aws.ecs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs(
cloud_watch_encryption_enabled=True,
cloud_watch_log_group_name=example_log_group.name,
),
),
))
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;
return await Deployment.RunAsync(() =>
{
var example = new Aws.Kms.Key("example", new()
{
Description = "example",
DeletionWindowInDays = 7,
});
var exampleLogGroup = new Aws.CloudWatch.LogGroup("example", new()
{
Name = "example",
});
var test = new Aws.Ecs.Cluster("test", new()
{
Name = "example",
Configuration = new Aws.Ecs.Inputs.ClusterConfigurationArgs
{
ExecuteCommandConfiguration = new Aws.Ecs.Inputs.ClusterConfigurationExecuteCommandConfigurationArgs
{
KmsKeyId = example.Arn,
Logging = "OVERRIDE",
LogConfiguration = new Aws.Ecs.Inputs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs
{
CloudWatchEncryptionEnabled = true,
CloudWatchLogGroupName = exampleLogGroup.Name,
},
},
},
});
});
package main
import (
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/cloudwatch"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecs"
"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
example, err := kms.NewKey(ctx, "example", &kms.KeyArgs{
Description: pulumi.String("example"),
DeletionWindowInDays: pulumi.Int(7),
})
if err != nil {
return err
}
exampleLogGroup, err := cloudwatch.NewLogGroup(ctx, "example", &cloudwatch.LogGroupArgs{
Name: pulumi.String("example"),
})
if err != nil {
return err
}
_, err = ecs.NewCluster(ctx, "test", &ecs.ClusterArgs{
Name: pulumi.String("example"),
Configuration: &ecs.ClusterConfigurationArgs{
ExecuteCommandConfiguration: &ecs.ClusterConfigurationExecuteCommandConfigurationArgs{
KmsKeyId: example.Arn,
Logging: pulumi.String("OVERRIDE"),
LogConfiguration: &ecs.ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs{
CloudWatchEncryptionEnabled: pulumi.Bool(true),
CloudWatchLogGroupName: exampleLogGroup.Name,
},
},
},
})
if err != nil {
return err
}
return nil
})
}
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.cloudwatch.LogGroupArgs;
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 example = new Key("example", KeyArgs.builder()
.description("example")
.deletionWindowInDays(7)
.build());
var exampleLogGroup = new LogGroup("exampleLogGroup", LogGroupArgs.builder()
.name("example")
.build());
var test = new Cluster("test", ClusterArgs.builder()
.name("example")
.configuration(ClusterConfigurationArgs.builder()
.executeCommandConfiguration(ClusterConfigurationExecuteCommandConfigurationArgs.builder()
.kmsKeyId(example.arn())
.logging("OVERRIDE")
.logConfiguration(ClusterConfigurationExecuteCommandConfigurationLogConfigurationArgs.builder()
.cloudWatchEncryptionEnabled(true)
.cloudWatchLogGroupName(exampleLogGroup.name())
.build())
.build())
.build())
.build());
}
}
resources:
example:
type: aws:kms:Key
properties:
description: example
deletionWindowInDays: 7
exampleLogGroup:
type: aws:cloudwatch:LogGroup
name: example
properties:
name: example
test:
type: aws:ecs:Cluster
properties:
name: example
configuration:
executeCommandConfiguration:
kmsKeyId: ${example.arn}
logging: OVERRIDE
logConfiguration:
cloudWatchEncryptionEnabled: true
cloudWatchLogGroupName: ${exampleLogGroup.name}

Import

Using pulumi import, import ECS clusters using the name. For example:

$ pulumi import aws:ecs/cluster:Cluster stateless stateless-app

Properties

Link copied to clipboard
val arn: Output<String>

ARN that identifies the cluster.

Link copied to clipboard

The execute command configuration for the cluster. Detailed below.

Link copied to clipboard
val id: Output<String>
Link copied to clipboard
val name: Output<String>

Name of the cluster (up to 255 letters, numbers, hyphens, and underscores)

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard

Configures a default Service Connect namespace. Detailed below.

Link copied to clipboard

Configuration block(s) with cluster settings. For example, this can be used to enable CloudWatch Container Insights for a cluster. Detailed below.

Link copied to clipboard
val tags: Output<Map<String, String>>?

Key-value map of resource tags. If configured with a provider default_tags configuration block present, tags with matching keys will overwrite those defined at the provider-level.

Link copied to clipboard
val tagsAll: Output<Map<String, String>>

Map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.

Link copied to clipboard
val urn: Output<String>