Prerequisites
The enhancement
The Need
The Octopus ServiceNow integration currently only supports configuring a single Standard Change Template Name per project. This works when every deployment of a project goes through the same pre-approved change template, but it is insufficiently granular for customers whose ITSM governance varies by tenant (e.g. tenants belong to different governance tiers, business units, compliance regimes etc.)
Solution
An easy win here is to make the Standard Change Template Name field bindable, so it accepts Octopus variable expressions (#{...}) the same way most other configuration fields do.
With a bindable template, a customer only needs to:
- Define a project variable, e.g.
ServiceNow.StandardTemplate, with values scoped by tenant tag (or environment, or any other dimension Octopus variables already support).
- Bind this variable
#{ServiceNow.StandardTemplate} to the Standard Change Template Name via the project's Change Control settings page.
At deploy time, Octopus will resolve the variable against the deployment's tenant, environment, channel, etc., using the resolved value as the template name when creating the change request in ServiceNow.
This enhancement requires minimal backend and frontend changes, and enables customers to configure per-tenant template selection the same way they configure every other per-tenant setting in Octopus, handing off the complexities of precedence and fallbacks to the variable engine.
Prerequisites
The enhancement
The Need
The Octopus ServiceNow integration currently only supports configuring a single Standard Change Template Name per project. This works when every deployment of a project goes through the same pre-approved change template, but it is insufficiently granular for customers whose ITSM governance varies by tenant (e.g. tenants belong to different governance tiers, business units, compliance regimes etc.)
Solution
An easy win here is to make the Standard Change Template Name field bindable, so it accepts Octopus variable expressions (
#{...}) the same way most other configuration fields do.With a bindable template, a customer only needs to:
ServiceNow.StandardTemplate, with values scoped by tenant tag (or environment, or any other dimension Octopus variables already support).#{ServiceNow.StandardTemplate}to the Standard Change Template Name via the project's Change Control settings page.At deploy time, Octopus will resolve the variable against the deployment's tenant, environment, channel, etc., using the resolved value as the template name when creating the change request in ServiceNow.
This enhancement requires minimal backend and frontend changes, and enables customers to configure per-tenant template selection the same way they configure every other per-tenant setting in Octopus, handing off the complexities of precedence and fallbacks to the variable engine.