How can I have multiple deployments of the same project to the same environment running in parallel?

I have a deployment project that spins up dynamic infrastructure in my CI environment. The targets are created and named with a random suffix that identifies the infrastructure as being for a particular instance of our application within that environment. This allows us to have branch builds that can be approved by our QA/Product Ownership process prior to being merged down to our mainline, and then when approval is granted, the infrastructure for that branch demo can be cleaned up.

The process that spins up the new infrastructure runs on the Octopus Cloud server, deploys the app to those targets and then has a manual step that holds until QA has decided they’ve finished with those assets.

There appears to be a problem that while waiting at this step, no other branches can be deployed as the deployment sits in a queued state until the QA/Product Ownership team has approved or rejected the current deployment, which means we can’t have multiple parallel branches available for testing/demo at the same time.

I found this documentation that suggests it can be done, but only if deploying to multiple environments.

I don’t really want to have a proliferation of dynamic environments spun up and destroyed in Octopus deploy just to make this happen as that causes a whole bunch of other mess - such as adding it to lifecycles and channels, attaching it to tenants etc. It’s messy.

Is it possible to have all of our dynamic infrastructure spun up and destroyed in a single environment and still allow for a manual step to hold that environment until such a time as the QA/Product Owner is ready to approve or reject it?

Cheers,

Ben Alabaster

Greetings Ben! The Manual Intervention step is a blocking process that will not allow other deployments to work until it has been cleared. One of my colleagues has recently done a presentation on a similar concept at KCDC and is included in our samples repo (https://github.com/OctopusSamples/KCDCIaC/tree/master). In this presentation, Bob uses the multi-tenancy feature to create a tenant per feature branch much like how you’ve explained here. This allows him to deploy different feature branches to their associated infrastructure within the same environment. He also shows the cleanup process that will remove the tenants/infrastructure when it is done being used.

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.