Terraform modules that are related to codedeploy
Create a codedeploy app
Name | Version |
---|---|
terraform | >= 0.12 |
Name | Version |
---|---|
aws | n/a |
Name | Description | Type | Default | Required |
---|---|---|---|---|
name | Name of your codedeploy application | any |
n/a | yes |
project | The current project | any |
n/a | yes |
s3_bucket_arn | ARN of the S3 bucket where to fetch the application revision packages | string |
"" |
no |
Name | Description |
---|---|
app_name | n/a |
deployer_policy_arn | n/a |
deployer_policy_id | n/a |
deployer_policy_name | n/a |
module "codedeploy" {
source = "github.com/skyscrapers/terraform-codedeploy//app"
name = "application"
project = "example"
}
Create an deployment group for a codedeploy app
Name | Version |
---|---|
terraform | >= 0.12 |
Name | Version |
---|---|
aws | n/a |
Name | Description | Type | Default | Required |
---|---|---|---|---|
app_name | Name of the app | any |
n/a | yes |
autoscaling_groups | Autoscaling groups you want to attach to the deployment group | list(string) |
n/a | yes |
environment | Environment where your codedeploy deployment group is used for | any |
n/a | yes |
service_role_arn | IAM role that is used by the deployment group | any |
n/a | yes |
alb_target_group | Name of the ALB target group to use, define it when traffic need to be blocked from ALB during deployment | string |
null |
no |
blue_termination_behavior | The action to take on instances in the original environment after a successful deployment. Only relevant when enable_bluegreen is true |
string |
"KEEP_ALIVE" |
no |
bluegreen_timeout_action | When to reroute traffic from an original environment to a replacement environment. Only relevant when enable_bluegreen is true |
string |
"CONTINUE_DEPLOYMENT" |
no |
ec2_tag_filter | Filter key and value you want to use for tags filters. Defined as key/value format, example: {"Environment":"staging"} |
map(string) |
null |
no |
enable_bluegreen | Enable all bluegreen deployment options | bool |
false |
no |
green_provisioning | The method used to add instances to a replacement environment. Only relevant when enable_bluegreen is true |
string |
"COPY_AUTO_SCALING_GROUP" |
no |
rollback_enabled | Whether to enable auto rollback | bool |
false |
no |
rollback_events | The event types that trigger a rollback | list(string) |
[ |
no |
trigger_events | events that can trigger the notifications | list(string) |
[ |
no |
trigger_target_arn | The ARN of the SNS topic through which notifications are sent | string |
null |
no |
No output.
module "deployment_group" {
source = "github.com/skyscrapers/terraform-codedeploy//deployment-group"
environment = "production"
app_name = module.codedeploy.app_name
service_role_arn = module.iam.arn_role
autoscaling_groups = ["autoscaling1", "autoscaling2"]
}
Create an S3 bucket to use with Codedeploy, to store application revisions.
Name | Version |
---|---|
terraform | >= 0.12 |
Name | Version |
---|---|
aws | n/a |
Name | Description | Type | Default | Required |
---|---|---|---|---|
name_prefix | Prefix for the bucket name. Note that the same bucket is used for all codedeploy deployment groups | any |
n/a | yes |
Name | Description |
---|---|
bucket_arn | n/a |
bucket_id | n/a |
policy_arn | n/a |
policy_id | n/a |
policy_name | n/a |
module "codedeploy_bucket" {
source = "github.com/skyscrapers/terraform-codedeploy//s3bucket?ref=478373f6f8d4a46b7a1ec96090707365e0ae3e42"
name_prefix = "app"
}
Creates a lambda function that notifies Slack via the incoming webhooks when a deployment event happens using an SNS topic to call the lambda function.
Name | Version |
---|---|
terraform | >= 0.12 |
Name | Version |
---|---|
archive | n/a |
aws | n/a |
Name | Description | Type | Default | Required |
---|---|---|---|---|
kms_key_arn | KMS used for encrypting the webhook | any |
n/a | yes |
slack_channel | E.g. #channel_name | any |
n/a | yes |
slack_webhook_url | Needs to be encrypted from a file with no encryption context, using: aws kms encrypt --key-id 'arn:' --plaintext 'fileb://webhook' --output text --query CiphertextBlob | any |
n/a | yes |
notify_users | Slack usernames for mentions as a space separated string as '<@name1> <@name2>' or '<!channel>' or '<!here>' | string |
"" |
no |
verbose | All codedeploy messages will be output if true. Only CREATED, FAILED, STOPPED and SUCCEEDED if it is empty or false | string |
"true" |
no |
Name | Description |
---|---|
sns_topic | n/a |
module "slack-notification" {
source = "github.com/skyscrapers/terraform-codedeploy//notify-slack"
slack_webhook_url = "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
slack_channel = "#channel_name"
kms_key_arn = aws_kms_key.kms_key.arn
}