I suggest you...

Environment and machine conditions should be inclusive OR exclusive

There are multiple places within Octopus where you can set 'conditions' on something by limiting it to a set of machines, or environments, etc.

It would be nice if we could extend this UI to allow the 'inverse' to be selected too.

Examples are:

- A step that only runs for a given environment -> users should be able to say "only the X and Y environment" (which they can do now), or "all environments except X and Y" (which they can't)

- Deploying to a subset of machines (advanced deployment settings) - again you can include machines, but not exclude them. If you have hundreds of machines and want to exclude just two, you have to specify the other 98. (has been implemented in 3.7.9 https://github.com/OctopusDeploy/Issues/issues/2854)

Multiple suggestions have come up that asked for something similar - I think if we do this we should do it a little more generically so we have a consistent user experience.

https://octopusdeploy.uservoice.com/forums/170787-general/suggestions/6503490-provide-an-option-to-exclude-machines-from-deploy

346 votes
Vote
Sign in
(thinking…)
Sign in with: Facebook Google
Signed in as (Sign out)
You have left! (?) (thinking…)
AdminPaul Stovell (Founder, Octopus Deploy) shared this idea  ·   ·  Flag idea as inappropriate…  ·  Admin →

11 comments

Sign in
(thinking…)
Sign in with: Facebook Google
Signed in as (Sign out)
Submitting...
  • Roman commented  ·   ·  Flag as inappropriate

    This is exactly what disabling a deployment target does, no?

  • Anonymous commented  ·   ·  Flag as inappropriate

    The issue is that if you need to deploy to 99 machines out of 100, you have to click in the textbox, wait for the pop up to appear, click the machine you want... the textbox then loses focus and you have to click again to wait for the pop up to appear and click the machine you want. Rinse and repeat 99 times. Then as the textbox fills up with selected machines you now have to add scrolling to this workflow. This sucks and our deployment engineers hate it. The choice of UI control is visually appealing but doesn't work for this use case, its error prone.

    Either the pop up box needs to a multiselect or there needs to be an "add all" button that adds all available machines to the textbox. A deployment engineer can exclude the ones that are not required for deployment. In fact I know of teams in our organisation that want to write chrome extensions to inject this "add all" functionality into the UI as well as teams that have to now have complicated Deploy.ps1 code to check if items are already deployed and not deploy if so. All this extra code and technical debt because the feature does not exist. All we need is to just exclude a few machines at time of deployment.

  • Anonymous commented  ·   ·  Flag as inappropriate

    Doesn't the "Disable this deployment target" setting provide this?
    Find your deployment target from the environments page and go in to its settings.

  • ebenkrapfl commented  ·   ·  Flag as inappropriate

    It would be really nice to have a blacklist for steps, rather than just whitelists. The same could be said for scoping in the team security settings.

  • ebenkrapfl commented  ·   ·  Flag as inappropriate

    It would be really nice to have a blacklist for steps, rather than just whitelists. The same could be said for scoping in the team security settings.

  • Gavin Burke commented  ·   ·  Flag as inappropriate

    Currently when setting up a process step, you have the option to deploy to all environments or choose a list. On our current installation, we have around 30 environments and a couple don't need a certain step which means to exclude these two, we have to add a list roughly 28 environments long.

    My suggestion is to have an option that you can either have an Include (like the In now) or an Exclude (like my suggested Not In) so then if you have a step that applies to everything except for 1 environment, especially new environments, you can set a step to be "Not In" <environment> where it will then be applied to all other environments, including new added ones, without a change needing to be made to the step each time.

  • Andrew Lamb commented  ·   ·  Flag as inappropriate

    At the moment if you want to run a process step for all but one or two environments then you have to add all the environments - it would be good if we could defina that a process step could be applied to all EXCEPT the list of environements. AN alternative might be to define an environment GROUP that has rules like this and apply the group to the step.

  • Arvind Raghunathan commented  ·   ·  Flag as inappropriate

    our landscape has 100's of machines & we like to time and again exclude a few for quick maintenance/troubleshooting

    Current option to 'Deploy to specific machines' doesnt help for this scenario :)

Feedback and Knowledge Base