{"id":21725465,"url":"https://github.com/jameswoolfenden/terraform-aws-codedeploy","last_synced_at":"2026-05-11T09:03:56.392Z","repository":{"id":81359185,"uuid":"540314616","full_name":"JamesWoolfenden/terraform-aws-codedeploy","owner":"JamesWoolfenden","description":"Basic codedeploy module","archived":false,"fork":false,"pushed_at":"2023-07-29T20:10:18.000Z","size":48,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-01-25T19:28:03.528Z","etag":null,"topics":["aws","codedeploy","module","terraform"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/JamesWoolfenden.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-09-23T06:48:23.000Z","updated_at":"2022-09-24T23:11:38.000Z","dependencies_parsed_at":"2025-01-25T19:36:16.545Z","dependency_job_id":null,"html_url":"https://github.com/JamesWoolfenden/terraform-aws-codedeploy","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-codedeploy","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-codedeploy/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-codedeploy/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/JamesWoolfenden%2Fterraform-aws-codedeploy/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/JamesWoolfenden","download_url":"https://codeload.github.com/JamesWoolfenden/terraform-aws-codedeploy/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":244706500,"owners_count":20496570,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aws","codedeploy","module","terraform"],"created_at":"2024-11-26T03:17:49.611Z","updated_at":"2026-05-11T09:03:56.294Z","avatar_url":"https://github.com/JamesWoolfenden.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-aws-codedeploy\n\n[![Build Status](https://github.com/JamesWoolfenden/terraform-aws-codedeploy/workflows/Verify%20and%20Bump/badge.svg?branch=master)](https://github.com/JamesWoolfenden/terraform-aws-codedeploy)\n[![Latest Release](https://img.shields.io/github/release/JamesWoolfenden/terraform-aws-codedeploy.svg)](https://github.com/JamesWoolfenden/terraform-aws-codedeploy/releases/latest)\n[![GitHub tag (latest SemVer)](https://img.shields.io/github/tag/JamesWoolfenden/terraform-aws-codedeploy.svg?label=latest)](https://github.com/JamesWoolfenden/terraform-aws-codedeploy/releases/latest)\n![Terraform Version](https://img.shields.io/badge/tf-%3E%3D0.14.0-blue.svg)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/JamesWoolfenden/terraform-aws-codedeploy/cis_aws)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=JamesWoolfenden%2Fterraform-aws-codedeploy\u0026benchmark=CIS+AWS+V1.2)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit\u0026logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![checkov](https://img.shields.io/badge/checkov-verified-brightgreen)](https://www.checkov.io/)\n[![Infrastructure Tests](https://www.bridgecrew.cloud/badges/github/jameswoolfenden/terraform-aws-codedeploy/general)](https://www.bridgecrew.cloud/link/badge?vcs=github\u0026fullRepo=JamesWoolfenden%2Fterraform-aws-codedeploy\u0026benchmark=INFRASTRUCTURE+SECURITY)\n\nTerraform module.\n\n---\n\nIt's 100% Open Source and licensed under the [APACHE2](LICENSE).\n\n## Usage\n\n```terraform\nmodule \"codedeploy\" {\n  source            = \"JamesWoolfenden/budget/aws\"\n  version           = \"0.0.1\"\n  tags= {\n    pike=\"permissions\"\n  }\n}\n```\n\n\n\u003c!-- BEGINNING OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n## Requirements\n\nNo requirements.\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_aws\"\u003e\u003c/a\u003e [aws](#provider\\_aws) | n/a |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [aws_codedeploy_app.example](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/codedeploy_app) | resource |\n| [aws_codedeploy_deployment_config.pike](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/codedeploy_deployment_config) | resource |\n| [aws_codedeploy_deployment_group.example](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/codedeploy_deployment_group) | resource |\n| [aws_iam_role.deploy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role) | resource |\n| [aws_iam_role_policy_attachment.AWSCodeDeployRole](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/iam_role_policy_attachment) | resource |\n| [aws_sns_topic.deploy](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/sns_topic) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_alarm_configuration\"\u003e\u003c/a\u003e [alarm\\_configuration](#input\\_alarm\\_configuration) | n/a | \u003cpre\u003eobject({\u003cbr\u003e    alarms  = list(string)\u003cbr\u003e    enabled = bool\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"alarms\": [\u003cbr\u003e    \"my-alarm-name\"\u003cbr\u003e  ],\u003cbr\u003e  \"enabled\": true\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_app\"\u003e\u003c/a\u003e [app](#input\\_app) | n/a | `map(any)` | n/a | yes |\n| \u003ca name=\"input_auto_rollback_configuration\"\u003e\u003c/a\u003e [auto\\_rollback\\_configuration](#input\\_auto\\_rollback\\_configuration) | n/a | \u003cpre\u003eobject({\u003cbr\u003e    events  = list(string)\u003cbr\u003e    enabled = bool\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"enabled\": true,\u003cbr\u003e  \"events\": [\u003cbr\u003e    \"DEPLOYMENT_FAILURE\"\u003cbr\u003e  ]\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_blue_green_config\"\u003e\u003c/a\u003e [blue\\_green\\_config](#input\\_blue\\_green\\_config) | n/a | \u003cpre\u003eobject({\u003cbr\u003e    action_on_timeout                = string\u003cbr\u003e    wait_time_in_minutes             = number\u003cbr\u003e    green_action                     = string\u003cbr\u003e    blue_action                      = string\u003cbr\u003e    termination_wait_time_in_minutes = number\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"action_on_timeout\": null,\u003cbr\u003e  \"blue_action\": null,\u003cbr\u003e  \"green_action\": null,\u003cbr\u003e  \"termination_wait_time_in_minutes\": null,\u003cbr\u003e  \"wait_time_in_minutes\": null\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_config\"\u003e\u003c/a\u003e [config](#input\\_config) | n/a | \u003cpre\u003eobject({\u003cbr\u003e    deployment_config_name = string\u003cbr\u003e    minimum_healthy_hosts = object({\u003cbr\u003e      type  = string\u003cbr\u003e      value = number\u003cbr\u003e    })\u003cbr\u003e  })\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_deployment_config_name\"\u003e\u003c/a\u003e [deployment\\_config\\_name](#input\\_deployment\\_config\\_name) | n/a | `string` | `\"CodeDeployDefault.OneAtATime\"` | no |\n| \u003ca name=\"input_deployment_group_name\"\u003e\u003c/a\u003e [deployment\\_group\\_name](#input\\_deployment\\_group\\_name) | n/a | `string` | n/a | yes |\n| \u003ca name=\"input_ec2_tag_filters\"\u003e\u003c/a\u003e [ec2\\_tag\\_filters](#input\\_ec2\\_tag\\_filters) | n/a | `list(any)` | n/a | yes |\n| \u003ca name=\"input_ecs_services\"\u003e\u003c/a\u003e [ecs\\_services](#input\\_ecs\\_services) | n/a | `list(any)` | `[]` | no |\n| \u003ca name=\"input_elb_info\"\u003e\u003c/a\u003e [elb\\_info](#input\\_elb\\_info) | n/a | `string` | `\"\"` | no |\n| \u003ca name=\"input_kms_key_id\"\u003e\u003c/a\u003e [kms\\_key\\_id](#input\\_kms\\_key\\_id) | n/a | `any` | n/a | yes |\n| \u003ca name=\"input_load_balancer_info\"\u003e\u003c/a\u003e [load\\_balancer\\_info](#input\\_load\\_balancer\\_info) | n/a | `list(any)` | `[]` | no |\n| \u003ca name=\"input_style\"\u003e\u003c/a\u003e [style](#input\\_style) | n/a | `map(any)` | \u003cpre\u003e{\u003cbr\u003e  \"deployment_option\": \"WITHOUT_TRAFFIC_CONTROL\",\u003cbr\u003e  \"deployment_type\": \"IN_PLACE\"\u003cbr\u003e}\u003c/pre\u003e | no |\n| \u003ca name=\"input_tags\"\u003e\u003c/a\u003e [tags](#input\\_tags) | n/a | `map(any)` | n/a | yes |\n| \u003ca name=\"input_traffic_routing_config\"\u003e\u003c/a\u003e [traffic\\_routing\\_config](#input\\_traffic\\_routing\\_config) | n/a | \u003cpre\u003elist(object({\u003cbr\u003e    type = string\u003cbr\u003e    time_based_linear = list(object({\u003cbr\u003e      interval   = number\u003cbr\u003e      percentage = number\u003cbr\u003e    }))\u003cbr\u003e    time_based_canary = list(object({\u003cbr\u003e      interval   = number\u003cbr\u003e      percentage = number\u003cbr\u003e    }))\u003cbr\u003e  }))\u003c/pre\u003e | n/a | yes |\n| \u003ca name=\"input_trigger_configuration\"\u003e\u003c/a\u003e [trigger\\_configuration](#input\\_trigger\\_configuration) | n/a | \u003cpre\u003eobject({\u003cbr\u003e    trigger_events = list(string)\u003cbr\u003e    trigger_name   = string\u003cbr\u003e  })\u003c/pre\u003e | \u003cpre\u003e{\u003cbr\u003e  \"trigger_events\": [\u003cbr\u003e    \"DeploymentFailure\"\u003cbr\u003e  ],\u003cbr\u003e  \"trigger_name\": \"example-trigger\"\u003cbr\u003e}\u003c/pre\u003e | no |\n\n## Outputs\n\nNo outputs.\n\u003c!-- END OF PRE-COMMIT-TERRAFORM DOCS HOOK --\u003e\n\n## Policy\n\n\u003c!-- BEGINNING OF PRE-COMMIT-PIKE DOCS HOOK --\u003e\nThe Terraform resource required is:\n\n```golang\nresource \"aws_iam_policy\" \"terraform_pike\" {\n  name_prefix = \"terraform_pike\"\n  path        = \"/\"\n  description = \"Pike Autogenerated policy from IAC\"\n\n  policy = jsonencode({\n    \"Version\": \"2012-10-17\",\n    \"Statement\": [\n        {\n            \"Sid\": \"VisualEditor0\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"SNS:CreateTopic\",\n                \"SNS:DeleteTopic\",\n                \"SNS:GetTopicAttributes\",\n                \"SNS:ListTagsForResource\",\n                \"SNS:SetTopicAttributes\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"VisualEditor1\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"codedeploy:CreateApplication\",\n                \"codedeploy:CreateDeploymentConfig\",\n                \"codedeploy:CreateDeploymentGroup\",\n                \"codedeploy:DeleteApplication\",\n                \"codedeploy:DeleteDeploymentConfig\",\n                \"codedeploy:DeleteDeploymentGroup\",\n                \"codedeploy:GetApplication\",\n                \"codedeploy:GetDeploymentConfig\",\n                \"codedeploy:GetDeploymentGroup\",\n                \"codedeploy:ListTagsForResource\",\n                \"codedeploy:TagResource\",\n                \"codedeploy:UntagResource\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"VisualEditor2\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"ec2:DescribeAccountAttributes\"\n            ],\n            \"Resource\": \"*\"\n        },\n        {\n            \"Sid\": \"VisualEditor3\",\n            \"Effect\": \"Allow\",\n            \"Action\": [\n                \"iam:AttachRolePolicy\",\n                \"iam:CreateRole\",\n                \"iam:DeleteRole\",\n                \"iam:DetachRolePolicy\",\n                \"iam:GetRole\",\n                \"iam:ListAttachedRolePolicies\",\n                \"iam:ListInstanceProfilesForRole\",\n                \"iam:ListRolePolicies\",\n                \"iam:PassRole\"\n            ],\n            \"Resource\": \"*\"\n        }\n    ]\n})\n}\n\n\n```\n\u003c!-- END OF PRE-COMMIT-PIKE DOCS HOOK --\u003e\n\n## Related Projects\n\nCheck out these related projects.\n\n- [terraform-aws-s3](https://github.com/jameswoolfenden/terraform-aws-s3) - S3 buckets\n\n## Help\n\n**Got a question?**\n\nFile a GitHub [issue](https://github.com/JamesWoolfenden/terraform-aws-codedeploy/issues).\n\n## Contributing\n\n### Bug Reports \u0026 Feature Requests\n\nPlease use the [issue tracker](https://github.com/JamesWoolfenden/terraform-aws-codedeploy/issues) to report any bugs or file feature requests.\n\n## Copyrights\n\nCopyright 2022 James Woolfenden\n\n## License\n\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n\nSee [LICENSE](LICENSE) for full details.\n\nLicensed to the Apache Software Foundation (ASF) under one\nor more contributor license agreements. See the NOTICE file\ndistributed with this work for additional information\nregarding copyright ownership. The ASF licenses this file\nto you under the Apache License, Version 2.0 (the\n\"License\"); you may not use this file except in compliance\nwith the License. You may obtain a copy of the License at\n\n\u003chttps://www.apache.org/licenses/LICENSE-2.0\u003e\n\nUnless required by applicable law or agreed to in writing,\nsoftware distributed under the License is distributed on an\n\"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\nKIND, either express or implied. See the License for the\nspecific language governing permissions and limitations\nunder the License.\n\n### Contributors\n\n[![James Woolfenden][jameswoolfenden_avatar]][jameswoolfenden_homepage]\u003cbr/\u003e[James Woolfenden][jameswoolfenden_homepage]\n\n[jameswoolfenden_homepage]: https://github.com/jameswoolfenden\n[jameswoolfenden_avatar]: https://github.com/jameswoolfenden.png?size=150\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-codedeploy","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-codedeploy","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjameswoolfenden%2Fterraform-aws-codedeploy/lists"}