I have a complex multi tenanted Octopus setup but now I want to deploy a custom App, specific for 1 tenant and not for others. What is the best way to do this according to you?
For example my process:
Deploy App1 (on all tenants)
Deploy App2 (on all tenants)
Deploy Custom App (only for tenant X)
I see multiple options:
Create a scoped variable (for the tenant target machine) with the value true and check this as a Run Condition > Variable, for the specific step
Create a Tenant Tag Set, for example Custom Apps and select this as Condition > Tenant for the specific step.
Create a Tenant Variable (with Project Templates), not exactly sure how to set this up
Create a complete new Project
Use target-roles for this. I can create a specific role “Custom App 1” and for every target that has this role, this step will be executed
To be honest, option 1 and 2 feels a bit like a “misuse”, but maybe I am wrong.
One important note: the apps all depend on the same database, so they also have the same version.
Edit: I have updated my start post, I forgot target roles. Is that an valid option as well?
Okay, interesting. Thanks for your answer.
I thought that Tenant Tags Sets were more designed for “bundling” tenants (& targets). I use it that way: for example I have a set “Subscription” which has “Small, Medium, Large, Enterprise”. This way I can update all Enterprise customers (tenants) if I want to.
But you are saying, it is also designed to support scenario’s like I described: deploy Custom Apps (for 1 tenant only). The downside is that I get the following:
Deploy App 1
Deploy App 2
Deploy Custom App 1 (for tenant X)
Deploy Custom App 2 (for tenant Y)
Deploy Custom App 3 (for tenant Z).
So my Process will become a lot more complicated because of these tenant specific custom apps. But I don’t know how to solve it in another way (yes, separate projects, but that’s more overhead).
Conclusion: it is perfectly fine to use Tenant Tags Sets for Custom Apps?