I've been practicing Bamboo for a while now and I've finally been able to deploy my first application on kubernetes. I have two stages: The build stage and Deployment stage. The process goes like this:
Build stage
1. I check out the source code and build it with Maven.
2. With the help of some shell scripting, I preprocess the Docker file and some configuration files to later use it in the deployment stage. I also create some inject variables. This is important because depending on the git branch checked out, both application and kubernetes configuration files have different names and contents. This way I determine the config file names.
Deployment stage
1. I build the Docker image, push it to the repository (I do these two with the Docker build and Docker push image tasks),
2. And finally, again with shell scripting, I deploy the new Docker image to kubernetes cluster.
As you can see, I've been able to perform all the steps from checkout to deployment within a build plan. But there's also a feature called Deployment in Bamboo. My question is: Should I perform the deployment part in a separate deployment project? What will be the benefit? Currently, I see one drawback of using Deployment. I need to associate the project with a specific plan branch, which means I will need to have separate deployment projects for each plan branch. But if I do it as part of the build plan, just one is sufficient.