Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. If dedicated resources get exhausted for a domin/account, VM deployment will not fail unless shared resources has no free empty host, provided Implicit dedication flag: ON and service offering flag: ON.
  2. VMs that belong to two different offerings can be on the same host as long as they belong to the same account/domain . For e.g. If an instance is deployed by account user and : 
             a. If that account has dedicated resources, service offering flag "isdedicated" checked, then VM will be deployed on the dedicated host having VMs of same account or on the host which is empty.
             b. If that account has NO dedicated resources, service offering flag "isdedicated" checked then VM will be deployed on the host which is empty and that host will become dedicated to this account.
  3. The dedicated VM of other accounts (e.g. A2 or A3 ) of same domain or other domain, cannot use above host, but can use an empty host or host having vms of same account(A2 or A3). 
  4. If the service offering flag if OFF, the VM  will be deployed as CloudStack is doing now but should not use the host marked "dedicated for domain/account x".
  5. If no such host exists, VM operation should fail.

Architecture and Design description

If a request is placed to deploy a VM with Service Offering flag "isdedicated" ON

  1. Check if the account/domain has dedicated resources:
    1. If Yes, Place the VM in dedicated resource
    2. If No, Place the VM in new free empty host, make that host dedicated to that account. 

API Changes:

Following APIs need to be updated.

Root Admin APIs

  • createPod

          Request parameter addition:

   Parameter Name

Description

Required

domainId

Create a pod dedicated to a domain

false

 accountId

Create a pod dedicated to an account

false

  • updatePod
  • listPods 
  • addCluster
  • deleteCluster
  • updateCluster
  • listClusters
  • addHost
  • updateHost
  • listHosts

Request parameter addition:

...

  • createServiceOffering:  Request Parameter Addition:

 

Parameter Name

Description

Required

isdedicated

 if trueInstance will be deployed on the host dedicated to the account 

false

DB Changes:

  1.  host_pod_ref table: Introduce two columns “domain_id” and "account_id". Default value for both should be null.
  2.  cluster table:  Introduce two columns “domain_id” and "account_id". Default value for both should be null.
  3.  host table:  Introduce two columns “domain_id” and "account_id". Default value for both should be null.
  4. service_offering table: Introduce a column “isdedicated” in  service_offering table. Default value should be 0Introduce one column “domain_id” in  host_pod_ref, cluster, host tables. Default value for domain_id should be null.

Design Decisions: TBD

UI flow

...