2017-02-17 11:12:36 +01:00
heat_template_version : pike
2016-06-10 17:43:29 +02:00
description : >
OpenStack Nova Compute service configured with Puppet
parameters :
2017-06-22 17:25:03 +02:00
ServiceData :
default : {}
description : Dictionary packing service data
type : json
2016-08-11 23:07:46 +02:00
ServiceNetMap :
default : {}
description : Mapping of service_name -> network name. Typically set
via parameter_defaults in the resource registry. This
mapping overrides those in ServiceNetMapDefaults.
type : json
2016-08-17 09:26:05 -04:00
DefaultPasswords :
default : {}
type : json
2017-02-24 06:27:58 -05:00
RoleName :
default : ''
description : Role name on which the service is applied
type : string
RoleParameters :
default : {}
description : Parameters specific to the role
type : json
2016-06-10 17:43:29 +02:00
EndpointMap :
default : {}
description : Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type : json
2016-07-21 11:16:59 +02:00
NovaRbdPoolName :
default : vms
type : string
CephClientUserName :
default : openstack
type : string
2017-05-24 11:55:23 -04:00
CephClientKey :
description : The Ceph client key. Can be created with ceph-authtool --gen-print-key. Currently only used for external Ceph deployments to create the openstack user keyring.
type : string
hidden : true
CephClusterFSID :
type : string
description : The Ceph cluster FSID. Must be a UUID.
2016-08-10 17:35:30 -04:00
CinderEnableNfsBackend :
default : false
description : Whether to enable or not the NFS backend for Cinder
type : boolean
CinderEnableRbdBackend :
default : false
description : Whether to enable or not the Rbd backend for Cinder
type : boolean
NovaEnableRbdBackend :
default : false
description : Whether to enable or not the Rbd backend for Nova
type : boolean
NovaComputeLibvirtVifDriver :
default : ''
description : Libvirt VIF driver configuration for the network
type : string
2016-06-14 17:44:38 +05:30
NovaPCIPassthrough :
description : >
List of PCI Passthrough whitelist parameters.
Example -
NovaPCIPassthrough :
- vendor_id : "8086"
product_id : "154c"
address : "0000:05:00.0"
physical_network : "datacentre"
For different formats, refer to the nova.conf documentation for
pci_passthrough_whitelist configuration
type : json
2017-03-22 19:40:29 +05:30
default : ''
2016-07-18 21:45:13 +05:30
NovaVcpuPinSet :
description : >
A list or range of physical CPU cores to reserve for virtual machine
processes.
Ex. NovaVcpuPinSet : [ '4-12' , '^8' ] will reserve cores from 4-12 excluding 8
type : comma_delimited_list
default : [ ]
2016-06-09 19:40:35 +05:30
NovaReservedHostMemory :
description : >
Reserved RAM for host processes.
type : number
2017-05-16 17:44:55 +02:00
default : 4096
2016-06-09 19:40:35 +05:30
constraints :
- range : { min : 512 }
2016-06-09 15:39:22 +02:00
MonitoringSubscriptionNovaCompute :
default : 'overcloud-nova-compute'
type : string
2016-08-09 16:20:18 -04:00
NovaComputeLoggingSource :
type : json
default :
tag : openstack.nova.compute
path : /var/log/nova/nova-compute.log
2016-12-01 10:02:56 +00:00
UpgradeLevelNovaCompute :
type : string
description : Nova Compute upgrade level
default : auto
2017-03-28 16:15:08 +01:00
MigrationSshKey :
type : json
description : >
SSH key for migration.
Expects a dictionary with keys 'public_key' and 'private_key'.
Values should be identical to SSH public/private key files.
default : {}
2016-06-14 17:44:38 +05:30
2016-06-10 17:43:29 +02:00
resources :
NovaBase :
type : ./nova-base.yaml
2016-06-29 17:30:08 +02:00
properties :
2017-06-22 17:25:03 +02:00
ServiceData : {get_param : ServiceData}
2016-08-11 23:07:46 +02:00
ServiceNetMap : {get_param : ServiceNetMap}
2016-08-17 09:26:05 -04:00
DefaultPasswords : {get_param : DefaultPasswords}
2016-06-29 17:30:08 +02:00
EndpointMap : {get_param : EndpointMap}
2017-02-24 06:27:58 -05:00
RoleName : {get_param : RoleName}
RoleParameters : {get_param : RoleParameters}
2016-06-10 17:43:29 +02:00
2017-05-16 11:36:25 +05:30
# Merging role-specific parameters (RoleParameters) with the default parameters.
# RoleParameters will have the precedence over the default parameters.
RoleParametersValue :
type : OS::Heat::Value
properties :
type : json
value :
map_replace :
- map_replace :
- nova::compute::vcpu_pin_set : NovaVcpuPinSet
nova::compute::reserved_host_memory : NovaReservedHostMemory
- values : {get_param : [ RoleParameters]}
- values :
NovaVcpuPinSet : {get_param : NovaVcpuPinSet}
NovaReservedHostMemory : {get_param : NovaReservedHostMemory}
2016-06-10 17:43:29 +02:00
outputs :
role_data :
2016-06-14 17:27:07 -04:00
description : Role data for the Nova Compute service.
2016-06-10 17:43:29 +02:00
value :
2016-07-28 10:30:10 +01:00
service_name : nova_compute
2016-06-09 15:39:22 +02:00
monitoring_subscription : {get_param : MonitoringSubscriptionNovaCompute}
2016-08-09 16:20:18 -04:00
logging_source : {get_param : NovaComputeLoggingSource}
logging_groups :
- nova
2016-06-10 17:43:29 +02:00
config_settings :
map_merge :
- get_attr : [ NovaBase, role_data, config_settings]
2017-05-16 11:36:25 +05:30
- get_attr : [ RoleParametersValue, value]
2016-06-14 17:27:07 -04:00
- nova::compute::libvirt::manage_libvirt_services : false
2017-03-22 19:40:29 +05:30
nova::compute::pci_passthrough :
str_replace :
template : "JSON_PARAM"
params :
2017-05-16 11:36:25 +05:30
map_replace :
- map_replace :
- JSON_PARAM : NovaPCIPassthrough
- values : {get_param : [ RoleParameters]}
- values :
NovaPCIPassthrough : {get_param : NovaPCIPassthrough}
2016-07-13 11:29:43 -04:00
# we manage migration in nova common puppet profile
2016-06-14 17:27:07 -04:00
nova::compute::libvirt::migration_support : false
tripleo::profile::base::nova::manage_migration : true
2017-03-28 16:15:08 +01:00
tripleo::profile::base::nova::migration_ssh_key : {get_param : MigrationSshKey}
2017-04-19 14:51:02 +01:00
tripleo::profile::base::nova::migration_ssh_localaddrs :
- "%{hiera('cold_migration_ssh_inbound_addr')}"
- "%{hiera('live_migration_ssh_inbound_addr')}"
live_migration_ssh_inbound_addr : {get_param : [ ServiceNetMap, NovaLibvirtNetwork]}
cold_migration_ssh_inbound_addr : {get_param : [ ServiceNetMap, NovaColdMigrationNetwork]}
2016-06-14 17:27:07 -04:00
tripleo::profile::base::nova::nova_compute_enabled : true
2016-07-21 11:16:59 +02:00
nova::compute::rbd::libvirt_images_rbd_pool : {get_param : NovaRbdPoolName}
nova::compute::rbd::libvirt_rbd_user : {get_param : CephClientUserName}
2016-08-10 17:35:30 -04:00
tripleo::profile::base::nova::compute::cinder_nfs_backend : {get_param : CinderEnableNfsBackend}
rbd_persistent_storage : {get_param : CinderEnableRbdBackend}
2017-05-24 11:55:23 -04:00
nova::compute::rbd::libvirt_rbd_secret_key : {get_param : CephClientKey}
nova::compute::rbd::libvirt_rbd_secret_uuid : {get_param : CephClusterFSID}
2016-07-13 11:29:43 -04:00
nova::compute::instance_usage_audit : true
nova::compute::instance_usage_audit_period : 'hour'
2016-08-10 17:35:30 -04:00
nova::compute::rbd::ephemeral_storage : {get_param : NovaEnableRbdBackend}
# TUNNELLED mode provides a security enhancement when using shared
# storage but is not supported when not using shared storage.
# See https://bugzilla.redhat.com/show_bug.cgi?id=1301986#c12
# In future versions of QEMU (2.6, mostly), danpb's native
# encryption work will obsolete the need to use TUNNELLED transport
# mode.
nova::migration::live_migration_tunnelled : {get_param : NovaEnableRbdBackend}
nova::compute::neutron::libvirt_vif_driver : {get_param : NovaComputeLibvirtVifDriver}
2016-08-24 11:03:09 -04:00
# NOTE: bind IP is found in Heat replacing the network name with the
# local node IP for the given network; replacement examples
# (eg. for internal_api):
# internal_api -> IP
# internal_api_uri -> [IP]
# internal_api_subnet - > IP/CIDR
nova::compute::vncserver_proxyclient_address : {get_param : [ ServiceNetMap, NovaVncProxyNetwork]}
2016-08-30 15:58:43 -05:00
nova::compute::vncproxy_host : {get_param : [ EndpointMap, NovaPublic, host_nobrackets]}
2016-09-17 10:34:48 +03:00
nova::vncproxy::common::vncproxy_protocol : {get_param : [ EndpointMap, NovaVNCProxyPublic, protocol]}
nova::vncproxy::common::vncproxy_host : {get_param : [ EndpointMap, NovaVNCProxyPublic, host_nobrackets]}
nova::vncproxy::common::vncproxy_port : {get_param : [ EndpointMap, NovaVNCProxyPublic, port]}
2016-06-10 17:43:29 +02:00
step_config : |
2016-06-14 17:27:07 -04:00
# TODO(emilien): figure how to deal with libvirt profile.
2016-08-10 17:35:30 -04:00
# We'll probably treat it like we do with Neutron plugins.
2016-06-14 17:27:07 -04:00
# Until then, just include it in the default nova-compute role.
include tripleo::profile::base::nova::compute::libvirt
2016-12-21 13:14:01 -05:00
service_config_settings :
collectd :
tripleo.collectd.plugins.nova_compute :
- virt
collectd::plugins::virt::connection : "qemu:///system"
2016-12-01 10:02:56 +00:00
upgrade_tasks :
- name : Stop nova-compute service
2017-02-24 22:31:29 +01:00
tags : step1
2016-12-01 10:02:56 +00:00
service : name=openstack-nova-compute state=stopped
# If not already set by puppet (e.g a pre-ocata version), set the
# upgrade_level for compute to "auto"
- name : Set compute upgrade level to auto
tags : step3
ini_file :
str_replace :
template : "dest=/etc/nova/nova.conf section=upgrade_levels option=compute value=LEVEL"
params :
LEVEL : {get_param : UpgradeLevelNovaCompute}
2017-04-28 19:48:44 +02:00
- name : install openstack-nova-migration
tags : step3
yum : name=openstack-nova-migration state=latest
2016-12-01 10:02:56 +00:00
- name : Start nova-compute service
tags : step6
service : name=openstack-nova-compute state=started