package ecs
import ecs "github.com/janduursma/pulumi-component-aws-ecs"
Package ecs is a package that's designed to simplify the creation of AWS ECS (Elastic Container Service) resources using Pulumi.
To get started with this package, import it like so:
import "github.com/janduursma/pulumi-component-aws-ecs"
Then, create resources by calling functions provided by the package.
Descriptions of the provided functions and their parameters are available in the function doc comments in this package.
Example usage of these functions can be found in the /examples directory at the root of this package repository. These examples provide full, working demonstrations of creating various AWS ECS resources using this package.
For more information, consult the package README or the /examples directory.
Index
- func NewAccountSettingsDefault(ctx *pulumi.Context, accountSettingsDefault []AccountSettingDefaultConfig, ...) ([]*ecs.AccountSettingDefault, error)
- func NewCapacityProviders(ctx *pulumi.Context, capacityProviders []CapacityProviderConfig, ...) error
- func NewCluster(ctx *pulumi.Context, config ClusterConfig, opts ...pulumi.ResourceOption) (*clusterOutput, error)
- func NewClusterCapacityProvider(ctx *pulumi.Context, config ClusterCapacityProviderConfig, ...) error
- func NewService(ctx *pulumi.Context, config ServiceConfig, opts ...pulumi.ResourceOption) (*serviceOutput, error)
- func NewTaskDefinition(ctx *pulumi.Context, config TaskDefinitionConfig, ...) (*taskDefinitionOutput, error)
- func NewTaskSets(ctx *pulumi.Context, taskSets []TaskSetConfig, opts ...pulumi.ResourceOption) ([]*taskSetOutput, error)
- type AccountSettingDefaultConfig
- type CapacityProviderConfig
- type ClusterCapacityProviderConfig
- type ClusterConfig
- type ServiceConfig
- type TaskDefinitionConfig
- type TaskSetConfig
Functions
func NewAccountSettingsDefault
func NewAccountSettingsDefault(ctx *pulumi.Context, accountSettingsDefault []AccountSettingDefaultConfig, opts ...pulumi.ResourceOption) ([]*ecs.AccountSettingDefault, error)
NewAccountSettingsDefault creates new AWS ECS default account settings.
func NewCapacityProviders
func NewCapacityProviders(ctx *pulumi.Context, capacityProviders []CapacityProviderConfig, opts ...pulumi.ResourceOption) error
NewCapacityProviders creates new ECS capacity providers.
func NewCluster
func NewCluster(ctx *pulumi.Context, config ClusterConfig, opts ...pulumi.ResourceOption) (*clusterOutput, error)
NewCluster creates a new ECS cluster.
func NewClusterCapacityProvider
func NewClusterCapacityProvider(ctx *pulumi.Context, config ClusterCapacityProviderConfig, opts ...pulumi.ResourceOption) error
NewClusterCapacityProvider creates a new capacity provider for an AWS ECS cluster.
func NewService
func NewService(ctx *pulumi.Context, config ServiceConfig, opts ...pulumi.ResourceOption) (*serviceOutput, error)
NewService creates a new AWS ECS service.
func NewTaskDefinition
func NewTaskDefinition(ctx *pulumi.Context, config TaskDefinitionConfig, opts ...pulumi.ResourceOption) (*taskDefinitionOutput, error)
NewTaskDefinition creates a new AWS ECS task definition.
func NewTaskSets
func NewTaskSets(ctx *pulumi.Context, taskSets []TaskSetConfig, opts ...pulumi.ResourceOption) ([]*taskSetOutput, error)
NewTaskSets creates new AWS ECS task sets.
Types
type AccountSettingDefaultConfig
type AccountSettingDefaultConfig struct { Name string `json:"name"` Value string `json:"value"` }
AccountSettingDefaultConfig defines arguments for AWS ECS account settings.
type CapacityProviderConfig
type CapacityProviderConfig struct { AutoscalingGroupProvider struct { AutoscalingGroupArn string `json:"autoscalingGroupArn"` ManagedDraining *string `json:"managedDraining,omitempty"` ManagedScaling *struct { InstanceWarmupPeriod *int `json:"instanceWarmupPeriod,omitempty"` MaximumScalingStepSize *int `json:"maximumScalingStepSize,omitempty"` MinimumScalingStepSize *int `json:"minimumScalingStepSize,omitempty"` Status *string `json:"status,omitempty"` TargetCapacity *int `json:"targetCapacity,omitempty"` } `json:"managedScaling"` ManagedTerminationProtection *string `json:"managedTerminationProtection,omitempty"` } `json:"autoscalingGroupProvider"` Name string `json:"name"` Tags map[string]string `json:"tags,omitempty"` }
CapacityProviderConfig defines arguments for AWS ECS capacity provider.
type ClusterCapacityProviderConfig
type ClusterCapacityProviderConfig struct { CapacityProviders []string `json:"capacityProviders,omitempty"` ClusterName string `json:"clusterName"` DefaultCapacityProviderStrategies []struct { Base *int `json:"base,omitempty"` CapacityProvider string `json:"capacityProvider"` Weight *int `json:"weight,omitempty"` } `json:"defaultCapacityProviderStrategies"` }
ClusterCapacityProviderConfig defines arguments for setting up capacity providers for an AWS ECS cluster.
type ClusterConfig
type ClusterConfig struct { Configuration *struct { ExecuteCommand struct { KmsKeyID *string `json:"kmsKeyId,omitempty"` LogConfiguration *struct { CloudWatchEncryptionEnabled *bool `json:"cloudWatchEncryptionEnabled,omitempty"` CloudWatchLogGroupName *string `json:"cloudWatchLogGroupName,omitempty"` S3BucketEncryptionEnabled *bool `json:"s3BucketEncryptionEnabled,omitempty"` S3BucketName *string `json:"s3BucketName,omitempty"` S3KeyPrefix *string `json:"s3KeyPrefix,omitempty"` } `json:"logConfiguration"` Logging *string `json:"logging,omitempty"` } `json:"executeCommand"` } `json:"configuration"` Name string `json:"name"` ServiceConnectDefaults *struct { Namespace string `json:"namespace"` } `json:"serviceConnectDefaults"` Settings []struct { Name string `json:"name"` Value string `json:"value"` } `json:"settings"` Tags map[string]string `json:"tags,omitempty"` }
ClusterConfig defines arguments for creating an AWS ECS cluster.
type ServiceConfig
type ServiceConfig struct { Alarms *struct { AlarmNames []string `json:"alarmNames"` Enable bool `json:"enable"` Rollback bool `json:"rollback"` } `json:"alarms"` CapacityProviderStrategies []struct { CapacityProvider string `json:"name"` Base *int `json:"base,omitempty"` Weight *int `json:"weight,omitempty"` } `json:"capacityProviderStrategies"` ClusterArn string `json:"clusterArn"` DeploymentCircuitBreaker *struct { Enable bool `json:"enable"` Rollback bool `json:"rollback"` } `json:"deploymentCircuitBreaker"` DeploymentController *struct { Type *string `json:"type,omitempty"` } `json:"deploymentController"` DeploymentMaximumPercent *int `json:"deploymentMaximumPercent,omitempty"` DeploymentMinimumHealthyPercent *int `json:"deploymentMinimumHealthyPercent,omitempty"` DesiredCount *int `json:"desiredCount,omitempty"` EnableEcsManagedTags *bool `json:"enableEcsManagedTags,omitempty"` EnableExecuteCommand *bool `json:"enableExecuteCommand,omitempty"` ForceNewDeployment *bool `json:"forceNewDeployment,omitempty"` HealthCheckGracePeriodSeconds *int `json:"healthCheckGracePeriodSeconds,omitempty"` IamRole *string `json:"iamRole,omitempty"` LaunchType *string `json:"launchType,omitempty"` LoadBalancers []struct { ContainerName string `json:"containerName"` ContainerPort int `json:"containerPort"` ElbName *string `json:"elbName,omitempty"` TargetGroupArn *string `json:"targetGroupArn,omitempty"` } `json:"loadBalancers"` Name string `json:"name"` NetworkConfiguration *struct { AssignPublicIP *bool `json:"assignPublicIp,omitempty"` SecurityGroups []string `json:"securityGroups,omitempty"` Subnets []string `json:"subnets"` } `json:"networkConfiguration"` OrderedPlacementStrategies []struct { Field *string `json:"field,omitempty"` Type string `json:"type"` } `json:"orderedPlacementStrategies"` PlacementConstraints []struct { Expression *string `json:"expression,omitempty"` Type string `json:"type"` } `json:"placementConstraints"` PlatformVersion *string `json:"platformVersion,omitempty"` PropagateTags *string `json:"propagateTags,omitempty"` SchedulingStrategy *string `json:"schedulingStrategy,omitempty"` ServiceConnectConfiguration *struct { Enabled bool `json:"enabled"` LogConfiguration *struct { LogDriver string `json:"logDriver"` Options map[string]string `json:"options,omitempty"` SecretOptions []struct { Name string `json:"name"` ValueFrom string `json:"valueFrom"` } `json:"secretOptions"` } `json:"logConfiguration"` Namespace *string `json:"namespace,omitempty"` Services []struct { ClientAlias []struct { Port int `json:"port"` DNSName string `json:"dnsName,omitempty"` } `json:"clientAlias"` DiscoveryName *string `json:"discoveryName,omitempty"` IngressPortOverride *int `json:"ingressPortOverride,omitempty"` PortName string `json:"portName"` Timeout *struct { IdleTimeoutSeconds *int `json:"idleTimeoutSeconds,omitempty"` PerRequestTimeoutSeconds *int `json:"perRequestTimeoutSeconds,omitempty"` } `json:"timeout"` TLS *struct { IssuerCertAuthority struct { AwsPcaAuthorityArn string `json:"awsPcaAuthorityArn"` } `json:"issuerCertAuthority"` KmsKey *string `json:"kmsKey,omitempty"` RoleArn *string `json:"roleArn,omitempty"` } `json:"tls"` } `json:"services"` } `json:"serviceConnectConfiguration"` ServiceRegistry *struct { ContainerName *string `json:"containerName,omitempty"` ContainerPort *int `json:"containerPort,omitempty"` Port *int `json:"port,omitempty"` RegistryArn string `json:"registryArn"` } `json:"serviceRegistry"` ServiceVolumeConfiguration *struct { ManagedEBSVolume struct { Encrypted *bool `json:"encrypted,omitempty"` FileSystemType *string `json:"fileSystemType,omitempty"` Iops *int `json:"iops,omitempty"` KmsKeyID *string `json:"kmsKeyId,omitempty"` RoleArn string `json:"roleArn"` SizeInGB *int `json:"sizeInGb,omitempty"` SnapshotID *string `json:"snapshotId,omitempty"` Throughput *string `json:"throughput,omitempty"` VolumeType *string `json:"volumeType,omitempty"` } `json:"managedEBSVolume"` Name string `json:"name"` } `json:"serviceVolumeConfiguration"` Tags map[string]string `json:"tags"` TaskDefinition *string `json:"taskDefinition,omitempty"` Triggers map[string]string `json:"triggers"` WaitForSteadyState *bool `json:"waitForSteadyState,omitempty"` }
ServiceConfig defines arguments for creating an AWS ECS service.
type TaskDefinitionConfig
type TaskDefinitionConfig struct { ContainerDefinitions []map[string]interface{} `json:"containerDefinitions"` CPU *string `json:"cpu,omitempty"` EphemeralStorage *struct { SizeInGB int `json:"sizeInGb"` } `json:"ephemeralStorage"` ExecutionRoleArn *string `json:"executionRoleArn,omitempty"` InferenceAccelerators []struct { DeviceName string `json:"deviceName"` DeviceType string `json:"deviceType"` } `json:"inferenceAccelerators"` IpcMode *string `json:"ipcMode,omitempty"` Memory *string `json:"memory,omitempty"` Name string `json:"name"` NetworkMode *string `json:"networkMode,omitempty"` PidMode *string `json:"pidMode,omitempty"` PlacementConstraints []struct { Expression *string `json:"expression,omitempty"` Type string `json:"type"` } `json:"placementConstraints"` ProxyConfiguration *struct { ContainerName string `json:"containerName"` Properties map[string]string `json:"properties"` Type *string `json:"type,omitempty"` } `json:"proxyConfiguration"` RequiresCompatibilities []string `json:"requiresCompatibilities"` RuntimePlatform *struct { CPUArchitecture *string `json:"cpuArchitecture,omitempty"` OperatingSystemFamily *string `json:"operatingSystemFamily,omitempty"` } `json:"runtimePlatform"` SkipDestroy *bool `json:"skipDestroy,omitempty"` Tags map[string]string `json:"tags"` TaskRoleArn *string `json:"taskRoleArn,omitempty"` TrackLatest *bool `json:"trackLatest,omitempty"` Volumes []struct { ConfigureAtLaunch *bool `json:"configureAtLaunch,omitempty"` DockerVolumeConfiguration *struct { Autoprovision *bool `json:"autoprovision,omitempty"` Driver *string `json:"driver,omitempty"` DriverOpts map[string]string `json:"driverOpts"` Labels map[string]string `json:"labels"` Scope *string `json:"scope,omitempty"` } `json:"dockerVolumeConfiguration"` EfsVolumeConfiguration *struct { AuthorizationConfig *struct { AccessPointID *string `json:"accessPointId,omitempty"` Iam *string `json:"iam,omitempty"` } `json:"authorizationConfig"` FileSystemID string `json:"fileSystemId"` RootDirectory *string `json:"rootDirectory,omitempty"` TransitEncryption *string `json:"transitEncryption,omitempty"` TransitEncryptionPort *int `json:"transitEncryptionPort,omitempty"` } `json:"efsVolumeConfiguration"` FsxWindowsFileServerVolumeConfiguration *struct { AuthorizationConfig struct { CredentialsParameter string `json:"credentialsParameter"` Domain string `json:"domain"` } FileSystemID string `json:"fileSystemId"` RootDirectory string `json:"rootDirectory"` } `json:"fsxWindowsFileServerVolumeConfiguration"` HostPath *string `json:"hostPath,omitempty"` Name string `json:"name"` } `json:"volumes"` }
TaskDefinitionConfig defines arguments for creating an AWS ECS task definition.
type TaskSetConfig
type TaskSetConfig struct { CapacityProviderStrategies []struct { Base *int `json:"base,omitempty"` CapacityProvider string `json:"capacityProvider"` Weight int `json:"weight"` } `json:"capacityProviderStrategies"` Cluster string `json:"cluster"` ExternalID *string `json:"externalId,omitempty"` ForceDelete *bool `json:"forceDelete,omitempty"` LaunchType *string `json:"launchType,omitempty"` LoadBalancers []struct { ContainerName string `json:"containerName"` ContainerPort *int `json:"containerPort,omitempty"` LoadBalancerName *string `json:"loadBalancerName,omitempty"` TargetGroupArn *string `json:"targetGroupArn,omitempty"` } `json:"loadBalancers"` Name string `json:"name"` NetworkConfiguration *struct { AssignPublicIP *bool `json:"assignPublicIp,omitempty"` SecurityGroups []string `json:"securityGroups"` Subnets []string `json:"subnets"` } `json:"networkConfiguration"` PlatformVersion *string `json:"platformVersion,omitempty"` Scale *struct { Unit *string `json:"unit,omitempty"` Value *float64 `json:"value,omitempty"` } `json:"scale"` Service string `json:"service"` ServiceRegistries *struct { ContainerName *string `json:"containerName,omitempty"` ContainerPort *int `json:"containerPort,omitempty"` Port *int `json:"port,omitempty"` RegistryArn string `json:"registryArn"` } `json:"serviceRegistries"` Tags map[string]string `json:"tags"` TaskDefinition string `json:"taskDefinition"` WaitUntilStable *bool `json:"waitUntilStable,omitempty"` WaitUntilStableTimeout *string `json:"waitUntilStableTimeout,omitempty"` }
TaskSetConfig defines arguments for creating an AWS ECS task set.
Directories
| examples/AccountSettingsDefault | |
| examples/CapacityProviders | |
| examples/Cluster | |
| examples/ClusterCapacityProvider | |
| examples/Service | |
| examples/TaskDefinition | |
| examples/TaskSets |