Hi,

Currently tenants cannot map custom domain names to subscriptions. The only
possibility is to use hostnames generated by Stratos Manager for accessing
applications deployed in Stratos via the load balancers.

Therefore I thought it would be a great value addition to implement a new
functionality to map domain names to subscriptions as described below.
Please add your thoughts.

*Functional Design:*

Subscription domains will be managed by Stratos Manager together with the
subscription information. Once domains are added to a given subscription, a
new event (SubscriptionDomainsAddedEvent [serviceName, tenantId,
clusterIds, domains]) will be published to the "tenant" topic and it will
be received by the load balancer. Load balancer will update its internal
cluster map with the given information. Similarly when domains are removed,
a new event (SubscriptionDomainsRemovedEvent [serviceName, tenantId,
clusterIds, domains]) will be published to the "tenant" topic and load
balancer will update its cluster map accordingly.

*New REST API methods:*

1. Add subscription domains:
Send a POST request to the following URL with tenant credentials to add
subscription domains:

POST  https://sm-ip:sm-port
/stratos/admin/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/
{
  "domains": [
     "some.oragnization1.org" ,
     "some.oragnization2.org" ,
     "some.oragnization3.org"
  ]
}

2. Get subscription domains:
Send a GET get request to the following URL with tenant credentials to get
existing subscription domains:

GET  https://sm-ip:sm-port
/stratos/admin/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/

3. Remove subscription domains:
Send a DELETE request to the following URL with tenant credentials to
remove a given list of domain names:

DELETE  https://sm-ip:sm-port
/stratos/admin/cartridge/{cartridgeType}/subscription/{subscriptionAlias}/domain/
{
  "domains": [
     "some.oragnization1.org"
  ]
}


Thanks

-- 
Imesh Gunaratne

Technical Lead, WSO2
Committer & PPMC Member, Apache Stratos

Reply via email to