Pipe in Question:
https://support.atlassian.com/bitbucket-cloud/docs/deploy-to-amazon-ecs/
https://bitbucket.org/atlassian/aws-ecs-deploy/src/master/
Description:
I would like to be able to deploy to ECS without using a new task definition and instead using the FORCE_NEW_DEPLOYMENT option to update the service to pull the `:latest` image from ECR.
The amazon cli update-service command provides this functionality. See the note. I want to be able to run this command:
aws ecs update-service --cluster $CLUSTER_NAME --service $SERVICE_NAME --force-new-deployment
Our use case is that we have cloudformation templates in a repo hat manages our IFA (infrastructure as code) separate from the application code. Thus, we would prefer to maintain the Task Definition in the IFA repo. But if we want to use this pipe, then we need to maintain the Task Definition in the application code.
Problem:
Currently, the `TASK_DEFINITION` is required in order for the pipe to complete successfully. So this prevents us from using the FORCE_NEW_DEPLOYMENT only.
Solution:
I propose making the TASK_DEFINITION optional so that we can force a new deployment without the need of the task definition.
Here's an example of how the yaml would look:
pipelines:
branches:
development:
- step:
name: Build and Push image to ECR
script:
- docker build -f Dockerfile.prod -t <value> .
- pipe: atlassian/aws-ecr-push-image:1.2.1
variables:
IMAGE_NAME: <value>
services:
- docker
caches:
- docker
- step:
name: Deploy to ECS
script:
- pipe: atlassian/aws-ecs-deploy:1.2.1
variables:
CLUSTER_NAME: <value>
SERVICE_NAME: <value>
FORCE_NEW_DEPLOYMENT: true