aboutsummaryrefslogtreecommitdiffstats
path: root/puppet/cinder-storage-puppet.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'puppet/cinder-storage-puppet.yaml')
-rw-r--r--puppet/cinder-storage-puppet.yaml186
1 files changed, 186 insertions, 0 deletions
diff --git a/puppet/cinder-storage-puppet.yaml b/puppet/cinder-storage-puppet.yaml
new file mode 100644
index 00000000..befd8e4e
--- /dev/null
+++ b/puppet/cinder-storage-puppet.yaml
@@ -0,0 +1,186 @@
+heat_template_version: 2014-10-16
+description: 'Block Storage Configuration w/ Puppet'
+parameters:
+ Image:
+ default: overcloud-cinder-volume
+ type: string
+ CinderISCSIHelper:
+ default: tgtadm
+ description: The iSCSI helper to use with cinder.
+ type: string
+ CinderLVMLoopDeviceSize:
+ default: 5000
+ description: The size of the loopback file used by the cinder LVM driver.
+ type: number
+ VirtualIP:
+ default: ''
+ 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": "force_config_drive",
+ "value": "always"
+ }
+ ]
+ },
+ {"section": "cells",
+ "values":
+ [{"option": "driver",
+ "value": "nova.cells.rpc_driver.CellsRPCDriver"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ type: json
+ Flavor:
+ description: Flavor for block storage nodes to request when deploying.
+ type: string
+ constraints:
+ - custom_constraint: nova.flavor
+ GlancePort:
+ default: "9292"
+ description: Glance port.
+ type: string
+ KeyName:
+ default: default
+ description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ type: string
+ RabbitPassword:
+ default: ''
+ type: string
+ RabbitUserName:
+ default: ''
+ type: string
+ SnmpdReadonlyUserName:
+ default: ro_snmp_user
+ description: The user name for SNMPd with readonly rights running on all Overcloud nodes
+ type: string
+ SnmpdReadonlyUserPassword:
+ default: unset
+ description: The user password for SNMPd with readonly rights running on all Overcloud nodes
+ type: string
+ hidden: true
+ NtpServer:
+ type: string
+ default: ''
+ EnablePackageInstall:
+ default: 'false'
+ description: Set to true to enable package installation via Puppet
+ type: boolean
+
+resources:
+ BlockStorage:
+ type: OS::Nova::Server
+ properties:
+ image:
+ {get_param: Image}
+ flavor: {get_param: Flavor}
+ key_name: {get_param: KeyName}
+ user_data_format: SOFTWARE_CONFIG
+ networks:
+ - network: ctlplane
+
+ BlockStorageDeployment:
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: BlockStorage}
+ config: {get_resource: BlockStorageConfig}
+ input_values:
+ cinder_dsn: {list_join: ['', ['mysql://cinder:unset@', {get_param: VirtualIP} , '/cinder']]}
+ snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
+ snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
+ cinder_lvm_loop_device_size:
+ str_replace:
+ template: sizeM
+ params:
+ size: {get_param: CinderLVMLoopDeviceSize}
+ cinder_iscsi_helper: {get_param: CinderISCSIHelper}
+ rabbit_hosts:
+ str_replace:
+ template: '["host"]'
+ params:
+ host: {get_param: VirtualIP}
+ rabbit_username: {get_param: RabbitUserName}
+ rabbit_password: {get_param: RabbitPassword}
+ ntp_servers:
+ str_replace:
+ template: '["server"]'
+ params:
+ server: {get_param: NtpServer}
+ enable_package_install: {get_param: EnablePackageInstall}
+ signal_transport: NO_SIGNAL
+
+ # Map heat metadata into hiera datafiles
+ BlockStorageConfig:
+ type: OS::Heat::StructuredConfig
+ properties:
+ group: os-apply-config
+ config:
+ hiera:
+ hierarchy:
+ - heat_config_%{::deploy_config_name}
+ - volume
+ - common
+ datafiles:
+ common:
+ raw_data: {get_file: hieradata/common.yaml}
+ volume:
+ raw_data: {get_file: hieradata/volume.yaml}
+ oac_data:
+ cinder::volume::iscsi::iscsi_ip_address: local-ipv4
+ mapped_data:
+ # Cinder
+ cinder::setup_test_volume::size: {get_input: cinder_lvm_loop_device_size}
+ cinder::volume::iscsi::iscsi_helper: {get_input: cinder_iscsi_helper}
+ cinder::database_connection: {get_input: cinder_dsn}
+ cinder::rabbit_hosts: {get_input: rabbit_hosts}
+ cinder::rabbit_userid: {get_input: rabbit_username}
+ cinder::rabbit_password: {get_input: rabbit_password}
+ ntp::servers: {get_input: ntp_servers}
+ enable_package_install: {get_input: enable_package_install}
+
+ VolumePuppetConfig:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: puppet
+ outputs:
+ - name: result
+ config:
+ get_file: manifests/overcloud_volume.pp
+
+ VolumePuppetDeployment:
+ type: OS::Heat::StructuredDeployment
+ properties:
+ name: puppet_1
+ server: {get_resource: BlockStorage}
+ config: {get_resource: VolumePuppetConfig}
+
+outputs:
+ hosts_entry:
+ value:
+ str_replace:
+ template: "IP HOST HOST.novalocal"
+ params:
+ IP: {get_attr: [BlockStorage, networks, ctlplane, 0]}
+ HOST: {get_attr: [BlockStorage, name]}