From f3aaeda76adf8d97839dc2d24bee24f7d4c3c8f1 Mon Sep 17 00:00:00 2001 From: Rajesh Tailor Date: Tue, 24 Mar 2020 15:12:40 +0530 Subject: [PATCH] Add new parameter NovaSchedulePlacementAggregateRequiredForTenants Add new paramter NovaSchedulePlacementAggregateRequiredForTenants allows for configuring scheduler to enable tenant-isolation with placement, which controls whether or not a tenant with no aggregate affinity will be allowed to schedule to any available node. Depends-On: https://review.opendev.org/#/c/717746/ Change-Id: Id61deee3ec2981b2caddd07b06bef0b701e40ac2 (cherry picked from commit 148185cada9fef9c8baa4494538c6f64b074dbee) --- deployment/nova/nova-scheduler-container-puppet.yaml | 10 ++++++++++ ...gregate_required_for_tenants-6c7d90fd01bcc88d.yaml | 11 +++++++++++ 2 files changed, 21 insertions(+) create mode 100644 releasenotes/notes/nova_scheduler_placement_aggregate_required_for_tenants-6c7d90fd01bcc88d.yaml diff --git a/deployment/nova/nova-scheduler-container-puppet.yaml b/deployment/nova/nova-scheduler-container-puppet.yaml index c917bb9c3e..7b9ccaffc2 100644 --- a/deployment/nova/nova-scheduler-container-puppet.yaml +++ b/deployment/nova/nova-scheduler-container-puppet.yaml @@ -88,6 +88,15 @@ parameters: hosts in tenant-isolated host aggregate and availability zones will only be available to specific set of tenants. type: boolean + NovaSchedulePlacementAggregateRequiredForTenants: + default: false + description: > + This setting, when `NovaScheduleLimitTenantsToPlacementAggregate` is true, + controls whether or not a tenant with no aggregate affinity will be allowed + to schedule to any available node. + If aggregates are used to limit some tenants but not all, then this should be + False. If all tenants should be confined via aggregate, then this should be True. + type: boolean conditions: nova_scheduler_workers_zero: {equals : [{get_param: NovaSchedulerWorkers}, 0]} @@ -133,6 +142,7 @@ outputs: nova::scheduler::discover_hosts_in_cells_interval: {get_param: NovaSchedulerDiscoverHostsInCellsInterval} nova::scheduler::query_placement_for_image_type_support: {get_param: NovaSchedulerQueryImageType} nova::scheduler::limit_tenants_to_placement_aggregate: {get_param: NovaSchedulerLimitTenantsToPlacementAggregate} + nova::schedule::placement_aggregate_required_for_tenants: {get_param: NovaSchedulePlacementAggregateRequiredForTenants} - if: - nova_scheduler_workers_zero diff --git a/releasenotes/notes/nova_scheduler_placement_aggregate_required_for_tenants-6c7d90fd01bcc88d.yaml b/releasenotes/notes/nova_scheduler_placement_aggregate_required_for_tenants-6c7d90fd01bcc88d.yaml new file mode 100644 index 0000000000..5100c68930 --- /dev/null +++ b/releasenotes/notes/nova_scheduler_placement_aggregate_required_for_tenants-6c7d90fd01bcc88d.yaml @@ -0,0 +1,11 @@ +--- +features: + - | + Add boolean parameter `NovaSchedulePlacementAggregateRequiredForTenants` + which allows to set `scheduler/placement_aggregate_required_for_tenants` + parameter. It controls whether or not a tenant with no aggregate affinity + will be allowed to schedule to any available node. + If aggregates are used to limit some tenants but not all, then this should + be False. If all tenants should be confined via aggregate, then this + should be True. + Default value for NovaSchedulePlacementAggregateRequiredForTenants is false.