modules/accelerator/aws-codepipeline/codepipeline_k8s.tf (162 lines of code) (raw):

# Full CodePipeline resource "aws_codepipeline" "codepipeline_eks" { count = var.target_type == "eks" || var.target_type == "kube_cluster" ? 1 : 0 name = "${var.repo_name}-${var.region_name}-eks" role_arn = var.codepipeline_role artifact_store { location = var.build_artifact_bucket type = "S3" encryption_key { id = var.aws_kms_key type = "KMS" } } stage { name = "Source" action { name = "Source" category = "Source" owner = "AWS" provider = var.source_provider version = "1" output_artifacts = ["source"] namespace = "SourceVariables" configuration = var.source_provider == "CodeStarSourceConnection" ? data.template_file.github_bitbucket_config[0].vars : local.codecommit } } stage { name = "Test" action { run_order = 1 name = "Test-Sonar" category = "Test" owner = "AWS" provider = "CodeBuild" input_artifacts = ["source"] output_artifacts = ["tested"] version = "1" configuration = { ProjectName = aws_codebuild_project.test_project.name } } action { run_order = 2 name = "Unit-Tests" category = "Test" owner = "AWS" provider = "CodeBuild" input_artifacts = ["source"] output_artifacts = ["unit_tested"] version = "1" configuration = { ProjectName = aws_codebuild_project.unit_project.name } } } stage { name = "Build" action { name = "Docker-Image" category = "Build" owner = "AWS" provider = "CodeBuild" input_artifacts = ["source"] output_artifacts = ["packaged"] version = "1" namespace = "Test" configuration = { ProjectName = aws_codebuild_project.build_project.name } } } stage { name = "DEV" action { name = "Deploy-to-EKS-DEV" run_order = 1 category = "Build" owner = "AWS" provider = "CodeBuild" input_artifacts = [ "packaged" ] version = "1" configuration = { ProjectName = aws_codebuild_project.build_deploy_to_eks[0].name } } # action { # name = "Selenium-Dev" # run_order = 2 # category = "Build" # owner = "AWS" # provider = "CodeBuild" # input_artifacts = [ # "packaged" # ] # version = "1" # configuration = { # ProjectName = aws_codebuild_project.test_selenium.name # } # } } stage { name = "QA" action { name = "Deploy-to-EKS-QA" run_order = 1 category = "Build" owner = "AWS" provider = "CodeBuild" input_artifacts = [ "packaged" ] version = "1" configuration = { ProjectName = aws_codebuild_project.build_deploy_to_eks[1].name } } action { name = "Selenium-QA" run_order = 2 category = "Build" owner = "AWS" provider = "CodeBuild" input_artifacts = [ "packaged" ] version = "1" configuration = { ProjectName = aws_codebuild_project.test_selenium.name } } action { category = "Test" name = "DLT-QA" run_order = 3 owner = "AWS" provider = "CodeBuild" version = "1" input_artifacts = [ "packaged" ] configuration = { ProjectName = aws_codebuild_project.test_perf.name } } } stage { name = "UAT" action { run_order = 1 name = "Manual-Approve" category = "Approval" owner = "AWS" provider = "Manual" version = "1" configuration = { NotificationArn = var.approve_sns_arn CustomData = "Approve action needed" } } action { name = "Deploy-to-EKS-UAT" run_order = 2 category = "Build" owner = "AWS" provider = "CodeBuild" input_artifacts = [ "packaged" ] version = "1" configuration = { ProjectName = aws_codebuild_project.build_deploy_to_eks[2].name } } } }