I have some feedback regarding how environments are connected to tenants and projects on the tenant overview page and a question on how lifecycles fit into a multi-tenant world.
You connect a tenant to projects and that works well. I really like this because it helps to restrict what is allowed to be deployed to a particular tenant.
During the connection process you need to specify the environments to include. That’s fine if you know the environments up front. However, if I add an environment at a later date I need to come back and add that new environment. I may need to do that for many tenants and many projects. I don’t see an option to automatically include all the environments belonging to a tenant? In addition, the environments drop down shows all environments including those which that tenant doesn’t belong to.
Regarding lifecycles, they are currently connected to releases but I can see value in having a lifecycle which is specific to a tenant. Is that functionality to come in a future release? How will the relationship/inheritance between a tenant lifecycle and a release lifecycle work?
Its great to see that you have downloaded and experimented with the multi-tenancy feature. We see the relationship between tenants & lifecycle still taking place through the explicitly linked environments. Playing around with linking tenants to lifecycles felt like there was to many degrees of separation between the tenant, and the environments\machines that it would eventually effect. Linking directly to the environment seems to give enough granularity to meet the various ways that we expect that multi-tenancy might be used (as probably others we hadn’t even though of!) and at the same time being easy to follow.
While we did change direction somewhat from our original RF, one piece of functionality that we do hope to include in the next beta-2, is the bulk tenant\project editor. We can imagine that you might have similar maintenance requirements if you add a new project that you want to link to your many tenants. Rather than go into each tenant one by one to connect to the new project, you will be able to connect the relevant environments for this project to all required tenants.
Let me know what you think of this approach and if you have any further suggestions.
Hi guys, working on the released version here and I don’t think this comment made through since we still need to link tenants and environments.
An extra question/issue, how can we link a tenant to several environments? Once a tenant is linked to a project for environment A I don’t seem to be able to link it in environment B. This basically means I cannot have staging and production environments for the same tenant. Was this intended?
There should be no reason why you cant add one environment after adding another to a tenant. It was designed to allow the very scenario you have described; you may want a tenant with both staging & production environments. Could you explain a little more about what you are seeing when you link the tenant to the project environments?
When you first link the tenant, do you see multiple environments in the drop down or just one? When you say you cannot link to environmentB, what are you seeing? It may be a permissions issue. You need to ensure you have environment view permissions for the environment in question to be able to select it on the tenants screen. Is that environment even available to any of the lifecycles attached to that Project or its channels? Any extra information here might help diagnose whats going on would be helpful.
With regards to the bulk editor, that is a feature we still plan on providing however we don’t yet have a timeframe for its release. For the time being the best alternative for modifying large collections of projects\tenants would be through scripting against the API. We have a great C# client library that may help simplify things a bit. Details are available in our documentation here.
Hi, thanks for your reply
After further investigation it looks like the life-cycle of the project plays some role here. Environments seem to be filtered by it but I still have to figure out exactly how this works with channels that use other life-cycles.