Currently we have a default lifecycle of test, acceptance and production environment. Now I got a question of a user, if we can create a training environment. What it already saids, it is for training purposes.
I’m curious how I can deal with this in a release cycle? Should I create a new lifecycle for this? Or is there another way?
Thanks for getting in touch! You can definitely create a new environment and lifecycle which uses this environment for training purposes. However, what may be the best option would be to create a testing instance. With each Octopus license, you’re allowed 3 separate and concurrent Octopus instances, and people often have a dedicated testing instance to keep everything isolated from their production instance. We have a great doc page on creating and managing these instances.
Would this be a better option going forward? Let me know what you think and if you have any further questions.
Thanks for your reply. Only I don’t really think that is a good approach.
We only need a training environment to release to. Not a Octopus training instances. If we go this way, then we also have to maintain more.
Also, there is only a project that needs this training environment. Can I only create a lifecycle then for that specific project or does it inherit on all the projects?
Thanks for following up! A project can have its own unique lifecycle, so you can definitely create a new lifecycle for this project specifically! This sounds like a good solution in your case to prevent other projects from deploying to your dedicated training environment.
In your web portal under Library > Lifecycle, you can define this lifecycle and include your training environment into it. Our docs outline how you can do this in more detail.
Once that’s done, you’d need to change the lifecycle that this project uses. This can be done in Project > Process page as shown in the following screenshot.
Thank you for your reply and details, only this is not what I was looking for I suppose.
Now the default lifecycle is also adjusted for all the projects when I’m adding an environment. Maybe I am misunderstanding it a bit when using those lifecycles, because I can now just use the default one because it is added there now as well.
Let me explain it a little bit more.
All our projects are using a default lifecycle of test, acceptance and production. Now I got a question from a user to have a training environment with it as well. But I do not really want to show this environment for all the projects as not all the projects needs this training environment.
Also we are still not sure if we are going to have a dedicated training environment. Rather maybe want to deploy it together on our acceptance environment as a separate website with it’s own database. What are your thoughts about this? Have you ever seen such configuration?
Thanks for following up! You could create a unique lifecycle separate from your standard test > acceptance > production lifecycle (something like training > test > acceptance > production) and assign this single lifecycle to the project you want the training environment on. You can also define this as an optional phase, so it doesn’t have to go through training before being promoted through the standard environments.
You can also definitely deploy another website/database from the same deployment process. You can scope this step to only to the acceptance environment, and if you have a dedicated training Tentacle set up with a unique machine role (i.e. training), you can scope this step to that role as well. This will mean this step only runs on machines with the training role in the acceptance environment.
I hope this helps! Don’t hesitate to reach out if you have any further questions going forward.
Is that also possible without adjusting the default lifecycle? I couldn’t find a way now for creating such a lifecycle without modifying the default lifecycle (Test -> Acceptance -> Production).
Thanks for following up! You can certainly create another lifecycle and use different ones for each project if you’d like. In your web portal under Library > Lifecycles, you can click the ADD LIFECYCLE button and define which environments the project that uses it follows. In this page, you can manage all of your different lifecycles. If you don’t see the ADD LIFECYCLE button here, then you would want to ensure the user you’re signed into Octopus with has the CreateLifecyclepermission.
In your project that you want to use this lifecycle in, you can click CHANGE under the Lifecycle section in your Project’s Process page, as shown in my previously attached screenshot.
When I’m trying to create another lifecycle, it only gives me the following environments:
This is exactly what I mean “without” adjusting the whole lifecycle for all the projects. Can you explain me how I can create for example Test -> Acceptation -> Production -> Training without adding that environment? Or is that not possible?
Thanks for following up! I’m sorry I didn’t clarify that. You need to create this new environment in order to add it to a new lifecycle. You can include this one environment only into this one lifecycle without having to add it to the other lifecycle. You can add a new environment in your web portal under Infrastructure > Environments. Would this work for your needs?