Hi Rob,
Thanks for getting in touch! There are a few options available I believe, depending on what you need to deploy here.
One options is as @Colin_Pear has suggested, package them separately and add them to the deployment with some scoping per tenant/environment. However, this method does not scale very well and can get little messy.
So my questions is this. What parts of the license file change per Tenant/Environment?
Octopus has the ability to automatically substitute variables inside files. On top of that, Octopus is also able to have Tenant specific variables.
For example, if most of the license format is the same between each Tenant and you only need to change a unique string between Tenants, Octopus could automatically perform this action for you.
You could specify a Tenant specific variable to hold the license values that need to change between Tenants (Say #{LicenseVar}
as an example). In your license file, you could replace the section of license which requires changing at deployment time with the variable #{LicenseVar}
.
In your project you are able to create a Variable Template and specify the value type as Sensitive/Password box (If you do not want the license values to be read by unauthorised users or output in logs.)
From here, any Tenant connected to the Project with the Variable Template will have a variable box for each Environment. If you need a different value per Environment and Tenant, you have the ability do specify that here. (See screenshot)
Project abc
is connected to Tenant-A
for Environments Dev
& Test
. It has a single Variable Template. #{LicenseVar}
with a default value which can be anything you want.
This means I can have a single license file for my deployment and Octopus will automatically substitute the variable inside it just after extraction, before being copied wherever it needs to go.
The documentation on this subject which I have linked to above has a lot more detailed information.
Let me know if this is not an option or if you have any further question here. I would be happy to help however I can.
Best regards,
Daniel