General
-
Support tenants as a third dimension to deployments
Currently, a deployment targets a project and an environment.
Some customers have applications that they host for many customers, with each customer having their own set of configuration options applied. Their application may not be designed to support multi-tenancy, and instead is deployed separately for each customer.
To handle this in Octopus currently, they either duplicate the project many times, or they duplicate environments many times.
We should build in the concept of a "Tenant" as a first class concept that can be enabled. Each Tenant will have a name and a set of associated variables. When deploying a project,…
1,012 votesThis feature has now been provided in Octopus Deploy 3.4.0 (https://octopus.com/downloads/3.4.0)
See docs http://docs.octopusdeploy.com/display/OD/Multi-tenant+deployment+guide -
Improve variables UI
The variables view is very basic and it generally needs improving since it quickly gets hard to use when you begin adding lots of variables.
- You have to add the same variable name for multiple environments and the ordering of environments is not the same. This is error prone and makes the list hard to parse.
- There is no description for variables so you need to add very long names sometimes. This has already been covered, but I added it for completeness. See https://octopusdeploy.uservoice.com/forums/170787-general/suggestions/6079578-enhance-the-variable-maintenance-screen-with-varia
- There can be different types of variables which are changed for different reasons. It would be…
991 votesThanks everyone for your suggestions. We are happy to announce that a new version of the Variable Editor has shipped in Octopus 4.0! See https://octopus.com/blog/octopus-release-4-0 for more details.
In this first release, we have focused on providing a great variable editing experience, which we hope you will love! Although we haven’t yet been able to implement all of your great suggestions, we have been able to build an extensible variable editor that we will continue to improve in future.
-
Allow steps to be 'disabled' or 'inactive'
At the moment when editing a step, you can specify which environments it is to be run in. Selecting no environments means that the step will run in all environments. There's no way to specify that a step should run in no environments.
If I have a problematic step and I'd like to take it out of use temporarily while I work on it, I'd like to disable it somehow, maybe with a checkbox on the process page.
Source: http://help.octopusdeploy.com/discussions/problems/23854
648 votesHi, thanks for voting on this suggestion. Good news: we’ve added the ability to disable deployment steps in Octopus 3.5.5. I can’t believe it took us this long!
-
When updating a Step Template - update across all Projects
I want to use template-all model, where all projects consists only of step templates, to provide central management of deployment process. But when i modify step template, I need to manually go into every project and into step and click "update".
I think it would be better to use TeamCity model, where template can only be inherited and not changed inside project, or cloned from template if changes needed. Or provide the ability to one-click update all steps that uses the template (even better ask for it after click on Save button).
I'm going to end up with 30+ projects,…
572 votesGreat news! We have shipped this feature in Octopus 3.12. https://octopus.com/docs/deploying-applications/step-templates/updating-step-templates
-
Support for Azure Service Fabric
Please support deployments of the new Azure Service Fabric "microservice" architecture platform.
See http://azure.microsoft.com/en-us/documentation/articles/service-fabric-overview/ for the initial documentation and Channel9 build videos.
557 votesHi everyone. Service Fabric support has now been added in release 3.13.0. Please see [the blog post](https://octopus.com/blog/octopus-release-3-13) for details.
We look forward to hearing your feedback!
-
Project Group Security
Make it possible to scope permissions to a project group.
This should also allow the "project initiator" role to allow projects to be added to a specific project group.Source: http://octopus-deploy.tenderapp.com/discussions/questions/1990-project-group-and-ad-group-security
521 votesThanks for voting on this feature. We shipped Octopus 3.6.1 today which supports scoping team permissions to a project group, in addition to projects. This means you can allow team members to create projects as well as to do other things with the projects they create, within a project group.
-
Linux support
Currently, all machines use the Tentacle agent, which is Windows only.
Add the ability to register machines via an SSH endpoint instead.
During deployment, the Octopus server will push packages to the SSH endpoint, and then run Bash scripts (just as we currently run PowerShell scripts).
507 votesThis is done! Octopus 3.0 adds SSH support.
-
Recurring Scheduled Deployments
It would be great to have an ability to create a recurring scheduled deployment, such as each Monday at 9:30 pm promote from QA to Staging
Source: https://octopusdeploy.uservoice.com/admin/tickets/1640
465 votesThis was implemented in Octopus 2018.4: https://octopus.com/blog/octopus-release-2018.4
-
Support for Kubernetes
The new Docker features debuting in recent versions of Octopus are really promising, and I'm excited by the Docker Compose RFC published late last year.
Kubernetes is becoming increasingly popular as the production deployment environment of choice for containerised applications. It offers functionality very similar to Azure Service Fabric, in terms of auto-scaling and self-healing of services and applications, but is based around container images rather than zip files.
442 votesKubernetes and Helm support has been added as a preview feature in 2018.8.0. We will be working on these steps in future releases based on the feedback from this release.
-
Version Control of deployment scripts
In the Continuous Delivery book, Jez wrote that your deployment scripts should be in source control. After creating some pretty elaborate powershell scripts for Octopus, I have to agree. Losing those scripts or having them damaged would be pretty painful.
I understand Octopus has backups, but it would be better to be able to get back to a previous version or see where the script had changed. Since we use GIT, I would be completely satisfied if GIT integration was all that you supported. :) I hope this is helpful. Thanks.431 votesThis suggestion has been forked and a new one raised at https://octopusdeploy.uservoice.com/forums/170787-general/suggestions/15698781-version-control-configuration. If the import/export tool works for your situation, thats great. If it doesn’t, please vote on the new suggestion and add any thoughts you have about how you’d like to see it work.
-
Support moving steps in and out of rolling deployment groups
We have about 40 steps in our deployment process. Moving to rolling deployment it is very labor intensive as each step has to be deleted an created again as a child step. This is not very user friendly. I want to be able to more easily move our steps around to optimize our deployment process.
So the suggestion is to extend the reorder functionality to support moving steps in and out of rolling deployment groups
405 votesThanks to everyone who voted and commented on this issue. It took longer than it should have, but we’ve finally implemented this suggestion – it shipped today as version 3.5.7 of Octopus. You can see more here: https://github.com/OctopusDeploy/Issues/issues/2957
-
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.…
346 votesThis uservoice suggestion has now been completed through two seperate tickets.
Support for excluding machines during deployment:
https://github.com/OctopusDeploy/Issues/issues/2854 (available from version 3.7.9)Support for conditionally excluding environment on step.
https://github.com/OctopusDeploy/Issues/issues/3053 (available from version 3.7.16) -
Encapsulate deployment of multiple projects into single event
We have several deliverables that are usually deployed on individual schedules, thus each deliverable equates to its own Octopus Project. There are occasions when we have coordinated releases of many of our projects. In these situations, it would be an improvement to have the ability to define releases for individual projects as we can do now, but group these releases together into a "System" release which includes several "Project" releases.
345 votesImplementing this as described would make for quite a complicated UX. A deployment takes a release of a project, and applies it to an environment. So you’d have to select all the projects, then the releases for those projects. Not to mention getting the order/dependencies right. I can’t see us building something specific for this in the near future.
With Channels in 3.2, I think this scenario can be modelled differently. Say a project has 5 components which are sometimes deployed independently, and sometimes all at once. You could simply create a channel for each of the components, and an extra channel for “Full release”. Steps can then be scoped to each channel and the Full Release channel.
When creating a release, you can then choose whether it’s for just one of the components or all of them, and the UI will change as appropriate. And best of all dependencies…
-
Find variable usage across all projects and variable sets
When working with library variable sets used in many projects with many steps it is cumbersome to figure out where a given variable is used.
When updating a deployment process, certain tasks become very difficult, such as:
-Renaming or deleting a variable
-Checking validity of a newly-updated variable value across all usagesWith a "find all" feature these tasks would be much simpler (plus I'm sure there would be wider-reaching benefits).
343 votesHappy to announce we’ve added a usage tab to the variable set page in 2019.5.4, where you can view which projects and releases are using a variable set. While this does not cover all suggestions below, we are confident that this goes a long way to solving the problem.
Finding the usages of individual variables is something that is a lot more complex than it sounds, and we are unlikely to implement. Many variables usages are embedded in strings, or even in files sourced from packages, meaning any results we displayed would be incomplete.
If you think we’ve misinterpreted this suggestion, please raise a new suggestion with a bit more detail about the use case, and let us know in the comments below.
-
Output variables for offline drops
Offline drops don't currently support passing output variables from a deployment package step to another step as part of the same deployment script. Would it be nice to add them?
324 votesOutput variables are now available as of 2018.3.0.
https://github.com/OctopusDeploy/Issues/issues/4423 -
Allow project dependencies - so deploying one project would automatically deploy all dependent projects
We have many dependencies between our projects. So for example we have cross database dependencies which mean that a particular version of the database must be installed prior to another version. Similarly we have base services that are required by all others that must be installed first. There is currently no way of telling Octopus that one project depends upon another.
We could create one great big Octopus deployment with all the steps in it to deploy the TFS projects/libraries in the correct order. But this would be very complicated because of the large number of dependencies.
It would be…
317 votesThis was shipped in Octopus version 2018.2: https://octopus.com/blog/deploy-release-step/deploy-release-step
-
Cloning of steps
It would be nice if I could clone steps inside processes. For example if I want to deploy two nuget packages, I need to create one step to deploy a nuget and again create another step to deploy a nuget, instead of just cloning it. It's a waste of time!
279 votesThis feature has now been provided in Octopus Deploy 3.7.16. (https://octopus.com/downloads/3.7.16)
-
Allow the use of F# script (.fsx) in place of Powershell/ScriptCS
Please enable the option to use .fsx files (F# script) in places where Powershell is currently used.
It's concise syntax make it perfect for scripting, it's a darn sight easier to pick up than Powershell, comes with a fantastic REPL and as a bonus the popular F# library "FAKE" provides functions for all manner of deployment tasks and operations.
275 votesThis feature has now been provided in Octopus Deploy 3.4.0 (https://octopus.com/downloads/3.4.0)
-
allow the Run Condition of a step to be based on a variable not just whether a previous step has been successful or not
At the moment the run condition of a step is based on the success of failure of previous steps. It would be useful if this could be based on custom variable.
In our case, we have a step to check if there are any database changes required, if there are then we take a backup else we don't bother. Whilst this could be all done with in a single step template as there were some already available that did most of what we wanted this process takes three steps in our deployment.
- compare for differences
- run backup if differences exist …
245 votesThanks for voting on this feature. Happy to share that we shipped Octopus 3.7.13 yesterday which adds a new run condition based on a variable.
-
Required steps
Make it possible to mark a step as not being able to be skipped.
244 votesThis was implemented in Octopus 2018.4: https://octopus.com/blog/octopus-release-2018.4
- Don't see your idea?