Thank you for your question!
One thing I would say about the approach you have described is that trying to sync or connect separate Octopus instances together can be tricky to get right.
We generally don’t recommend this as Octopus wasn’t specifically designed with this in mind, but for this kind of set-up, we do have some considerations which you can read on https://octopus.com/docs/deployment-patterns/isolated-octopus-deploy-servers#IsolatedOctopusDeployservers-Tentaclecanbeinstalled(isolatedOctopusservers)
I’ve outlined some possible ways to set up your Octopus instances as Environments below:
An alternative to having separate instances of Octopus could be to utilize Spaces.
You could configure a Space for each location where you require a ‘hard wall’. You can find out more in our blog post on https://octopus.com/blog/spaces-introduction.
The downside for using Spaces is that each Space is provisioned in the one Octopus instance, and therefore this might not be considered truly isolated. We also don’t have a way to migrate projects between spaces easily right now, but it’s one of our most requested features, so that could change in the future.
Other alternative options
Similarly to keep each environment isolated, you could also look to employ some other options, such as:
If you do require separate instances and wish to have a way to manage them using a code repository, then I would suggest taking a look at our documentation on deployment process as code. You could then configure your Octopus instances using the Terraform provider (we utilize this method ourselves when provisioning cloud instances for our customers).