apache / cloudstack-primate

Primate - modern role-base progressive UI for Apache CloudStack
https://cloudstack.apache.org/
Apache License 2.0
39 stars 37 forks source link

[FEATURE] Multiple Management Server support #895

Open wido opened 3 years ago

wido commented 3 years ago

Right now the UI is developed towards a single CloudStack Management Server as it assume the API will be available under /client/api

This is set in config.json:

"apiBase": "/client/api"

This hard-codes the API to be available on /client/api while using reverse proxies multiple APIs could be made available:

In the JSON we could have support for different servers:

"servers": [
    {
        "name": "Manager 1",
        "apiBase": "/api/manager1"
    },
    {
        "name": "Manager 2",
        "apiBase": "/api/manager2"
    },
    {
        "name": "Manager 3",
        "apiBase": "/api/manager3"
    }
]

On the login page a dropdown menu could be shown when multiple servers are defined in the JSON file so that users can select the different server they want to log in to.            
rohityadavcloud commented 3 years ago

It is not clear from the issue description if the different management servers belong to the same CloudStack installation or are different sites; in case they are the same installation (multi-mgmt setup) there is no need for changes in Primate, you can setup a basic nginx LB config (https://www.nginx.com/resources/wiki/start/topics/examples/loadbalanceexample/) and use the archive (http://download.cloudstack.org/primate/4.15.0.0/archive/) to do a custom setup/install.

wido commented 3 years ago

It is not clear from the issue description if the different management servers belong to the same CloudStack installation or are different sites; in case they are the same installation (multi-mgmt setup) there is no need for changes in Primate, you can setup a basic nginx LB config (https://www.nginx.com/resources/wiki/start/topics/examples/loadbalanceexample/) and use the archive (http://download.cloudstack.org/primate/4.15.0.0/archive/) to do a custom setup/install.

Understood. This support is for different CloudStack installations. In our use-case we have CloudStack installations in Amsterdam, Miami and Barcelona and even multiple installations in Amsterdam.

With this support we can have one deployment of the UI under one URL where we can point customers to.