'Deploy to a specific subset of deployment targets' defaults to no machines

Hi there,

I’d like to know if there is a way to set the default value for ‘Deploy to a specific subset of deployment targets’ to no machines instead of its current value of all machines.
More details:
We have a standard setup of envs with various machines in Development, QA, Staging and Production. When a dev proceeds to deploy his/her build to Development, the deployment process defaults to deploying that build on ALL the machines in that environment. This is very unsafe for us. We’d like the default to point to no machines, such that if the developer forgets/misses to specify machines in the ‘Deploy to a specific subset of deployment targets’ option the build gets deployed to no machine.

Thanks for the help,
Best wishes,

Hi Mayank,

Thanks for getting in touch! There is no way to default deployments to target no machines.

Are you able to elaborate a little more around the “why” for what you’re needing to achieve, as there may be other features that could be used to achieve your goal. For example, the Multi-Tenant feature in 3.4 could be used to isolate Development machines, but it’ll come down to exactly what you need to isolate and why.


Hi Shannon,

Sorry, let me be more explicit.
We have about 25 machines added each to the Development, QA, Production environments (so total 75 machines, for this example). For each project release, our lifecycle promotes the build through Dev, QA, Prod.

Lets take a usual scenario. A developer wants to deploy the build package to 1 machine in the Development env. In the ideal case, s/he creates a release for that project, and then for that release clicks on the Deploy button under Development. This brings him/her to the Deploy screen. S/he clicks on the Advanced link, scrolls down the page to locate the box for ‘Deploy to specific subset of deployment targets’, selects 1 machine out of the 25 listed in Development, and clicks Deploy now to deploy the build. All good here. The build gets deployed to the 1 specific Development machine and is now ready for QA. The QA engineer proceeds to deploy to 1 machine in the QA env as usual. Everything is going per process, everyone is happy with Octopus Deploy and automation.

The trouble is when s/he is in a hurry and forgets to click the Advanced link during deployment. When this happens, it basically means that s/he has forgotten to select 1 machine out of 25 in the Development machine, and since the current default is to send the build to All machines, the build starts getting deployed to ALL 25 machines in the Dev environment. Crisis!

What we’d like to have, is that if the developer/qa engineer forgets to specify a machine to deploy this build to in the ‘Advanced’ > ‘Deploy to a specific subset of deployment targets’, the build does not get deployed to ANY machine, instead of it currently going to All machines. How may I do this in Octopus Deploy?

Best wishes

Hi Mayank,

Thanks for the additional information. There is no way to have Octopus Deploy default to deploying to no machines. I think though that a multi-tenant configuration may suit what you’re after. It would allow you to isolate specific machines in each environment to a particular tenant. As a couple of examples, a tenant could be used to represent a feature that a number of people are working on, or it could represent a pairing of a developer and a QA engineer who are working together on a smaller bug fix. The project can be constrained to only allow tenanted deployments, so you could then ensure that they must pick the exact tenant during the deployment and cannot deploy to all machines at once.

Hope that helps and please let me know if I can assist further.