aboutsummaryrefslogtreecommitdiffstats
path: root/puppet/cinder-storage-puppet.yaml
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2015-02-12 14:34:16 -0500
committerDan Prince <dprince@redhat.com>2015-02-12 14:34:16 -0500
commit6b5ac01d2e61af9efddd01b58bfc0f6cd1e8518f (patch)
treea6008f4b374420f3fd7660f0211c5101d59058eb /puppet/cinder-storage-puppet.yaml
parent874e07dee16f75c1147da535a475c4435ed8ea9a (diff)
Move all puppet templates into puppet directory.
This cleans up the top level tree by moving all the puppet related bits into the puppet directory. The only exception is overcloud-resource-registry-puppet.yaml which is the puppet environment file and is used externally. Change-Id: Idb65a7143b0f29e5579d4e9d1642e4cda6f65d50
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]}