How can I modify/extend a Step Template from Octopus Deploy?

I’m actually working on a project where I need to deploy an ECS Service that uses a different FireLens configuration but the template does not support that parameter. So I’d like to know where and how I can modify the pre-installed templates that are from Octopus Deploy.



Hey @eduardo.saporski , thanks for joining the forum and thanks for reaching out with your question!

The general process for extending built in templates is discussed here in our documentation. Unfortunately for built in steps like deploying to ECS, there’s not a lot to extend because it’s not a script step underneath. You’d be able to add new parameters, but you wouldn’t be able to change the behavior of the step.

There are a couple of options from this point:

  • Firstly, you could potentially use CloudFormation to configure FireLens and deploy it through the built-in Octopus CloudFormation deployment step
  • You could write a custom step for ECS deployments using the AWS CLI, and extend it like a traditional community step template. I know this isn’t ideal, but is the standard method for creating/updating steps that go beyond our built in.
  • You can also add a UserVoice entry to add FireLens configuration to the existing ECS deployment step. These UserVoice requests aren’t guarantees of updates, but are a way that Octopus Deploy keeps track of the ongoing customer requests for our product, as well as the frequency of those requests.

Please feel free to take a look at the links above, and let me know if you have any additional questions or need assistance, we’re happy to help!

Hi @cory.reid, thanks a lot for the answer :smile:
I think I’m gonna go with the first option, update the CloudFormation stack with the configuration I need.
I’ve created a UserVoice entry as well:

Would it be possible to eventually “open-source” those built-in steps and make them extendable?

Thanks for creating the UserVoice entry!

At this point, the ECS step is a part of the core step framework of Octopus Deploy - while a lot of our code is public facing, I don’t think it’s likely that this step will be any time soon.

Another option that may be functional for you in this use case is the ECS CLI - some initial digging looks like it also may support FireLens configuration.

The problem is that with either one, it will create a new Task Definition revision and deploy the application twice. First when deploying using the built-in “Deploy Amazon ECS Service” step and then when I update the Task Definition with the CloudFormation step or AWS ECS CLI.