Versions Compared

Key

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

...

  • Expose deployment planner as part of a ServiceOffering API. By default, the value can be set to the default CS FirstFitPlanner, but admin can override it null and in that case, CS will refer a global configuration variable 'vm.deployment.planner'. But admin can override the global choice and set some other strategy planner for a service offering as per needs.
  • Add a resource reservation mechanism to let deployment planners co-exist

...

  1. listDeploymentPlanners Admin API - This will be a new API that will let Admin list the available set of deployment planners.
  2. createServiceOffering API changes - Following new field will be added to this API
    1. deploymentplanner - String value (default: 'FirstFitPlanner' optional parameter)

DB Changes

  1. Additional column to service_offering:
    ALTER TABLE `cloud`.`service_offering` ADD COLUMN `deployment_planner` varchar(255) NOT NULL DEFAULT 'FirstFitPlanner'  COMMENT 'Planner heuristics used to deploy a VM of this offering; if null global config vm.deployment.planner is used';
  2. A new table to store planner reservations. Following are some columns needed:
    CREATE TABLE `cloud`.`op_host_planner_reservation` (
      `id` bigint unsigned NOT NULL auto_increment,
      `data_center_id` bigint unsigned NOT NULL,
      `pod_id` bigint unsigned,
      `cluster_id` bigint unsigned,
      `host_id` bigint unsigned,
      `resource_usage` varchar(255) COMMENT 'Shared(between planners) Vs Dedicated (exclusive usage to a planner)',
      PRIMARY KEY  (`id`),
      INDEX `i_op_host_planner_reservation__host_type`resource_usage`(`host_id`, `resource_type`usage`),
      CONSTRAINT `fk_planner_reservation__host_id` FOREIGN KEY (`host_id`) REFERENCES `host`(`id`) ON DELETE CASCADE,
      CONSTRAINT `fk_planner_reservation__data_center_id` FOREIGN KEY (`data_center_id`) REFERENCES `cloud`.`data_center`(`id`) ON DELETE CASCADE,
      CONSTRAINT `fk_planner_reservation__pod_id` FOREIGN KEY (`pod_id`) REFERENCES `cloud`.`host_pod_ref`(`id`) ON DELETE CASCADE,
      CONSTRAINT `fk_planner_reservation__cluster_id` FOREIGN KEY (`cluster_id`) REFERENCES `cloud`.`cluster`(`id`) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

...

Add a field 'deployment planner' to the createServiceOffering UI. The parameter is optional. The value should be chosen from a drop-down list of available deployment plannersaccepted using an empty input box.