aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2014-10-23 16:42:45 +0100
committerSteven Hardy <shardy@redhat.com>2014-10-23 18:42:50 +0100
commit928cd735f30752152e50a3b20145f899cb1b961c (patch)
treeeaae1f70613455a93ff931e587f02824e3e46044
parentbcdcc28cb6905be257b50a962822bdbecaef0b0e (diff)
Use parameter constraints for image, key and flavor
If you don't have (or provide) the wrong image, KeyName, or flavor, we fail at some later point (not always early, depending on what's wrong). Since Icehouse, Heat has had a "custom constraints" method of dynamically validating parameter values, by comparing the value provided with a list from the underlying service. Despite the name, there's nothing "custom" about the constraints, these ones are included in Heat by default (though they are pluggable, which is where the name comes from..) See the docs for more info: http://docs.openstack.org/developer/heat/template_guide/hot_spec.html#custom-constraint Note, I've not considered network validation here, this could possibly be added in a subsequent patch. These constraints are evaluated via any of the following: - heat template-validate -f <template> - heat stack-preview <arguments given to create> - heat stack-create <arguments, fails fast before creating anything> - heat stack-update <arguments, fails fast before updating anything> Change-Id: I3a6374ce5421575cdde893c62aa97c750a07acd8
-rw-r--r--compute.yaml6
-rw-r--r--controller.yaml6
-rw-r--r--overcloud-source.yaml10
-rw-r--r--overcloud-without-mergepy.yaml10
4 files changed, 32 insertions, 0 deletions
diff --git a/compute.yaml b/compute.yaml
index 350b5ec4..99951490 100644
--- a/compute.yaml
+++ b/compute.yaml
@@ -73,6 +73,8 @@ parameters:
description: Flavor for the nova compute node
type: string
default: baremetal
+ constraints:
+ - custom_constraint: nova.flavor
GlanceHost:
type: string
default: '' # Has to be here because of the ignored empty value bug
@@ -87,6 +89,8 @@ parameters:
Image:
type: string
default: overcloud-compute
+ constraints:
+ - custom_constraint: glance.image
ImageUpdatePolicy:
default: 'REBUILD_PRESERVE_EPHEMERAL'
description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
@@ -95,6 +99,8 @@ parameters:
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
type: string
default: default
+ constraints:
+ - custom_constraint: nova.keypair
KeystoneHost:
type: string
default: ''
diff --git a/controller.yaml b/controller.yaml
index 885d0894..3cc27acf 100644
--- a/controller.yaml
+++ b/controller.yaml
@@ -97,6 +97,8 @@ parameters:
default: baremetal
description: Flavor for control nodes to request when deploying.
type: string
+ constraints:
+ - custom_constraint: nova.flavor
GlanceNotifierStrategy:
description: Strategy to use for Glance notification queue
type: string
@@ -131,6 +133,8 @@ parameters:
Image:
type: string
default: overcloud-control
+ constraints:
+ - custom_constraint: glance.image
ImageUpdatePolicy:
default: 'REBUILD_PRESERVE_EPHEMERAL'
description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
@@ -139,6 +143,8 @@ parameters:
default: default
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
type: string
+ constraints:
+ - custom_constraint: nova.keypair
KeystoneCACertificate:
default: ''
description: Keystone self-signed certificate authority certificate.
diff --git a/overcloud-source.yaml b/overcloud-source.yaml
index 55300062..0832e7cd 100644
--- a/overcloud-source.yaml
+++ b/overcloud-source.yaml
@@ -58,6 +58,8 @@ parameters:
controllerImage:
type: string
default: overcloud-control
+ constraints:
+ - custom_constraint: glance.image
ControlVirtualInterface:
default: 'br-ex'
description: Interface where virtual ip will be assigned.
@@ -160,6 +162,8 @@ parameters:
default: default
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
type: string
+ constraints:
+ - custom_constraint: nova.keypair
KeystoneCACertificate:
default: ''
description: Keystone self-signed certificate authority certificate.
@@ -288,6 +292,8 @@ parameters:
NovaImage:
type: string
default: overcloud-compute
+ constraints:
+ - custom_constraint: glance.image
NovaPassword:
default: unset
description: The password for the nova service account, used by nova-api.
@@ -300,10 +306,14 @@ parameters:
default: baremetal
description: Flavor for compute nodes to request when deploying.
type: string
+ constraints:
+ - custom_constraint: nova.flavor
OvercloudControlFlavor:
default: baremetal
description: Flavor for control nodes to request when deploying.
type: string
+ constraints:
+ - custom_constraint: nova.flavor
PublicVirtualFixedIPs:
default: []
description: >
diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml
index cb4f25c3..bba63f5e 100644
--- a/overcloud-without-mergepy.yaml
+++ b/overcloud-without-mergepy.yaml
@@ -59,6 +59,8 @@ parameters:
default: default
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
type: string
+ constraints:
+ - custom_constraint: nova.keypair
NeutronBridgeMappings:
description: >
The OVS logical->physical bridge mappings to use. See the Neutron
@@ -185,10 +187,14 @@ parameters:
controllerImage:
type: string
default: overcloud-control
+ constraints:
+ - custom_constraint: glance.image
OvercloudControlFlavor:
default: baremetal
description: Flavor for control nodes to request when deploying.
type: string
+ constraints:
+ - custom_constraint: nova.flavor
ControlVirtualInterface:
default: 'br-ex'
description: Interface where virtual ip will be assigned.
@@ -393,10 +399,14 @@ parameters:
NovaImage:
type: string
default: overcloud-compute
+ constraints:
+ - custom_constraint: glance.image
OvercloudComputeFlavor:
description: Use this flavor
type: string
default: baremetal
+ constraints:
+ - custom_constraint: nova.flavor
resources: