our Octopus instance has a single space. We want to split this monolithic structure into smaller parts. Our Project Groups represent teams, so each Project Group should be moved into separate Space. I wonder how do this in effective way. Also each of this Space need to hold same infrastructure, tenant and library configuration. We currently take into consideration:
Use Terraform provider and configure each space with minimal manual configuration
Use PowerShell and Octopus.Client.dll and copy projects (if possible)
The best way to do this in Octopus today is utilizing the project import/export feature. This feature requires that you be running Octopus Server 2021.1 or later, but is immeasurably easier than prior patterns for moving projects!
Beyond the above mechanics of actually moving things around, you can absolutely use the Octopus Terraform provider to start enforcing base space standards if you have a lot of shared items to keep in sync between spaces. I’d recommend taking a look at the documentation for the Terraform provider to start understanding how those resources are structured and how the provider is configured. If you have additional concerns or run into more questions, please don’t hesitate to reach out - we’re happy to help!
I have a question related with workers. How can I automate configuration workers in each space ? Terraform provider only contain worker pool resource. Why worker machine cannot be configured by terraform provider ?
The Terraform provider does not currently allow for defining deployment targets. Workers, while they perform different functionality, are essentially installed Tentacle services configured as a worker instead of a receiving target.