aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobert Collins <rbtcollins@hp.com>2014-04-16 16:08:45 +1200
committerRobert Collins <rbtcollins@hp.com>2014-04-18 08:07:52 +1200
commitb84513c8d16cd19b57993575c6f54c9eda6f473f (patch)
tree147ed07ac1677bdc4e8a6d8be9b274fd459e3ab8
parentbe5af1a35e6bbb9e517fd953a5fe0e2467676b91 (diff)
Add passthrough configuration glue.
This provides a means for users to pass configuration through to the machines they are deploying without us modelling that. Change-Id: I7134eb0c6be2d5cb1795b2f03cfba4afb69dc837 blueprint: passthrough-config
-rw-r--r--nova-compute-config.yaml4
-rw-r--r--nova-compute-instance.yaml45
-rw-r--r--overcloud-source.yaml58
3 files changed, 107 insertions, 0 deletions
diff --git a/nova-compute-config.yaml b/nova-compute-config.yaml
index 1500a2e0..02d8e002 100644
--- a/nova-compute-config.yaml
+++ b/nova-compute-config.yaml
@@ -45,3 +45,7 @@ Resources:
base_image_id: {get_input: nova_image}
live_update_image_id: {get_input: live_update_compute_image}
completion-signal: {get_input: deploy_signal_id}
+ NovaComputePassthrough:
+ Type: OS::Heat::StructuredConfig
+ Properties:
+ config: {get_input: passthrough_config}
diff --git a/nova-compute-instance.yaml b/nova-compute-instance.yaml
index 99c2e11c..71e47ccc 100644
--- a/nova-compute-instance.yaml
+++ b/nova-compute-instance.yaml
@@ -6,6 +6,43 @@ Parameters:
Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
Type: String
NoEcho: true
+ ExtraConfig:
+ Description: |
+ Additional configuration to inject into the cluster. The JSON should have
+ the following structure:
+ {"FILEKEY":
+ {"config":
+ [{"section": "SECTIONNAME",
+ "values":
+ [{"option": "OPTIONNAME",
+ "value": "VALUENAME"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ For instance:
+ {"nova":
+ {"config":
+ [{"section": "default",
+ "values":
+ [{"option": "compute_manager",
+ "value": "ironic.nova.compute.manager.ClusterComputeManager"
+ }
+ ]
+ },
+ {"section": "cells",
+ "values":
+ [{"option": "driver",
+ "value": "nova.cells.rpc_driver.CellsRPCDriver"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ Type: Json
KeyName:
Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
Type: String
@@ -163,3 +200,11 @@ Resources:
live_update_tenant_name: {Ref: LiveUpdateTenantName}
nova_image: {Ref: NovaImage}
live_update_image_id: {Ref: LiveUpdateComputeImage}
+ NovaCompute0Passthrough:
+ Type: OS::Heat::StructuredDeployment
+ Properties:
+ config: {Ref: NovaComputePassthrough}
+ server: {Ref: NovaCompute0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ passthrough_config: {Ref: ExtraConfig}
diff --git a/overcloud-source.yaml b/overcloud-source.yaml
index f215e3be..ecdf05c0 100644
--- a/overcloud-source.yaml
+++ b/overcloud-source.yaml
@@ -21,6 +21,44 @@ Parameters:
Default: tgtadm
Description: The iSCSI helper to use with cinder.
Type: String
+ ExtraConfig:
+ Default: {}
+ Description: |
+ Additional configuration to inject into the cluster. The JSON should have
+ the following structure:
+ {"FILEKEY":
+ {"config":
+ [{"section": "SECTIONNAME",
+ "values":
+ [{"option": "OPTIONNAME",
+ "value": "VALUENAME"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ For instance:
+ {"nova":
+ {"config":
+ [{"section": "default",
+ "values":
+ [{"option": "compute_manager",
+ "value": "ironic.nova.compute.manager.ClusterComputeManager"
+ }
+ ]
+ },
+ {"section": "cells",
+ "values":
+ [{"option": "driver",
+ "value": "nova.cells.rpc_driver.CellsRPCDriver"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ Type: Json
OvercloudControlFlavor:
Default: baremetal
Description: Flavor for control nodes to request when deploying.
@@ -246,6 +284,14 @@ Resources:
- {Ref: CloudName}
# If CloudName is unset, make the hosts line still valid
- unused
+ NovaCompute0Passthrough:
+ Type: OS::Heat::StructuredDeployment
+ Properties:
+ config: {Ref: NovaComputePassthrough}
+ server: {Ref: NovaCompute0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ passthrough_config: {Ref: ExtraConfig}
NovaCompute0:
Type: FileInclude
Path: nova-compute-instance.yaml
@@ -354,6 +400,10 @@ Resources:
ntp:
servers:
- {server: {Ref: NtpServer}, fudge: "stratum 0"}
+ controllerPassthrough:
+ Type: OS::Heat::StructuredConfig
+ Properties:
+ config: {get_input: passthrough_config}
controller0:
Type: OS::Nova::Server
Properties:
@@ -412,6 +462,14 @@ Resources:
input_values:
ssl_certificate: {Ref: SSLCertificate}
ssl_key: {Ref: SSLKey}
+ controller0Passthrough:
+ Type: OS::Heat::StructuredDeployment
+ Properties:
+ config: {Ref: controllerPassthrough}
+ server: {Ref: controller0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ passthrough_config: {Ref: ExtraConfig}
Outputs:
KeystoneURL:
Description: URL for the Overcloud Keystone service