Scenario -
What we have setup is multiple tenants and a basic lifecycle of Dev, Test, Production. This is not cloud-based at all, and just deploys to VMs and actual hardware. We wanted the multiple tenants because the product can only go on machines that have only one existing piece of another software product. So we setup the machines in the tenant environments based on that distribution. Let’s call the tenants A, B, and C.
Problem -
Reading through documentation, it appears it is working as designed in that we have to actually deploy through each tenant before being allowed to advance through the lifecycle. This is becoming problematic as Dev will deploy just to tenant A to stage test, but then we cannot deploy to tenant B or C in the Test part of the lifecycle until we go back and deploy to those tenants in Dev. We don’t always want to deploy to all of the tenants in the Dev part of the lifecycle, though.
Is there a better/alternative way we could have set this up? Or, maybe I’m missing some setting someplace that would have allowed this scenario to work?
Thanks for getting in touch! You’re right on the money - this is by design. Each tenant gets its own deployment and each is still required to progress through the lifecycle. We have a great blog post which talks about how lifecycles work with multi-tenancy.
There are a couple of possible solutions, however.
You can configure optional phases in your lifecycle to skip environments. This is done in your web portal under Library > Lifecycles > [Lifecycle Name] within its phase, under Required to progress. My first screenshot shows this option. The second screenshot shows the project’s overview page after making my development phase optional. Keep in mind that your lifecycle must have at least one phase that’s not optional. https://octopus.com/docs/key-concepts/lifecycles#Lifecycles-OptionalPhases
Channels allow you to create releases that follow a different lifecycle. The downside here is you would need to create a new release in this channel, so may not be ideal. We have comprehensive documentation on channels if you’d like to look into it, though. https://octopus.com/docs/key-concepts/projects/channels
I hope this helps! Don’t hesitate to reach out if you have any further questions.