public AwsTeamcityCfnTemplateCdkStack()

in src/main/java/jetbrains/teamcity/aws/template/AwsTeamcityCfnTemplateCdkStack.java [35:66]


    public AwsTeamcityCfnTemplateCdkStack(final Construct scope, final String id, final StackProps props) {
        super(scope, id, props);

        Vpc vpc = AwsTeamCityTemplateVpc.buildVpc(this);

        //EFS
        AwsTeamCityTemplateEfs teamcityTemplateEfs = new AwsTeamCityTemplateEfs(this, vpc);

        //ECS
        AwsTeamCityTemplateEcs teamcityTemplateEcs = new AwsTeamCityTemplateEcs(this, vpc, teamcityTemplateEfs);
        ApplicationLoadBalancedFargateService loadBalancedFargateService = teamcityTemplateEcs.getApplicationLoadBalancedFargateService();

        //CloudFront
        AwsTeamCityTemplateCloudFront teamcityTemplateCloudFront = new AwsTeamCityTemplateCloudFront(this, loadBalancedFargateService);

        //RDS database
        AwsTeamCityTemplateRds teamcityTemplateRds = new AwsTeamCityTemplateRds(this, vpc, loadBalancedFargateService);

        //Setup Container Task
        Map<String, String> setupContainerParams = SetupContainerParameters.getEnvVarParameters(teamcityTemplateRds);
        SetupContainerTask.addSetupContainer(this,
                loadBalancedFargateService,
                teamcityTemplateEfs,
                teamcityTemplateRds,
                setupContainerParams
        );

        new CfnOutput(this, "TeamCityConnectionUrl", CfnOutputProps.builder()
                .value(teamcityTemplateCloudFront.getCloudFrontDistribution().getDistributionDomainName())
                .description("TeamCity CloudFront domain name")
                .build());
    }