Using Terraform to deploy user app and infrastructure

I’m working on a new project to migrate to Terraform and Gitlab solution. We are slowly moving away from Jenkins/Spinnaker. We’ve also used Terraform to build our infra. What confuses me in the new project is that I need to build a pipeline that will help deploy user applications to an AWS EC2 instance, as well as make use of Launch Template and AutoScalingGroup and load balancers.

I’m building a pipeline that will let our developers deploy their own applications using configuration files defined in their git repo. This includes the deployment of AWS alb. I wasn’t sure if they should be building their application in .gitlab-ci.yml file. Then use a tool that will create an ami image, which will be used with LaunchTemplate. Not sure which one goes first.

How did you implement the pipeline that looks similar to what I described?

In our current Gitlab/Jenkins/Spinnaker setup, we guided our developers on what pipeline filenames to use in their git project. These pipeline filenames are parsed by our in-housed gitlab server. The gitlab server sends an API call to Jenkins(to generate or update a jenkins job). It also talks to Spinnaker to generate the deployment phases.

1 Like