🤖 New: Use this module with AI assistants via the ARC IaC MCP Server — search, scaffold, and security-scan ARC modules from natural language. Quick setup ↓
locals{environment_role={dev="arn:aws:iam::xxxx:role/example-dev-cicd-role"}branch_map={dev={terraform="dev"}poc={terraform="stg"}}prefix="${var.namespace}-${var.environment}"codestar_connection="Github-Connection"artifacts_bucket="${local.prefix}-pipeline-artifacts"policies=[{policy_document=data.aws_iam_policy_document.pipeline.jsonpolicy_name="pipeline-policy-to-reject"}]chatbot_data={name="${var.namespace}-slack"slack_channel_id="C0xxxxxxx5"slack_workspace_id="T0xxxxxxRT"managed_policy_arns=["arn:aws:iam::aws:policy/AWSCodePipeline_FullAccess"]guardrail_policies=["arn:aws:iam::aws:policy/AWSCodePipeline_FullAccess"]role_polices=local.policiesenable_slack_integration=true}notification_event_and_type={event_type_ids=["codepipeline-pipeline-pipeline-execution-failed","codepipeline-pipeline-pipeline-execution-canceled","codepipeline-pipeline-pipeline-execution-started","codepipeline-pipeline-pipeline-execution-resumed","codepipeline-pipeline-pipeline-execution-succeeded","codepipeline-pipeline-pipeline-execution-superseded","codepipeline-pipeline-manual-approval-failed","codepipeline-pipeline-manual-approval-needed"]targets=[{address="arn:aws:chatbot::${data.aws_caller_identity.current.account_id}:chat-configuration/slack-channel/${var.namespace}-slack" // it should match chatbot_data.nametype="AWSChatbotSlack" // Type can be "SNS",AWSChatbotSlacketc}]} // IAM roles has to be created before creating Codebuild project and Codepipelinerole_data={"${local.prefix}-codepipeline-role"={pipeline_service="codepipeline"assume_role_arns=[]github_secret_arn=nullterraform_state_s3_bucket=nulldynamodb_lock_table=nulladditional_iam_policy_doc_json_list=[]},"${local.prefix}-codebuild-terraform"={pipeline_service="codebuild"assume_role_arns=[local.environment_role[var.environment],"arn:aws:iam::1111xxxx1111:role/example-management-mrr-role"]github_secret_arn=nullterraform_state_s3_bucket="example-shared-services-terraform-state"dynamodb_lock_table="example-shared-services-terraform-state-lock"additional_iam_policy_doc_json_list=[]}} // Codebuild projects have to be created before creating Codepipelinescodebuild_projects={"${local.prefix}-terraform-plan"={description="Codebuild project for Terraform Plan"build_type="Terraform"terraform_version="terraform-1.8.3-1.x86_64"buildspec_file=nullrole_data={name="${local.prefix}-codebuild-terraform"}artifacts_bucket=local.artifacts_bucketbuildspec_file_name="buildspec-tf-apply"},"${local.prefix}-terraform-apply"={description="Codebuild project for Terraform Apply"build_type="Terraform"terraform_version="terraform-1.8.3-1.x86_64"buildspec_file=nullrole_data={name="${local.prefix}-codebuild-terraform"}artifacts_bucket=local.artifacts_bucketbuildspec_file_name="buildspec-tf-apply"}}codepipeline_data={"${local.prefix}-terrafomr-module"={codestar_connection=local.codestar_connectionartifacts_bucket=local.artifacts_bucketartifact_store_s3_kms_arn=nullauto_trigger=falsesource_repositories=[{name="TF-Source"output_artifacts=["tf_source_output"]github_repository="githuborg/tf-mono-infra"github_branch=local.branch_map[var.environment].terraformauto_trigger=false}]pipeline_stages=[{stage_name="Terraform-Plan"name="Terraform-Plan"input_artifacts=["tf_source_output"]output_artifacts=["tf_plan_output"]version="1"project_name="${local.prefix}-terraform-plan" # This has to match the Codebuild project nameenvironment_variables=[{name="ENVIRONMENT",value=var.environment},{name="TF_VAR_FILE",value="tfvars/${var.environment}.tfvars"},{name="WORKING_DIR",value="terraform/example-module"},{name="BACKEND_CONFIG_FILE",value="backend/config.shared-services.hcl"},{name="WORKSPACE",value=var.environment}]},{stage_name="Approval"name="Approval"category="Approval"provider="Manual"version="1"},{stage_name="Terraform-Apply"name="Terraform-Apply"input_artifacts=["tf_plan_output"]output_artifacts=["tf_apply_output"]version="1"project_name="${local.prefix}-terraform-apply" # This has to match the Codebuild project nameenvironment_variables=[{name="ENVIRONMENT",value=var.environment},{name="TF_VAR_FILE",value="tfvars/${var.environment}.tfvars"},{name="WORKING_DIR",value="terraform/example-module"},{name="BACKEND_CONFIG_FILE",value="backend/config.shared-services.hcl"},{name="WORKSPACE",value=var.environment}]}]role_data={name="${local.prefix}-codepipeline-role"}notification_data={"${local.prefix}--api-notification"=local.notification_event_and_type // "${local.prefix}--api-notification" name has to be unique for each pipeline}}}}
By specifying this , it will bump the version and if you dont specify this in your commit message then by default it will consider patch and will bump that accordingly
The ARC IaC MCP Server is a hosted Model Context Protocol service that lets AI assistants browse, search, scaffold, compare, and security-scan any of the SourceFuse ARC Terraform modules — directly from natural language.
What you can do with it:
Discover — search and filter modules by keyword or AWS resource type.
Understand — get inputs, outputs, and resources for any module without leaving your editor.