General
-
Use AWS IAM Roles as Octopus AWS Accounts
When creating an Octopus AWS Account (https://octopus.com/docs/infrastructure/deployment-targets/aws) you currently need to enter an AWS Access Key and Secret Key. This means the corresponding AWS Access Key needs to be periodically rotated, creating some management overhead and potential security vulnerabilities. Rather than an AWS Access Key and Secret Key, if we were able to enter an AWS IAM Role that is assumed whenever that Octopus AWS Account is used, then we would no longer need to manage AWS Access Keys.
In the background, Octopus Deploy would need to set it up so that the AWS IAM Role is assumed…
67 votesEC2 instance roles and secondary IAM roles can be assumed in AWS steps and for EKS clusters (new in 2020.4). The blog post at https://octopus.com/blog/aws-iam-roles has more details.
-
Runbook need support for prompted variables
Runbook need support for prompted variables
We need support for prompted variables when using runbooks hope this is added in a future version
2 votesThis was implemented in Octopus 2019.11
https://octopus.com/docs/runbooks/runbook-variables#prompted-variables -
Kubernetes Ingress doesn't allow to configure TLS
Allow kubernetes ingress to specify TLS configuration.
15 votesThis was implemented in 2018.11.2
https://github.com/OctopusDeploy/Issues/issues/4929 -
13 votes
This is now available. See the docs at https://octopus.com/docs/deployment-process/configuration-features/structured-configuration-variables-feature for more details.
-
terraform
Terraform step templates for Azure deploys. Currently only AWS is supported in Octopus included step templates. It seems like an easy addition to the existing functionality
12 votesAzure accounts can now be selected when deploying Terraform templates. See the issue at https://github.com/OctopusDeploy/Issues/issues/5518 for more details.
-
Allow cloning of tenants
It should be possible to clone a tenant including it's current configuration in a similar way to that you can clone whole projects.
Tenants tend to be similarly configured with only minor changes to each one so it would save time rather than having to configure each one from scratch.144 votesThe ability to clone tenants was delivered in Octopus 2019.8
-
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
-
C# Script in script modules
We need to use C# code as script in the script modules
229 votesHappy to announce that this shipped in 2019.5.0!
-
Add notes or description to deployment process step
When working with the deployment process I sometimes find that I have to do something in a step that might not be standard, for example setting a temporary user on the "create app pool" step. It would then be great to be able to ad a note to the step describing what is done and why.
43 votesThe ability to add notes to deployment process steps was added in 2020.5
https://github.com/octopusdeploy/issues/issues/6608 -
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.
-
Major and Minor version numbers as individual variables available for use
We deploy to a sub app on the site for our Web services with the major/minor version number in the URL to allow for easy side by side deployments. We don't deploy every version to a new URL because of the volume of builds we get for dev/testing etc. and we like to give a friend URL out to 3rd parties that use them.
e.g. https://MyWebService.com/v1.2/MyService.svc
currently we have custom powershell to update the IIS location in predeploy, we hard set it to something like "MyIIS.Site/v1.2", would be good if we could get the specific number using variables and use…
32 votesIn 2020.5 additional variable filters (such as “VersionMajor”, “VersionMinor” etc) have been added to allow version information to be easily extracted. The documentation at https://octopus.com/docs/projects/variables/variable-filters#VariableSubstitutionSyntax-Providedfilters has more details.
-
Add support for Python scripting.
It would be great to see Python listed as a script step. Python is heavily utilized in the infrastructure space, AWS, F5, Citrix, VMware and will help to drive full automation further up the stack.
119 votesThis will ship in `2019.1.1` today
-
Allow me to choose which environments a project uses / per project environments
We have multiple projects being deployed to different servers in heterogeneous environments. Some are just test-production, others are dev-test-staging-production. The projects often have completely separate environments.
It would be beneficial to be able to either choose which environments a project can deploy to, or to be able to set up per-project environments to be able to keep the same names for config transforms. (ex. "Web.Test.cfg" instead of "Web.Test-Product1.cfg")
Currently the Dashboard is also very "cluttered" with empty boxes due to those environments not being in use for certain projects.
8 votesLifecycles are the way in which users can define what environments are used in what projects
https://octopus.com/docs/deploying-applications/deployment-process/projects/lifecycles -
Add "Substitute variables in files" feature in "Run a Helm update" step
In "Run a Helm update" step we need: Enabled Features -> Substitute variables in files
Why?
For example we need to create configMap for our helm-chart. App config locate in this chart, so we need replase all #{values} by values from project scopeStep helm_install:
1. download chart
2. Substitute variables in files (choose location)
3. in custom script (deployment step) create configMap for our podsIf this feature doesn't exist: we need another step where we download app config and substitute variables and use this file to create configMap
3 votesThis has been fixed as part of the issue documented at https://github.com/OctopusDeploy/Issues/issues/6476.
-
promote a whole environment
We have "major deployments". At this time we have to deploy all our applications (~ 70) at once. So it would be nice to have a possibility to deploy all projects from environment-1 to environment-2
30 votesIn Octopus 2018.2 we shipped the Deploy Release Step (https://octopus.com/blog/deploy-release-step/deploy-release-step), which allows you to create “bundle” projects to address exactly this scenario.
I hope that helps!
-
Set-OctopusVariable to support -IsSensitive flag
The Set-OctopusVariable (and its counterparts for other scripting languages) should support an -IsSensitive flag such that if a variable is marked as sensitive it will not leak into a log.
40 votesThis was implemented in Octopus 2018.5.2
-
BUG: Allow library variable names to be viewed on one screen
Ideally variables can be read without expanding the browser to both windows - probably a bug
Screens:
https://ufile.io/nf3ps15 votesA fix for this will be available in the next 4.0.11 release
-
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.
-
Skip deployment steps
I just updated to the new 4.0.3 version of Octopus. I do NOT like the process to skip deployment steps. It is hard to follow and see what is going on and takes way longer than the older versions. Please change this to something more like the older version where I can see all the steps and easily click on the ones I want to skip.
One of the people on my team couldn't even figure out how to skip the steps it was such a pain to find.
6 votesGood news! We’ve improved this part in Octopus 4.0.10 – https://github.com/OctopusDeploy/Issues/issues/3972
-
Allow to mark a deployment step as mandatory (un-skippable)
Right now only manual intervention steps cannot be skipped during a custom deployment. It maybe good to be able to mark any step as unskippable.
15 votesThis was implemented in Octopus 2018.4: https://octopus.com/blog/octopus-release-2018.4
- Don't see your idea?