aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2017-01-20 16:51:36 +0000
committerSteven Hardy <shardy@redhat.com>2017-01-25 21:03:01 +0000
commit5e575fbb57d3057d4bb9c1a9dd017ffc918a836b (patch)
tree5b49baec94917daa87892b9d65003dc4359a6858
parent9f908e9832692c6be6d3821dc20efafac2a62662 (diff)
Skip upgrade steps where no tasks are defined
Use heat conditions to skip resources (conditionally create them) when there are no tasks to deploy. This requires the heat fix Iefae1fcea720bee4ed69ad1a5fe403d52d54433c Partially-Implements: blueprint overcloud-upgrades-per-service Change-Id: I2f43fb922d122ffade20e35738f0ba3bb56a4492
-rw-r--r--puppet/major_upgrade_steps.j2.yaml21
1 files changed, 21 insertions, 0 deletions
diff --git a/puppet/major_upgrade_steps.j2.yaml b/puppet/major_upgrade_steps.j2.yaml
index 44a391b2..eae85991 100644
--- a/puppet/major_upgrade_steps.j2.yaml
+++ b/puppet/major_upgrade_steps.j2.yaml
@@ -16,6 +16,23 @@ parameters:
Setting to a previously unused value during stack-update will trigger
the Upgrade resources to re-run on all roles.
+conditions:
+ # Conditions to disable any steps where the task list is empty
+{% for step in range(0, upgrade_steps_max) %}
+ {% for role in roles %}
+ UpgradeBatchConfig_Step{{step}}Enabled:
+ not:
+ equals:
+ - {get_param: [role_data, {{role.name}}, upgrade_batch_tasks]}
+ - []
+ UpgradeConfig_Step{{step}}Enabled:
+ not:
+ equals:
+ - {get_param: [role_data, {{role.name}}, upgrade_tasks]}
+ - []
+ {% endfor %}
+{% endfor %}
+
resources:
# Upgrade Steps for all roles, batched updates
@@ -25,6 +42,7 @@ resources:
# Step {{step}} resources
{{role.name}}UpgradeBatchConfig_Step{{step}}:
type: OS::TripleO::UpgradeConfig
+ condition: UpgradeBatchConfig_Step{{step}}Enabled
# The UpgradeConfig resources could actually be created without
# serialization, but the event output is easier to follow if we
# do, and there should be minimal performance hit (creating the
@@ -41,6 +59,7 @@ resources:
{{role.name}}UpgradeBatch_Step{{step}}:
type: OS::Heat::StructuredDeploymentGroup
+ condition: UpgradeBatchConfig_Step{{step}}Enabled
{% if step > 0 %}
depends_on:
{% for dep in roles %}
@@ -69,6 +88,7 @@ resources:
# Step {{step}} resources
{{role.name}}UpgradeConfig_Step{{step}}:
type: OS::TripleO::UpgradeConfig
+ condition: UpgradeConfig_Step{{step}}Enabled
# The UpgradeConfig resources could actually be created without
# serialization, but the event output is easier to follow if we
# do, and there should be minimal performance hit (creating the
@@ -91,6 +111,7 @@ resources:
{% if not role.disable_upgrade_deployment|default(false) %}
{{role.name}}Upgrade_Step{{step}}:
type: OS::Heat::StructuredDeploymentGroup
+ condition: UpgradeConfig_Step{{step}}Enabled
depends_on:
{% if step > 0 %}
{% for dep in roles %}