Package com.pulumi.aws.codedeploy
Class DeploymentGroup
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.codedeploy.DeploymentGroup
-
public class DeploymentGroup extends com.pulumi.resources.CustomResourceProvides a CodeDeploy Deployment Group for a CodeDeploy Application > **NOTE on blue/green deployments:** When using `greenFleetProvisioningOption` with the `COPY_AUTO_SCALING_GROUP` action, CodeDeploy will create a new ASG with a different name. This ASG is _not_ managed by this provider and will conflict with existing configuration and state. You may want to use a different approach to managing deployments that involve multiple ASG, such as `DISCOVER_EXISTING` with separate blue and green ASG. ## Example Usage
### Blue Green Deployments with ECSpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.iam.IamFunctions; import com.pulumi.aws.iam.inputs.GetPolicyDocumentArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementArgs; import com.pulumi.aws.iam.inputs.GetPolicyDocumentStatementPrincipalArgs; import com.pulumi.aws.iam.Role; import com.pulumi.aws.iam.RoleArgs; import com.pulumi.aws.iam.RolePolicyAttachment; import com.pulumi.aws.iam.RolePolicyAttachmentArgs; import com.pulumi.aws.codedeploy.Application; import com.pulumi.aws.codedeploy.ApplicationArgs; import com.pulumi.aws.sns.Topic; import com.pulumi.aws.sns.TopicArgs; import com.pulumi.aws.codedeploy.DeploymentGroup; import com.pulumi.aws.codedeploy.DeploymentGroupArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupAutoRollbackConfigurationArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupAlarmConfigurationArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupEc2TagSetArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupEc2TagSetEc2TagFilterArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupTriggerConfigurationArgs; import java.util.ArrayList; import java.util.Arrays; 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) { final var assumeRole = IamFunctions.getPolicyDocument(GetPolicyDocumentArgs.builder() .statements(GetPolicyDocumentStatementArgs.builder() .principals(GetPolicyDocumentStatementPrincipalArgs.builder() .type("Service") .identifiers("codedeploy.amazonaws.com") .build()) .effect("Allow") .actions("sts:AssumeRole") .build()) .build()); var example = new Role("example", RoleArgs.builder() .name("example-role") .assumeRolePolicy(assumeRole.json()) .build()); var aWSCodeDeployRole = new RolePolicyAttachment("aWSCodeDeployRole", RolePolicyAttachmentArgs.builder() .policyArn("arn:aws:iam::aws:policy/service-role/AWSCodeDeployRole") .role(example.name()) .build()); var exampleApplication = new Application("exampleApplication", ApplicationArgs.builder() .name("example-app") .build()); var exampleTopic = new Topic("exampleTopic", TopicArgs.builder() .name("example-topic") .build()); var exampleDeploymentGroup = new DeploymentGroup("exampleDeploymentGroup", DeploymentGroupArgs.builder() .autoRollbackConfiguration(DeploymentGroupAutoRollbackConfigurationArgs.builder() .enabled(true) .events("DEPLOYMENT_FAILURE") .build()) .alarmConfiguration(DeploymentGroupAlarmConfigurationArgs.builder() .alarms("my-alarm-name") .enabled(true) .build()) .ec2TagSets(DeploymentGroupEc2TagSetArgs.builder() .ec2TagFilters( DeploymentGroupEc2TagSetEc2TagFilterArgs.builder() .key("filterkey1") .type("KEY_AND_VALUE") .value("filtervalue") .build(), DeploymentGroupEc2TagSetEc2TagFilterArgs.builder() .key("filterkey2") .type("KEY_AND_VALUE") .value("filtervalue") .build()) .build()) .triggerConfigurations(DeploymentGroupTriggerConfigurationArgs.builder() .triggerEvents("DeploymentFailure") .triggerName("example-trigger") .triggerTargetArn(exampleTopic.arn()) .build()) .appName(exampleApplication.name()) .deploymentGroupName("example-group") .serviceRoleArn(example.arn()) .outdatedInstancesStrategy("UPDATE") .build()); } }
### Blue Green Deployments with Servers and Classic ELBpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.codedeploy.Application; import com.pulumi.aws.codedeploy.ApplicationArgs; import com.pulumi.aws.codedeploy.DeploymentGroup; import com.pulumi.aws.codedeploy.DeploymentGroupArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupAutoRollbackConfigurationArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupBlueGreenDeploymentConfigArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupBlueGreenDeploymentConfigDeploymentReadyOptionArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupBlueGreenDeploymentConfigTerminateBlueInstancesOnDeploymentSuccessArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupDeploymentStyleArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupEcsServiceArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupLoadBalancerInfoArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupLoadBalancerInfoTargetGroupPairInfoArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupLoadBalancerInfoTargetGroupPairInfoProdTrafficRouteArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroupArgs; import java.util.ArrayList; import java.util.Arrays; 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 Application("example", ApplicationArgs.builder() .computePlatform("ECS") .name("example") .build()); var exampleDeploymentGroup = new DeploymentGroup("exampleDeploymentGroup", DeploymentGroupArgs.builder() .autoRollbackConfiguration(DeploymentGroupAutoRollbackConfigurationArgs.builder() .enabled(true) .events("DEPLOYMENT_FAILURE") .build()) .blueGreenDeploymentConfig(DeploymentGroupBlueGreenDeploymentConfigArgs.builder() .deploymentReadyOption(DeploymentGroupBlueGreenDeploymentConfigDeploymentReadyOptionArgs.builder() .actionOnTimeout("CONTINUE_DEPLOYMENT") .build()) .terminateBlueInstancesOnDeploymentSuccess(DeploymentGroupBlueGreenDeploymentConfigTerminateBlueInstancesOnDeploymentSuccessArgs.builder() .action("TERMINATE") .terminationWaitTimeInMinutes(5) .build()) .build()) .deploymentStyle(DeploymentGroupDeploymentStyleArgs.builder() .deploymentOption("WITH_TRAFFIC_CONTROL") .deploymentType("BLUE_GREEN") .build()) .ecsService(DeploymentGroupEcsServiceArgs.builder() .clusterName(exampleAwsEcsCluster.name()) .serviceName(exampleAwsEcsService.name()) .build()) .loadBalancerInfo(DeploymentGroupLoadBalancerInfoArgs.builder() .targetGroupPairInfo(DeploymentGroupLoadBalancerInfoTargetGroupPairInfoArgs.builder() .prodTrafficRoute(DeploymentGroupLoadBalancerInfoTargetGroupPairInfoProdTrafficRouteArgs.builder() .listenerArns(exampleAwsLbListener.arn()) .build()) .targetGroups( DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroupArgs.builder() .name(blue.name()) .build(), DeploymentGroupLoadBalancerInfoTargetGroupPairInfoTargetGroupArgs.builder() .name(green.name()) .build()) .build()) .build()) .appName(example.name()) .deploymentConfigName("CodeDeployDefault.ECSAllAtOnce") .deploymentGroupName("example") .serviceRoleArn(exampleAwsIamRole.arn()) .build()); } }
## Import Using `pulumi import`, import CodeDeploy Deployment Groups using `appName`, a colon, and `deploymentGroupName`. For example: ```sh $ pulumi import aws:codedeploy/deploymentGroup:DeploymentGroup example my-application:my-deployment-group ```package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.codedeploy.Application; import com.pulumi.aws.codedeploy.ApplicationArgs; import com.pulumi.aws.codedeploy.DeploymentGroup; import com.pulumi.aws.codedeploy.DeploymentGroupArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupDeploymentStyleArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupLoadBalancerInfoArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupLoadBalancerInfoElbInfoArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupBlueGreenDeploymentConfigArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupBlueGreenDeploymentConfigDeploymentReadyOptionArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupBlueGreenDeploymentConfigGreenFleetProvisioningOptionArgs; import com.pulumi.aws.codedeploy.inputs.DeploymentGroupBlueGreenDeploymentConfigTerminateBlueInstancesOnDeploymentSuccessArgs; import java.util.ArrayList; import java.util.Arrays; 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 Application("example", ApplicationArgs.builder() .name("example-app") .build()); var exampleDeploymentGroup = new DeploymentGroup("exampleDeploymentGroup", DeploymentGroupArgs.builder() .deploymentStyle(DeploymentGroupDeploymentStyleArgs.builder() .deploymentOption("WITH_TRAFFIC_CONTROL") .deploymentType("BLUE_GREEN") .build()) .loadBalancerInfo(DeploymentGroupLoadBalancerInfoArgs.builder() .elbInfos(DeploymentGroupLoadBalancerInfoElbInfoArgs.builder() .name(exampleAwsElb.name()) .build()) .build()) .blueGreenDeploymentConfig(DeploymentGroupBlueGreenDeploymentConfigArgs.builder() .deploymentReadyOption(DeploymentGroupBlueGreenDeploymentConfigDeploymentReadyOptionArgs.builder() .actionOnTimeout("STOP_DEPLOYMENT") .waitTimeInMinutes(60) .build()) .greenFleetProvisioningOption(DeploymentGroupBlueGreenDeploymentConfigGreenFleetProvisioningOptionArgs.builder() .action("DISCOVER_EXISTING") .build()) .terminateBlueInstancesOnDeploymentSuccess(DeploymentGroupBlueGreenDeploymentConfigTerminateBlueInstancesOnDeploymentSuccessArgs.builder() .action("KEEP_ALIVE") .build()) .build()) .appName(example.name()) .deploymentGroupName("example-group") .serviceRoleArn(exampleAwsIamRole.arn()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description DeploymentGroup(java.lang.String name)DeploymentGroup(java.lang.String name, DeploymentGroupArgs args)DeploymentGroup(java.lang.String name, DeploymentGroupArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<DeploymentGroupAlarmConfiguration>>alarmConfiguration()com.pulumi.core.Output<java.lang.String>appName()com.pulumi.core.Output<java.lang.String>arn()com.pulumi.core.Output<java.util.Optional<DeploymentGroupAutoRollbackConfiguration>>autoRollbackConfiguration()com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>>autoscalingGroups()com.pulumi.core.Output<DeploymentGroupBlueGreenDeploymentConfig>blueGreenDeploymentConfig()com.pulumi.core.Output<java.lang.String>computePlatform()com.pulumi.core.Output<java.util.Optional<java.lang.String>>deploymentConfigName()com.pulumi.core.Output<java.lang.String>deploymentGroupId()com.pulumi.core.Output<java.lang.String>deploymentGroupName()com.pulumi.core.Output<java.util.Optional<DeploymentGroupDeploymentStyle>>deploymentStyle()com.pulumi.core.Output<java.util.Optional<java.util.List<DeploymentGroupEc2TagFilter>>>ec2TagFilters()com.pulumi.core.Output<java.util.Optional<java.util.List<DeploymentGroupEc2TagSet>>>ec2TagSets()com.pulumi.core.Output<java.util.Optional<DeploymentGroupEcsService>>ecsService()static DeploymentGroupget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, DeploymentGroupState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.util.Optional<DeploymentGroupLoadBalancerInfo>>loadBalancerInfo()com.pulumi.core.Output<java.util.Optional<java.util.List<DeploymentGroupOnPremisesInstanceTagFilter>>>onPremisesInstanceTagFilters()com.pulumi.core.Output<java.util.Optional<java.lang.String>>outdatedInstancesStrategy()com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>serviceRoleArn()com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>>tags()com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>>tagsAll()com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>>terminationHookEnabled()com.pulumi.core.Output<java.util.Optional<java.util.List<DeploymentGroupTriggerConfiguration>>>triggerConfigurations()
-
-
-
Constructor Detail
-
DeploymentGroup
public DeploymentGroup(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
DeploymentGroup
public DeploymentGroup(java.lang.String name, DeploymentGroupArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
DeploymentGroup
public DeploymentGroup(java.lang.String name, DeploymentGroupArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
alarmConfiguration
public com.pulumi.core.Output<java.util.Optional<DeploymentGroupAlarmConfiguration>> alarmConfiguration()
- Returns:
- Configuration block of alarms associated with the deployment group (documented below).
-
appName
public com.pulumi.core.Output<java.lang.String> appName()
- Returns:
- The name of the application.
-
arn
public com.pulumi.core.Output<java.lang.String> arn()
- Returns:
- The ARN of the CodeDeploy deployment group.
-
autoRollbackConfiguration
public com.pulumi.core.Output<java.util.Optional<DeploymentGroupAutoRollbackConfiguration>> autoRollbackConfiguration()
- Returns:
- Configuration block of the automatic rollback configuration associated with the deployment group (documented below).
-
autoscalingGroups
public com.pulumi.core.Output<java.util.Optional<java.util.List<java.lang.String>>> autoscalingGroups()
- Returns:
- Auto Scaling groups associated with the deployment group.
-
blueGreenDeploymentConfig
public com.pulumi.core.Output<DeploymentGroupBlueGreenDeploymentConfig> blueGreenDeploymentConfig()
- Returns:
- Configuration block of the blue/green deployment options for a deployment group (documented below).
-
computePlatform
public com.pulumi.core.Output<java.lang.String> computePlatform()
- Returns:
- The destination platform type for the deployment.
-
deploymentConfigName
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> deploymentConfigName()
- Returns:
- The name of the group's deployment config. The default is "CodeDeployDefault.OneAtATime".
-
deploymentGroupId
public com.pulumi.core.Output<java.lang.String> deploymentGroupId()
- Returns:
- The ID of the CodeDeploy deployment group.
-
deploymentGroupName
public com.pulumi.core.Output<java.lang.String> deploymentGroupName()
- Returns:
- The name of the deployment group.
-
deploymentStyle
public com.pulumi.core.Output<java.util.Optional<DeploymentGroupDeploymentStyle>> deploymentStyle()
- Returns:
- Configuration block of the type of deployment, either in-place or blue/green, you want to run and whether to route deployment traffic behind a load balancer (documented below).
-
ec2TagFilters
public com.pulumi.core.Output<java.util.Optional<java.util.List<DeploymentGroupEc2TagFilter>>> ec2TagFilters()
- Returns:
- Tag filters associated with the deployment group. See the AWS docs for details.
-
ec2TagSets
public com.pulumi.core.Output<java.util.Optional<java.util.List<DeploymentGroupEc2TagSet>>> ec2TagSets()
- Returns:
- Configuration block(s) of Tag filters associated with the deployment group, which are also referred to as tag groups (documented below). See the AWS docs for details.
-
ecsService
public com.pulumi.core.Output<java.util.Optional<DeploymentGroupEcsService>> ecsService()
- Returns:
- Configuration block(s) of the ECS services for a deployment group (documented below).
-
loadBalancerInfo
public com.pulumi.core.Output<java.util.Optional<DeploymentGroupLoadBalancerInfo>> loadBalancerInfo()
- Returns:
- Single configuration block of the load balancer to use in a blue/green deployment (documented below).
-
onPremisesInstanceTagFilters
public com.pulumi.core.Output<java.util.Optional<java.util.List<DeploymentGroupOnPremisesInstanceTagFilter>>> onPremisesInstanceTagFilters()
- Returns:
- On premise tag filters associated with the group. See the AWS docs for details.
-
outdatedInstancesStrategy
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> outdatedInstancesStrategy()
- Returns:
- Configuration block of Indicates what happens when new Amazon EC2 instances are launched mid-deployment and do not receive the deployed application revision. Valid values are `UPDATE` and `IGNORE`. Defaults to `UPDATE`.
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
serviceRoleArn
public com.pulumi.core.Output<java.lang.String> serviceRoleArn()
- Returns:
- The service role ARN that allows deployments.
-
tags
public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,java.lang.String>>> tags()
- Returns:
- Key-value map of resource tags. .If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
-
tagsAll
public com.pulumi.core.Output<java.util.Map<java.lang.String,java.lang.String>> tagsAll()
- Returns:
- A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block.
-
terminationHookEnabled
public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> terminationHookEnabled()
- Returns:
- Indicates whether the deployment group was configured to have CodeDeploy install a termination hook into an Auto Scaling group.
-
triggerConfigurations
public com.pulumi.core.Output<java.util.Optional<java.util.List<DeploymentGroupTriggerConfiguration>>> triggerConfigurations()
- Returns:
- Configuration block(s) of the triggers for the deployment group (documented below).
-
get
public static DeploymentGroup get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable DeploymentGroupState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-