Add parameters for setting up keystone keys/certs in undercloud
[apex-tripleo-heat-templates.git] / undercloud-source.yaml
index 58e4eda..a78e069 100644 (file)
@@ -38,6 +38,44 @@ Parameters:
     Description: The user password for SNMPd with readonly rights running on all Overcloud nodes
     Type: String
     NoEcho: true
+  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
   Flavor:
     Default: baremetal
     Description: Flavor to request when deploying.
@@ -82,6 +120,18 @@ Parameters:
     Description: The password for the nova service account, used by nova-api.
     Type: String
     NoEcho: true
+  NeutronPublicInterfaceDefaultRoute:
+    Default: ''
+    Description: A custom default route for the NeutronPublicInterface.
+    Type: String
+  NeutronPublicInterfaceIP:
+    Default: ''
+    Description: A custom IP address to put onto the NeutronPublicInterface.
+    Type: String
+  NeutronPublicInterfaceRawDevice:
+    Default: ''
+    Description: If set, the public interface is a vlan with this device as the raw device.
+    Type: String
   NtpServer:
     Type: String
     Default: ''
@@ -110,6 +160,19 @@ Parameters:
         lower level default.
     Type: Number
     Default: 0
+  KeystoneCACertificate:
+    Default: ''
+    Description: Keystone self-signed certificate authority certificate.
+    Type: String
+  KeystoneSigningCertificate:
+    Default: ''
+    Description: Keystone certificate for verifying token validity.
+    Type: String
+  KeystoneSigningKey:
+    Default: ''
+    Description: Keystone key for signing tokens.
+    Type: String
+    NoEcho: true
 Resources:
   RabbitCookie:
     Type: OS::Heat::RandomString
@@ -140,6 +203,9 @@ Resources:
                       - undercloud
                       - show
           nodeid: {get_input: bootstack_nodeid}
+        bootstack:
+          public_interface_ip:
+            Ref: NeutronPublicInterfaceIP
         controller-address:
           get_input: controller_host
         ceilometer:
@@ -176,6 +242,9 @@ Resources:
         keystone:
           db: mysql://keystone:unset@localhost/keystone
           host: 127.0.0.1
+          ca_certificate: {Ref: KeystoneCACertificate}
+          signing_key: {Ref: KeystoneSigningKey}
+          signing_certificate: {Ref: KeystoneSigningCertificate}
         mysql:
           innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize}
         neutron:
@@ -184,6 +253,10 @@ Resources:
           ovs:
             public_interface:
               Ref: NeutronPublicInterface
+            public_interface_raw_device:
+              Ref: NeutronPublicInterfaceRawDevice
+            public_interface_route:
+              Ref: NeutronPublicInterfaceDefaultRoute
             physical_bridge: br-ctlplane
             physical_network: ctlplane
             network_vlan_ranges: ctlplane
@@ -205,6 +278,10 @@ Resources:
         ntp:
           servers:
             - {server: {Ref: NtpServer}, fudge: "stratum 0"}
+  undercloudPassthroughConfig:
+    Type: OS::Heat::StructuredConfig
+    Properties:
+      config: {get_input: passthrough_config}
   undercloud:
     Type: OS::Nova::Server
     Properties:
@@ -255,3 +332,11 @@ Resources:
             - - 'http://'
               - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]}
               - ':8000/v1/waitcondition'
+  00_undercloudPassthroughDeployment:
+    Type: OS::Heat::StructuredDeployment
+    Properties:
+      config: {Ref: undercloudPassthroughConfig}
+      server: {Ref: undercloud}
+      signal_transport: NO_SIGNAL
+      input_values:
+        passthrough_config: {Ref: ExtraConfig}