Browse Source

flatten cinder service configuration

This change combines the previous puppet and docker files into a single
file that performs the docker service installation and configuration.

With this patch the baremetal version of cinder services has been removed.

Change-Id: I88f047a8ee9c3eed80e4c48ed9cabdb3035d518b
Related-Blueprint: services-yaml-flattening
changes/37/626937/16
David J Peacock 3 years ago
parent
commit
123f40a565
  1. 4
      ci/environments/scenario001-multinode-containers.yaml
  2. 4
      ci/environments/scenario001-standalone.yaml
  3. 4
      ci/environments/scenario002-multinode-containers.yaml
  4. 4
      ci/environments/scenario002-standalone.yaml
  5. 2
      ci/environments/scenario012-multinode-containers.yaml
  6. 137
      deployment/cinder/cinder-api-container-puppet.yaml
  7. 0
      deployment/cinder/cinder-backend-dellemc-unity-puppet.yaml
  8. 0
      deployment/cinder/cinder-backend-dellemc-vmax-iscsi-puppet.yaml
  9. 0
      deployment/cinder/cinder-backend-dellemc-vnx-puppet.yaml
  10. 0
      deployment/cinder/cinder-backend-dellemc-xtremio-iscsi-puppet.yaml
  11. 0
      deployment/cinder/cinder-backend-dellps-puppet.yaml
  12. 0
      deployment/cinder/cinder-backend-dellsc-puppet.yaml
  13. 0
      deployment/cinder/cinder-backend-netapp-puppet.yaml
  14. 0
      deployment/cinder/cinder-backend-nvmeof-puppet.yaml
  15. 0
      deployment/cinder/cinder-backend-pure-puppet.yaml
  16. 0
      deployment/cinder/cinder-backend-scaleio-puppet.yaml
  17. 0
      deployment/cinder/cinder-backend-veritas-hyperscale-puppet.yaml
  18. 61
      deployment/cinder/cinder-backup-container-puppet.yaml
  19. 12
      deployment/cinder/cinder-backup-pacemaker-puppet.yaml
  20. 0
      deployment/cinder/cinder-base.yaml
  21. 2
      deployment/cinder/cinder-common-container-puppet.yaml
  22. 0
      deployment/cinder/cinder-hpelefthand-iscsi-puppet.yaml
  23. 16
      deployment/cinder/cinder-scheduler-container-puppet.yaml
  24. 233
      deployment/cinder/cinder-volume-container-puppet.yaml
  25. 25
      deployment/cinder/cinder-volume-pacemaker-puppet.yaml
  26. 213
      docker/services/cinder-volume.yaml
  27. 8
      environments/baremetal-services.yaml
  28. 4
      environments/cinder-backup.yaml
  29. 2
      environments/cinder-dellemc-unity-config.yaml
  30. 2
      environments/cinder-dellemc-vmax-iscsi-config.yaml
  31. 2
      environments/cinder-dellemc-vnx-config.yaml
  32. 2
      environments/cinder-dellemc-xtremio-iscsi-config.yaml
  33. 2
      environments/cinder-dellps-config.yaml
  34. 2
      environments/cinder-dellsc-config.yaml
  35. 2
      environments/cinder-hpelefthand-config.yaml
  36. 2
      environments/cinder-netapp-config.yaml
  37. 2
      environments/cinder-nvmeof-config.yaml
  38. 2
      environments/cinder-pure-config.yaml
  39. 2
      environments/cinder-scaleio-config.yaml
  40. 2
      environments/docker-ha.yaml
  41. 2
      environments/nonha-arch.yaml
  42. 4
      environments/services-baremetal/cinder-backup.yaml
  43. 6
      environments/services-baremetal/undercloud-cinder.yaml
  44. 4
      environments/services/cinder-backup.yaml
  45. 6
      environments/services/undercloud-cinder.yaml
  46. 2
      environments/storage/cinder-netapp-config.yaml
  47. 2
      environments/veritas-hyperscale/cinder-veritas-hyperscale-config.yaml
  48. 8
      overcloud-resource-registry-puppet.j2.yaml
  49. 197
      puppet/services/cinder-api.yaml
  50. 114
      puppet/services/cinder-backup.yaml
  51. 72
      puppet/services/cinder-scheduler.yaml
  52. 77
      puppet/services/pacemaker/cinder-backup.yaml
  53. 73
      puppet/services/pacemaker/cinder-volume.yaml
  54. 6
      sample-env-generator/storage.yaml

4
ci/environments/scenario001-multinode-containers.yaml

@ -16,8 +16,8 @@ resource_registry:
OS::TripleO::Services::Clustercheck: ../../docker/services/pacemaker/clustercheck.yaml
OS::TripleO::Services::Redis: ../../docker/services/pacemaker/database/redis.yaml
OS::TripleO::Services::MySQL: ../../docker/services/pacemaker/database/mysql.yaml
OS::TripleO::Services::CinderBackup: ../../docker/services/pacemaker/cinder-backup.yaml
OS::TripleO::Services::CinderVolume: ../../docker/services/pacemaker/cinder-volume.yaml
OS::TripleO::Services::CinderBackup: ../../deployment/cinder/cinder-backup-pacemaker-puppet.yaml
OS::TripleO::Services::CinderVolume: ../../deployment/cinder/cinder-volume-pacemaker-puppet.yaml
OS::TripleO::Services::Keepalived: OS::Heat::None
#Needs to run scenario001
OS::TripleO::Services::Fluentd: ../../docker/services/fluentd.yaml

4
ci/environments/scenario001-standalone.yaml

@ -28,8 +28,8 @@ resource_registry:
OS::TripleO::Services::Clustercheck: ../../docker/services/pacemaker/clustercheck.yaml
OS::TripleO::Services::Redis: ../../docker/services/pacemaker/database/redis.yaml
OS::TripleO::Services::MySQL: ../../docker/services/pacemaker/database/mysql.yaml
OS::TripleO::Services::CinderBackup: ../../docker/services/pacemaker/cinder-backup.yaml
OS::TripleO::Services::CinderVolume: ../../docker/services/pacemaker/cinder-volume.yaml
OS::TripleO::Services::CinderBackup: ../../deployment/cinder/cinder-backup-pacemaker-puppet.yaml
OS::TripleO::Services::CinderVolume: ../../deployment/cinder/cinder-volume-pacemaker-puppet.yaml
OS::TripleO::Services::Keepalived: OS::Heat::None
#Needs to run scenario001
OS::TripleO::Services::Fluentd: ../../docker/services/fluentd.yaml

4
ci/environments/scenario002-multinode-containers.yaml

@ -13,8 +13,8 @@ resource_registry:
OS::TripleO::Services::PacemakerRemote: ../../puppet/services/pacemaker_remote.yaml
OS::TripleO::Services::Clustercheck: ../../docker/services/pacemaker/clustercheck.yaml
OS::TripleO::Services::MySQL: ../../docker/services/pacemaker/database/mysql.yaml
OS::TripleO::Services::CinderBackup: ../../docker/services/pacemaker/cinder-backup.yaml
OS::TripleO::Services::CinderVolume: ../../docker/services/pacemaker/cinder-volume.yaml
OS::TripleO::Services::CinderBackup: ../../deployment/cinder/cinder-backup-pacemaker-puppet.yaml
OS::TripleO::Services::CinderVolume: ../../deployment/cinder/cinder-volume-pacemaker-puppet.yaml
OS::TripleO::Services::BarbicanBackendSimpleCrypto: ../../puppet/services/barbican-backend-simple-crypto.yaml
OS::TripleO::Services::Keepalived: OS::Heat::None
# Some infra instances don't pass the ping test but are otherwise working.

4
ci/environments/scenario002-standalone.yaml

@ -25,8 +25,8 @@ resource_registry:
OS::TripleO::Services::PacemakerRemote: ../../puppet/services/pacemaker_remote.yaml
OS::TripleO::Services::Clustercheck: ../../docker/services/pacemaker/clustercheck.yaml
OS::TripleO::Services::MySQL: ../../docker/services/pacemaker/database/mysql.yaml
OS::TripleO::Services::CinderBackup: ../../docker/services/pacemaker/cinder-backup.yaml
OS::TripleO::Services::CinderVolume: ../../docker/services/pacemaker/cinder-volume.yaml
OS::TripleO::Services::CinderBackup: ../../deployment/cinder/cinder-backup-pacemaker-puppet.yaml
OS::TripleO::Services::CinderVolume: ../../deployment/cinder/cinder-volume-pacemaker-puppet.yaml
OS::TripleO::Services::BarbicanBackendSimpleCrypto: ../../puppet/services/barbican-backend-simple-crypto.yaml
# Some infra instances don't pass the ping test but are otherwise working.
# Since the OVB jobs also test this functionality we can shut it off here.

2
ci/environments/scenario012-multinode-containers.yaml

@ -17,7 +17,7 @@ resource_registry:
# Since the OVB jobs also test this functionality we can shut it off here.
OS::TripleO::AllNodes::Validation: ../common/all-nodes-validation-disabled.yaml
OS::TripleO::NodeExtraConfigPost: ../common/vbmc_setup.yaml
OS::TripleO::Services::CinderVolume: ../../docker/services/pacemaker/cinder-volume.yaml
OS::TripleO::Services::CinderVolume: ../../deployment/cinder/cinder-volume-pacemaker-puppet.yaml
OS::TripleO::Services::NeutronCorePlugin: OS::TripleO::Services::NeutronCorePluginML2Ansible
parameter_defaults:

137
docker/services/cinder-api.yaml → deployment/cinder/cinder-api-container-puppet.yaml

@ -48,21 +48,56 @@ parameters:
default: false
description: Remove package if the service is being disabled during upgrade
type: boolean
CinderDefaultVolumeType:
default: tripleo
description: The name of Cinder's default volume type.
type: string
CinderEnableDBPurge:
default: true
description: |
Whether to create cron job for purging soft deleted rows in Cinder database.
type: boolean
CinderPassword:
description: The password for the cinder service account, used by cinder-api.
type: string
hidden: true
KeystoneRegion:
type: string
default: 'regionOne'
description: Keystone region for endpoint
MonitoringSubscriptionCinderApi:
default: 'overcloud-cinder-api'
type: string
CinderWorkers:
type: string
description: Set the number of workers for cinder::wsgi::apache
default: '%{::os_workers}'
CinderApiPolicies:
description: |
A hash of policies to configure for Cinder API.
e.g. { cinder-context_is_admin: { key: context_is_admin, value: 'role:admin' } }
default: {}
type: json
NotificationDriver:
type: string
default: 'messagingv2'
description: Driver or drivers to handle sending notifications.
conditions:
internal_tls_enabled: {equals: [{get_param: EnableInternalTLS}, true]}
cinder_workers_zero: {equals : [{get_param: CinderWorkers}, 0]}
resources:
ContainersCommon:
type: ./containers-common.yaml
type: ../../docker/services/containers-common.yaml
MySQLClient:
type: ../../puppet/services/database/mysql-client.yaml
CinderBase:
type: ../../puppet/services/cinder-api.yaml
type: ./cinder-base.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
@ -71,12 +106,81 @@ resources:
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
ApacheServiceBase:
type: ../../puppet/services/apache.yaml
properties:
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
EnableInternalTLS: {get_param: EnableInternalTLS}
outputs:
role_data:
description: Role data for the Cinder API role.
value:
service_name: {get_attr: [CinderBase, role_data, service_name]}
config_settings: {get_attr: [CinderBase, role_data, config_settings]}
service_name: cinder_api
monitoring_subscription: {get_param: MonitoringSubscriptionCinderApi}
config_settings:
map_merge:
- get_attr: [CinderBase, role_data, config_settings]
- get_attr: [ApacheServiceBase, role_data, config_settings]
- cinder::keystone::authtoken::www_authenticate_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
cinder::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
cinder::keystone::authtoken::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
cinder::keystone::authtoken::password: {get_param: CinderPassword}
cinder::keystone::authtoken::project_name: 'service'
cinder::keystone::authtoken::user_domain_name: 'Default'
cinder::keystone::authtoken::project_domain_name: 'Default'
cinder::policy::policies: {get_param: CinderApiPolicies}
cinder::ceilometer::notification_driver: {get_param: NotificationDriver}
cinder::api::default_volume_type: {get_param: CinderDefaultVolumeType}
cinder::api::enable_proxy_headers_parsing: true
cinder::api::nova_catalog_info: 'compute:nova:internalURL'
# TODO(emilien) move it to puppet-cinder
cinder::config:
DEFAULT/swift_catalog_info:
value: 'object-store:swift:internalURL'
tripleo::profile::base::cinder::cinder_enable_db_purge: {get_param: CinderEnableDBPurge}
tripleo::cinder_api::firewall_rules:
'119 cinder':
dport:
- 8776
- 13776
cinder::api::bind_host:
str_replace:
template:
"%{hiera('fqdn_$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, CinderApiNetwork]}
cinder::wsgi::apache::ssl: {get_param: EnableInternalTLS}
cinder::api::service_name: 'httpd'
# NOTE: bind IP is found in hiera 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
cinder::wsgi::apache::bind_host:
str_replace:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, CinderApiNetwork]}
-
cinder::wsgi::apache::servername:
str_replace:
template:
"%{hiera('fqdn_$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, CinderApiNetwork]}
-
if:
- cinder_workers_zero
- {}
- cinder::wsgi::apache::workers: {get_param: CinderWorkers}
service_config_settings:
map_merge:
- get_attr: [CinderBase, role_data, service_config_settings]
@ -85,6 +189,27 @@ outputs:
- cinder
tripleo_fluentd_sources_cinder_api:
- {get_param: CinderApiLoggingSource}
keystone:
cinder::keystone::auth::tenant: 'service'
cinder::keystone::auth::public_url: {get_param: [EndpointMap, CinderPublic, uri]}
cinder::keystone::auth::internal_url: {get_param: [EndpointMap, CinderInternal, uri]}
cinder::keystone::auth::admin_url: {get_param: [EndpointMap, CinderAdmin, uri]}
cinder::keystone::auth::public_url_v2: {get_param: [EndpointMap, CinderV2Public, uri]}
cinder::keystone::auth::internal_url_v2: {get_param: [EndpointMap, CinderV2Internal, uri]}
cinder::keystone::auth::admin_url_v2: {get_param: [EndpointMap, CinderV2Admin, uri]}
cinder::keystone::auth::public_url_v3: {get_param: [EndpointMap, CinderV3Public, uri]}
cinder::keystone::auth::internal_url_v3: {get_param: [EndpointMap, CinderV3Internal, uri]}
cinder::keystone::auth::admin_url_v3: {get_param: [EndpointMap, CinderV3Admin, uri]}
cinder::keystone::auth::password: {get_param: CinderPassword}
cinder::keystone::auth::region: {get_param: KeystoneRegion}
mysql:
cinder::db::mysql::password: {get_param: CinderPassword}
cinder::db::mysql::user: cinder
cinder::db::mysql::host: {get_param: [EndpointMap, MysqlInternal, host_nobrackets]}
cinder::db::mysql::dbname: cinder
cinder::db::mysql::allowed_hosts:
- '%'
- "%{hiera('mysql_bind_host')}"
# BEGIN DOCKER SETTINGS
puppet_config:
config_volume: cinder
@ -92,7 +217,7 @@ outputs:
step_config:
list_join:
- "\n"
- - {get_attr: [CinderBase, role_data, step_config]}
- - "include ::tripleo::profile::base::cinder::api"
- {get_attr: [MySQLClient, role_data, step_config]}
config_image: {get_param: DockerCinderConfigImage}
kolla_config:
@ -207,7 +332,7 @@ outputs:
- /var/lib/config-data/cinder/etc/cinder/:/etc/cinder/:ro
metadata_settings:
get_attr: [CinderBase, role_data, metadata_settings]
get_attr: [ApacheServiceBase, role_data, metadata_settings]
host_prep_tasks:
- name: create persistent directories
file:

0
puppet/services/cinder-backend-dellemc-unity.yaml → deployment/cinder/cinder-backend-dellemc-unity-puppet.yaml

0
puppet/services/cinder-backend-dellemc-vmax-iscsi.yaml → deployment/cinder/cinder-backend-dellemc-vmax-iscsi-puppet.yaml

0
puppet/services/cinder-backend-dellemc-vnx.yaml → deployment/cinder/cinder-backend-dellemc-vnx-puppet.yaml

0
puppet/services/cinder-backend-dellemc-xtremio-iscsi.yaml → deployment/cinder/cinder-backend-dellemc-xtremio-iscsi-puppet.yaml

0
puppet/services/cinder-backend-dellps.yaml → deployment/cinder/cinder-backend-dellps-puppet.yaml

0
puppet/services/cinder-backend-dellsc.yaml → deployment/cinder/cinder-backend-dellsc-puppet.yaml

0
puppet/services/cinder-backend-netapp.yaml → deployment/cinder/cinder-backend-netapp-puppet.yaml

0
puppet/services/cinder-backend-nvmeof.yaml → deployment/cinder/cinder-backend-nvmeof-puppet.yaml

0
puppet/services/cinder-backend-pure.yaml → deployment/cinder/cinder-backend-pure-puppet.yaml

0
puppet/services/cinder-backend-scaleio.yaml → deployment/cinder/cinder-backend-scaleio-puppet.yaml

0
puppet/services/cinder-backend-veritas-hyperscale.yaml → deployment/cinder/cinder-backend-veritas-hyperscale-puppet.yaml

61
docker/services/cinder-backup.yaml → deployment/cinder/cinder-backup-container-puppet.yaml

@ -57,17 +57,50 @@ parameters:
default:
tag: openstack.cinder.backup
path: /var/log/containers/cinder/cinder-backup.log
CinderBackupBackend:
default: swift
description: The short name of the Cinder Backup backend to use.
type: string
constraints:
- allowed_values: ['swift', 'ceph', 'nfs']
CinderBackupRbdPoolName:
default: backups
type: string
CephClusterName:
type: string
default: ceph
description: The Ceph cluster name.
constraints:
- allowed_pattern: "[a-zA-Z0-9]+"
description: >
The Ceph cluster name must be at least 1 character and contain only
letters and numbers.
CephClientUserName:
default: openstack
type: string
CinderBackupNfsShare:
default: ''
description: NFS share to be mounted
type: string
CinderBackupNfsMountOptions:
default: ''
description: Mount options passed to the NFS client. See NFS man
page for details.
type: string
MonitoringSubscriptionCinderBackup:
default: 'overcloud-cinder-backup'
type: string
resources:
ContainersCommon:
type: ./containers-common.yaml
type: ../../docker/services/containers-common.yaml
MySQLClient:
type: ../../puppet/services/database/mysql-client.yaml
CinderBase:
type: ../../puppet/services/cinder-backup.yaml
type: ./cinder-base.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
@ -77,14 +110,28 @@ resources:
RoleParameters: {get_param: RoleParameters}
CinderCommon:
type: ./cinder-common.yaml
type: ./cinder-common-container-puppet.yaml
outputs:
role_data:
description: Role data for the Cinder Backup role.
value:
service_name: {get_attr: [CinderBase, role_data, service_name]}
config_settings: {get_attr: [CinderBase, role_data, config_settings]}
service_name: cinder_backup
monitoring_subscription: {get_param: MonitoringSubscriptionCinderBackup}
config_settings:
map_merge:
- get_attr: [CinderBase, role_data, config_settings]
- cinder::backup::ceph::backup_ceph_user: {get_param: CephClientUserName}
cinder::backup::ceph::backup_ceph_pool: {get_param: CinderBackupRbdPoolName}
cinder::backup::ceph::backup_ceph_conf:
list_join:
- ''
- - '/etc/ceph/'
- {get_param: CephClusterName}
- '.conf'
cinder::backup::swift::backup_swift_container: volumebackups
cinder::backup::nfs::backup_share: {get_param: CinderBackupNfsShare}
cinder::backup::nfs::backup_mount_options: {get_param: CinderBackupNfsMountOptions}
service_config_settings:
map_merge:
- get_attr: [CinderBase, role_data, service_config_settings]
@ -98,6 +145,10 @@ outputs:
config_volume: cinder
puppet_tags: cinder_config,file,concat,file_line
step_config:
str_replace:
template: "include ::tripleo::profile::base::cinder::backup::DRIVER"
params:
DRIVER: {get_param: CinderBackupBackend}
list_join:
- "\n"
- - {get_attr: [CinderBase, role_data, step_config]}

12
docker/services/pacemaker/cinder-backup.yaml → deployment/cinder/cinder-backup-pacemaker-puppet.yaml

@ -81,13 +81,13 @@ conditions:
resources:
ContainersCommon:
type: ../containers-common.yaml
type: ../../docker/services/containers-common.yaml
MySQLClient:
type: ../../../puppet/services/database/mysql-client.yaml
type: ../../puppet/services/database/mysql-client.yaml
CinderBackupBase:
type: ../../../puppet/services/cinder-backup.yaml
type: ./cinder-backup-container-puppet.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
@ -100,13 +100,14 @@ resources:
CephClientUserName: {get_param: CephClientUserName}
CinderCommon:
type: ../cinder-common.yaml
type: ./cinder-common-container-puppet.yaml
outputs:
role_data:
description: Role data for the Cinder Backup role.
value:
service_name: {get_attr: [CinderBackupBase, role_data, service_name]}
service_name: cinder_backup
monitoring_subscription: {get_attr: [CinderBackupBase, role_data, monitoring_subscription]}
config_settings:
map_merge:
- get_attr: [CinderBackupBase, role_data, config_settings]
@ -139,6 +140,7 @@ outputs:
- "\n"
- - {get_attr: [CinderBackupBase, role_data, step_config]}
- {get_attr: [MySQLClient, role_data, step_config]}
- "include ::tripleo::profile::pacemaker::cinder::backup"
config_image: {get_param: DockerCinderConfigImage}
kolla_config:
/var/lib/kolla/config_files/cinder_backup.json:

0
puppet/services/cinder-base.yaml → deployment/cinder/cinder-base.yaml

2
docker/services/cinder-common.yaml → deployment/cinder/cinder-common-container-puppet.yaml

@ -52,7 +52,7 @@ parameters:
resources:
ContainersCommon:
type: ./containers-common.yaml
type: ../../docker/services/containers-common.yaml
outputs:
cinder_common_host_prep_tasks:

0
puppet/services/cinder-hpelefthand-iscsi.yaml → deployment/cinder/cinder-hpelefthand-iscsi-puppet.yaml

16
docker/services/cinder-scheduler.yaml → deployment/cinder/cinder-scheduler-container-puppet.yaml

@ -45,17 +45,20 @@ parameters:
default: false
description: Remove package if the service is being disabled during upgrade
type: boolean
MonitoringSubscriptionCinderScheduler:
default: 'overcloud-cinder-scheduler'
type: string
resources:
ContainersCommon:
type: ./containers-common.yaml
type: ../../docker/services/containers-common.yaml
MySQLClient:
type: ../../puppet/services/database/mysql-client.yaml
CinderBase:
type: ../../puppet/services/cinder-scheduler.yaml
type: ./cinder-base.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
@ -68,8 +71,12 @@ outputs:
role_data:
description: Role data for the Cinder Scheduler role.
value:
service_name: {get_attr: [CinderBase, role_data, service_name]}
config_settings: {get_attr: [CinderBase, role_data, config_settings]}
service_name: cinder_scheduler
monitoring_subscription: {get_param: MonitoringSubscriptionCinderScheduler}
config_settings:
map_merge:
- get_attr: [CinderBase, role_data, config_settings]
- cinder::scheduler::scheduler_driver: cinder.scheduler.filter_scheduler.FilterScheduler
service_config_settings:
map_merge:
- get_attr: [CinderBase, role_data, service_config_settings]
@ -85,6 +92,7 @@ outputs:
step_config:
list_join:
- "\n"
- - "include ::tripleo::profile::base::cinder::scheduler"
- - {get_attr: [CinderBase, role_data, step_config]}
- {get_attr: [MySQLClient, role_data, step_config]}
config_image: {get_param: DockerCinderConfigImage}

233
puppet/services/cinder-volume.yaml → deployment/cinder/cinder-volume-container-puppet.yaml

@ -1,9 +1,66 @@
heat_template_version: rocky
description: >
OpenStack Cinder Volume service configured with Puppet
OpenStack containerized Cinder Volume service
parameters:
DockerCinderVolumeImage:
description: image
type: string
DockerCinderConfigImage:
description: The container image to use for the cinder config_volume
type: string
DockerCinderVolumeUlimit:
default: ['nofile=131072']
description: ulimit for Cinder Volume Container
type: comma_delimited_list
CinderVolumeLoggingSource:
type: json
default:
tag: openstack.cinder.volume
path: /var/log/containers/cinder/cinder-volume.log
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
ServiceData:
default: {}
description: Dictionary packing service data
type: json
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
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
UpgradeRemoveUnusedPackages:
default: false
description: Remove package if the service is being disabled during upgrade
type: boolean
CephClientUserName:
default: openstack
type: string
CephClusterName:
type: string
default: ceph
description: The Ceph cluster name.
constraints:
- allowed_pattern: "[a-zA-Z0-9]+"
description: >
The Ceph cluster name must be at least 1 character and contain only
letters and numbers.
CinderEnableNfsBackend:
default: false
description: Whether to enable or not the NFS backend for Cinder
@ -92,65 +149,31 @@ parameters:
CephClusterFSID:
type: string
description: The Ceph cluster FSID. Must be a UUID.
CephClusterName:
type: string
default: ceph
description: The Ceph cluster name.
constraints:
- allowed_pattern: "[a-zA-Z0-9]+"
description: >
The Ceph cluster name must be at least 1 character and contain only
letters and numbers.
CephClientUserName:
default: openstack
type: string
ServiceData:
default: {}
description: Dictionary packing service data
type: json
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
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
MonitoringSubscriptionCinderVolume:
default: 'overcloud-cinder-volume'
type: string
CinderVolumeLoggingSource:
type: json
default:
tag: openstack.cinder.volume
path: /var/log/cinder/cinder-volume.log
resources:
ContainersCommon:
type: ../../docker/services/containers-common.yaml
MySQLClient:
type: ../../puppet/services/database/mysql-client.yaml
CinderBase:
type: ./cinder-base.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
CinderCommon:
type: ./cinder-common-container-puppet.yaml
outputs:
role_data:
description: Role data for the Cinder Volume role.
@ -160,6 +183,7 @@ outputs:
config_settings:
map_merge:
- get_attr: [CinderBase, role_data, config_settings]
- tripleo::profile::base::lvm::enable_udev: false
- tripleo::profile::base::cinder::volume::cinder_enable_iscsi_backend: {get_param: CinderEnableIscsiBackend}
tripleo::profile::base::cinder::volume::cinder_enable_nfs_backend: {get_param: CinderEnableNfsBackend}
tripleo::profile::base::cinder::volume::cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
@ -211,11 +235,114 @@ outputs:
- {}
- tripleo::profile::base::cinder::volume::rbd::backend_availability_zone: {get_param: CinderRbdAvailabilityZone}
service_config_settings:
fluentd:
tripleo_fluentd_groups_cinder_volume:
- cinder
tripleo_fluentd_sources_cinder_volume:
- {get_param: CinderVolumeLoggingSource}
step_config: |
include ::tripleo::profile::base::cinder::volume
upgrade_tasks: []
map_merge:
- get_attr: [CinderBase, role_data, service_config_settings]
- fluentd:
tripleo_fluentd_groups_cinder_volume:
- cinder
tripleo_fluentd_sources_cinder_volume:
- {get_param: CinderVolumeLoggingSource}
# BEGIN DOCKER SETTINGS
puppet_config:
config_volume: cinder
puppet_tags: cinder_config,file,concat,file_line
step_config:
list_join:
- "\n"
- - "include ::tripleo::profile::base::lvm"
- "include ::tripleo::profile::base::cinder::volume"
- get_attr: [MySQLClient, role_data, step_config]
config_image: {get_param: DockerCinderConfigImage}
kolla_config:
/var/lib/kolla/config_files/cinder_volume.json:
command: /usr/bin/cinder-volume --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf
config_files:
- source: "/var/lib/kolla/config_files/src/*"
dest: "/"
merge: true
preserve_properties: true
- source: "/var/lib/kolla/config_files/src-ceph/"
dest: "/etc/ceph/"
merge: true
preserve_properties: true
- source: "/var/lib/kolla/config_files/src-iscsid/*"
dest: "/etc/iscsi/"
merge: true
preserve_properties: true
permissions:
- path: /var/log/cinder
owner: cinder:cinder
recurse: true
- path:
str_replace:
template: /etc/ceph/CLUSTER.client.USER.keyring
params:
CLUSTER: {get_param: CephClusterName}
USER: {get_param: CephClientUserName}
owner: cinder:cinder
perm: '0600'
docker_config:
step_3:
cinder_volume_init_logs:
start_order: 0
image: &cinder_volume_image {get_param: DockerCinderVolumeImage}
privileged: false
user: root
volumes:
- /var/log/containers/cinder:/var/log/cinder:z
command: ['/bin/bash', '-c', 'chown -R cinder:cinder /var/log/cinder']
step_4:
cinder_volume:
image: *cinder_volume_image
ulimit: {get_param: DockerCinderVolumeUlimit}
ipc: host
net: host
privileged: true
restart: always
healthcheck:
test:
list_join:
- ' '
- - '/openstack/healthcheck'
- yaql:
expression: str($.data.port)
data:
port: {get_attr: [CinderBase, role_data, config_settings, 'cinder::rabbit_port']}
volumes: {get_attr: [CinderCommon, cinder_volume_volumes]}
environment: {get_attr: [CinderCommon, cinder_volume_environment]}
host_prep_tasks: {get_attr: [CinderCommon, cinder_volume_host_prep_tasks]}
upgrade_tasks:
- when: step|int == 3
block:
- name: Set fact for removal of openstack-cinder package
set_fact:
remove_cinder_package: {get_param: UpgradeRemoveUnusedPackages}
- name: Remove openstack-cinder package if operator requests it
package: name=openstack-cinder state=removed
ignore_errors: True
when: remove_cinder_package|bool
post_upgrade_tasks:
- when: step|int == 1
import_role:
name: tripleo-docker-rm
vars:
containers_to_rm:
- cinder_volume
fast_forward_upgrade_tasks:
- when:
- step|int == 0
- release == 'ocata'
block:
- name: Check if cinder_volume is deployed
command: systemctl is-enabled --quiet openstack-cinder-volume
ignore_errors: True
register: cinder_volume_enabled_result
- name: Set fact cinder_volume_enabled
set_fact:
cinder_volume_enabled: "{{ cinder_volume_enabled_result.rc == 0 }}"
- name: Stop openstack-cinder-volume
service: name=openstack-cinder-volume state=stopped enabled=no
when:
- step|int == 1
- release == 'ocata'
- cinder_volume_enabled|bool

25
docker/services/pacemaker/cinder-volume.yaml → deployment/cinder/cinder-volume-pacemaker-puppet.yaml

@ -69,13 +69,13 @@ conditions:
resources:
ContainersCommon:
type: ../containers-common.yaml
type: ../../docker/services/containers-common.yaml
MySQLClient:
type: ../../../puppet/services/database/mysql-client.yaml
type: ../../puppet/services/database/mysql-client.yaml
CinderBase:
type: ../../../puppet/services/cinder-volume.yaml
type: ./cinder-volume-container-puppet.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
@ -85,13 +85,14 @@ resources:
RoleParameters: {get_param: RoleParameters}
CinderCommon:
type: ../cinder-common.yaml
type: ./cinder-common-container-puppet.yaml
outputs:
role_data:
description: Role data for the Cinder Volume role.
value:
service_name: {get_attr: [CinderBase, role_data, service_name]}
service_name: cinder_volume
monitoring_subscription: {get_attr: [CinderBase, role_data, monitoring_subscription]}
config_settings:
map_merge:
- get_attr: [CinderBase, role_data, config_settings]
@ -125,7 +126,7 @@ outputs:
list_join:
- "\n"
- - "include ::tripleo::profile::base::lvm"
- get_attr: [CinderBase, role_data, step_config]
- - "include ::tripleo::profile::pacemaker::cinder::volume"
- get_attr: [MySQLClient, role_data, step_config]
config_image: {get_param: DockerCinderConfigImage}
kolla_config:
@ -293,6 +294,12 @@ outputs:
- name: set is_cinder_volume_bootstrap_node fact
tags: common
set_fact: is_cinder_volume_bootstrap_node={{cinder_volume_short_bootstrap_node_name|lower == ansible_hostname|lower}}
- name: Stop cinder_volume service (pacemaker)
when: step|int == 1
pacemaker_resource:
resource: openstack-cinder-volume
state: disable
wait_for_resource: true
- name: Cinder-Volume baremetal to container upgrade tasks
when:
- step|int == 1
@ -356,6 +363,12 @@ outputs:
- step|int == 3
- cinder_volume_containerized|bool
block: *cinder_volume_fetch_retag_container_tasks
post_upgrade_tasks:
- name: Start cinder_volume service (pacemaker)
when: step|int == 1
pacemaker_resource:
resource: openstack-cinder-volume
state: enable
fast_forward_upgrade_tasks:
- when:
- step|int == 0

213
docker/services/cinder-volume.yaml

@ -1,213 +0,0 @@
heat_template_version: rocky
description: >
OpenStack containerized Cinder Volume service
parameters:
DockerCinderVolumeImage:
description: image
type: string
DockerCinderConfigImage:
description: The container image to use for the cinder config_volume
type: string
DockerCinderVolumeUlimit:
default: ['nofile=131072']
description: ulimit for Cinder Volume Container
type: comma_delimited_list
CinderVolumeLoggingSource:
type: json
default:
tag: openstack.cinder.volume
path: /var/log/containers/cinder/cinder-volume.log
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
ServiceData:
default: {}
description: Dictionary packing service data
type: json
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
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
UpgradeRemoveUnusedPackages:
default: false
description: Remove package if the service is being disabled during upgrade
type: boolean
CephClientUserName:
default: openstack
type: string
CephClusterName:
type: string
default: ceph
description: The Ceph cluster name.
constraints:
- allowed_pattern: "[a-zA-Z0-9]+"
description: >
The Ceph cluster name must be at least 1 character and contain only
letters and numbers.
resources:
ContainersCommon:
type: ./containers-common.yaml
MySQLClient:
type: ../../puppet/services/database/mysql-client.yaml
CinderBase:
type: ../../puppet/services/cinder-volume.yaml
properties:
EndpointMap: {get_param: EndpointMap}
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
CinderCommon:
type: ./cinder-common.yaml
outputs:
role_data:
description: Role data for the Cinder Volume role.
value:
service_name: {get_attr: [CinderBase, role_data, service_name]}
config_settings:
map_merge:
- get_attr: [CinderBase, role_data, config_settings]
- tripleo::profile::base::lvm::enable_udev: false
service_config_settings:
map_merge:
- get_attr: [CinderBase, role_data, service_config_settings]
- fluentd:
tripleo_fluentd_groups_cinder_volume:
- cinder
tripleo_fluentd_sources_cinder_volume:
- {get_param: CinderVolumeLoggingSource}
# BEGIN DOCKER SETTINGS
puppet_config:
config_volume: cinder
puppet_tags: cinder_config,file,concat,file_line
step_config:
list_join:
- "\n"
- - "include ::tripleo::profile::base::lvm"
- get_attr: [CinderBase, role_data, step_config]
- get_attr: [MySQLClient, role_data, step_config]
config_image: {get_param: DockerCinderConfigImage}
kolla_config:
/var/lib/kolla/config_files/cinder_volume.json:
command: /usr/bin/cinder-volume --config-file /usr/share/cinder/cinder-dist.conf --config-file /etc/cinder/cinder.conf
config_files:
- source: "/var/lib/kolla/config_files/src/*"
dest: "/"
merge: true
preserve_properties: true
- source: "/var/lib/kolla/config_files/src-ceph/"
dest: "/etc/ceph/"
merge: true
preserve_properties: true
- source: "/var/lib/kolla/config_files/src-iscsid/*"
dest: "/etc/iscsi/"
merge: true
preserve_properties: true
permissions:
- path: /var/log/cinder
owner: cinder:cinder
recurse: true
- path:
str_replace:
template: /etc/ceph/CLUSTER.client.USER.keyring
params:
CLUSTER: {get_param: CephClusterName}
USER: {get_param: CephClientUserName}
owner: cinder:cinder
perm: '0600'
docker_config:
step_3:
cinder_volume_init_logs:
start_order: 0
image: &cinder_volume_image {get_param: DockerCinderVolumeImage}
privileged: false
user: root
volumes:
- /var/log/containers/cinder:/var/log/cinder:z
command: ['/bin/bash', '-c', 'chown -R cinder:cinder /var/log/cinder']
step_4:
cinder_volume:
image: *cinder_volume_image
ulimit: {get_param: DockerCinderVolumeUlimit}
ipc: host
net: host
privileged: true
restart: always
healthcheck:
test:
list_join:
- ' '
- - '/openstack/healthcheck'
- yaql:
expression: str($.data.port)
data:
port: {get_attr: [CinderBase, role_data, config_settings, 'cinder::rabbit_port']}
volumes: {get_attr: [CinderCommon, cinder_volume_volumes]}
environment: {get_attr: [CinderCommon, cinder_volume_environment]}
host_prep_tasks:
list_concat:
- {get_attr: [CinderCommon, cinder_volume_host_prep_tasks]}
- - name: enable virt_sandbox_use_netlink for healthcheck
seboolean:
name: virt_sandbox_use_netlink
persistent: yes
state: yes
upgrade_tasks:
- when: step|int == 3
block:
- name: Set fact for removal of openstack-cinder package
set_fact:
remove_cinder_package: {get_param: UpgradeRemoveUnusedPackages}
- name: Remove openstack-cinder package if operator requests it
package: name=openstack-cinder state=removed
ignore_errors: True
when: remove_cinder_package|bool
post_upgrade_tasks:
- when: step|int == 1
import_role:
name: tripleo-docker-rm
vars:
containers_to_rm:
- cinder_volume
fast_forward_upgrade_tasks:
- when:
- step|int == 0
- release == 'ocata'
block:
- name: Check if cinder_volume is deployed
command: systemctl is-enabled --quiet openstack-cinder-volume
ignore_errors: True
register: cinder_volume_enabled_result
- name: Set fact cinder_volume_enabled
set_fact:
cinder_volume_enabled: "{{ cinder_volume_enabled_result.rc == 0 }}"
- name: Stop openstack-cinder-volume
service: name=openstack-cinder-volume state=stopped enabled=no
when:
- step|int == 1
- release == 'ocata'
- cinder_volume_enabled|bool

8
environments/baremetal-services.yaml

@ -6,13 +6,13 @@ resource_registry:
OS::TripleO::Services::AodhEvaluator: ../deployment/aodh/aodh-evaluator-container-puppet.yaml
OS::TripleO::Services::AodhNotifier: ../deployment/aodh/aodh-notifier-container-puppet.yaml
OS::TripleO::Services::AodhListener: ../deployment/aodh/aodh-listener-container-puppet.yaml
OS::TripleO::Services::BlockStorageCinderVolume: ../puppet/services/cinder-volume.yaml
OS::TripleO::Services::BlockStorageCinderVolume: ../deployment/cinder/cinder-volume-container-puppet.yaml
OS::TripleO::Services::CeilometerAgentCentral: ../puppet/services/ceilometer-agent-central.yaml
OS::TripleO::Services::CeilometerAgentIpmi: ../puppet/services/ceilometer-agent-ipmi.yaml
OS::TripleO::Services::CeilometerAgentNotification: ../puppet/services/ceilometer-agent-notification.yaml
OS::TripleO::Services::CinderApi: ../puppet/services/cinder-api.yaml
OS::TripleO::Services::CinderScheduler: ../puppet/services/cinder-scheduler.yaml
OS::TripleO::Services::CinderVolume: ../puppet/services/cinder-volume.yaml
OS::TripleO::Services::CinderApi: ../deployment/cinder/cinder-api-container-puppet.yaml
OS::TripleO::Services::CinderScheduler: ../deployment/cinder/cinder-scheduler-container-puppet.yaml
OS::TripleO::Services::CinderVolume: ../deployment/cinder/cinder-volume-container-puppet.yaml
OS::TripleO::Services::ComputeCeilometerAgent: ../puppet/services/ceilometer-agent-compute.yaml
OS::TripleO::Services::ComputeNeutronOvsAgent: ../puppet/services/neutron-ovs-agent.yaml
OS::TripleO::Services::ContainersLogrotateCrond: OS::Heat::None

4
environments/cinder-backup.yaml

@ -1,4 +1,4 @@
resource_registry:
OS::TripleO::Services::CinderBackup: ../docker/services/pacemaker/cinder-backup.yaml
OS::TripleO::Services::CinderBackup: ../deployment/cinder/cinder-backup-pacemaker-puppet.yaml
# For non-pcmk managed implementation
# OS::TripleO::Services::CinderBackup: ../docker/services/cinder-backup.yaml
# OS::TripleO::Services::CinderBackup: ../deployment/cinder/cinder-backup-container-puppet.yaml

2
environments/cinder-dellemc-unity-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# Cinder Dell EMC Unity backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendDellEMCUnity: ../puppet/services/cinder-backend-dellemc-unity.yaml
OS::TripleO::Services::CinderBackendDellEMCUnity: ../deployment/cinder/cinder-backend-dellemc-unity-puppet.yaml
parameter_defaults:
CinderEnableDellEMCUnityBackend: true

2
environments/cinder-dellemc-vmax-iscsi-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# Cinder Dell EMC VMAX backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI: ../puppet/services/cinder-backend-dellemc-vmax-iscsi.yaml
OS::TripleO::Services::CinderBackendDellEMCVMAXISCSI: ../deployment/cinder/cinder-backend-dellemc-vmax-iscsi-puppet.yaml
parameter_defaults:
CinderEnableDellEMCVMAXISCSIBackend: true

2
environments/cinder-dellemc-vnx-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# Cinder Dell EMC VNX backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendDellEMCVNX: ../puppet/services/cinder-backend-dellemc-vnx.yaml
OS::TripleO::Services::CinderBackendDellEMCVNX: ../deployment/cinder/cinder-backend-dellemc-vnx-puppet.yaml
parameter_defaults:
CinderEnableDellEMCVNXBackend: true

2
environments/cinder-dellemc-xtremio-iscsi-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# Cinder Dell EMC XTREMIOIscsi backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendDellEMCXTREMIOIscsi: ../puppet/services/cinder-backend-dellemc-xtremio-iscsi.yaml
OS::TripleO::Services::CinderBackendDellEMCXTREMIOIscsi: ../deployment/cinder/cinder-backend-dellemc-xtremio-iscsi-puppet.yaml
parameter_defaults:
CinderEnableDellEMCXTREMIOIscsiBackend: true

2
environments/cinder-dellps-config.yaml

@ -15,7 +15,7 @@
# A Heat environment file which can be used to enable a
# a Cinder Dell EMC PS Series backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendDellPs: ../puppet/services/cinder-backend-dellps.yaml
OS::TripleO::Services::CinderBackendDellPs: ../deployment/cinder/cinder-backend-dellps-puppet.yaml
parameter_defaults:
CinderEnableDellPsBackend: true

2
environments/cinder-dellsc-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# Cinder Dell EMC Storage Center ISCSI backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendDellSc: ../puppet/services/cinder-backend-dellsc.yaml
OS::TripleO::Services::CinderBackendDellSc: ../deployment/cinder/cinder-backend-dellsc-puppet.yaml
parameter_defaults:
CinderEnableDellScBackend: true

2
environments/cinder-hpelefthand-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# a Cinder HPELeftHandISCSI backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderHPELeftHandISCSI: ../puppet/services/cinder-hpelefthand-iscsi.yaml
OS::TripleO::Services::CinderHPELeftHandISCSI: ../deployment/cinder/cinder-hpelefthand-iscsi-puppet.yaml
parameter_defaults:
CinderHPELeftHandISCSIApiUrl: ''

2
environments/cinder-netapp-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# a Cinder NetApp backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendNetApp: ../puppet/services/cinder-backend-netapp.yaml
OS::TripleO::Services::CinderBackendNetApp: ../deployment/cinder/cinder-backend-netapp-puppet.yaml
parameter_defaults:
CinderEnableNetappBackend: true

2
environments/cinder-nvmeof-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# Cinder NVMeOF backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendNVMeOF: ../puppet/services/cinder-backend-nvmeof.yaml
OS::TripleO::Services::CinderBackendNVMeOF: ../deployment/cinder/cinder-backend-nvmeof-puppet.yaml
parameter_defaults:
CinderNVMeOFBackendName: 'tripleo_nvmeof'

2
environments/cinder-pure-config.yaml

@ -1,7 +1,7 @@
# A Heat environment file which can be used to enable a
# Cinder Pure Storage FlashArray iSCSI backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendPure: ../puppet/services/cinder-backend-pure.yaml
OS::TripleO::Services::CinderBackendPure: ../deployment/cinder/cinder-backend-pure-puppet.yaml
parameter_defaults:
CinderEnablePureBackend: true

2
environments/cinder-scaleio-config.yaml

@ -15,7 +15,7 @@
# A Heat environment file which can be used to enable a
# a Cinder Dell EMC ScaleIO backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendScaleIO: ../puppet/services/cinder-backend-scaleio.yaml
OS::TripleO::Services::CinderBackendScaleIO: ../deployment/cinder/cinder-backend-scaleio-puppet.yaml
parameter_defaults:
CinderEnableScaleIOBackend: true

2
environments/docker-ha.yaml

@ -14,7 +14,7 @@ resource_registry:
OS::TripleO::Services::Keepalived: OS::Heat::None
# HA Containers managed by pacemaker
OS::TripleO::Services::CinderVolume: ../docker/services/pacemaker/cinder-volume.yaml
OS::TripleO::Services::CinderVolume: ../deployment/cinder/cinder-volume-pacemaker-puppet.yaml
OS::TripleO::Services::Clustercheck: ../docker/services/pacemaker/clustercheck.yaml
OS::TripleO::Services::HAproxy: ../docker/services/pacemaker/haproxy.yaml
OS::TripleO::Services::MySQL: ../docker/services/pacemaker/database/mysql.yaml

2
environments/nonha-arch.yaml

@ -1,7 +1,7 @@
# An environment which creates an Overcloud without the use of pacemaker
# (i.e. only with keepalived and systemd for all resources)
resource_registry:
OS::TripleO::Services::CinderVolume: ../docker/services/cinder-volume.yaml
OS::TripleO::Services::CinderVolume: ../deployment/cinder/cinder-volume-container-puppet.yaml
OS::TripleO::Services::RabbitMQ: ../docker/services/rabbitmq.yaml
OS::TripleO::Services::HAproxy: ../docker/services/haproxy.yaml
OS::TripleO::Services::Redis: ../docker/services/database/redis.yaml

4
environments/services-baremetal/cinder-backup.yaml

@ -1,4 +1,4 @@
resource_registry:
OS::TripleO::Services::CinderBackup: ../../puppet/services/pacemaker/cinder-backup.yaml
OS::TripleO::Services::CinderBackup: ../../deployment/cinder/cinder-backup-pacemaker-puppet.yaml
# For non-pcmk managed implementation
# OS::TripleO::Services::CinderBackup: ../../puppet/services/cinder-backup.yaml
# OS::TripleO::Services::CinderBackup: ../../deployment/cinder/cinder-backup-container-puppet.yaml

6
environments/services-baremetal/undercloud-cinder.yaml

@ -1,4 +1,4 @@
resource_registry:
OS::TripleO::Services::UndercloudCinderApi: ../../puppet/services/cinder-api.yaml
OS::TripleO::Services::UndercloudCinderScheduler: ../../puppet/services/cinder-scheduler.yaml
OS::TripleO::Services::UndercloudCinderVolume: ../../puppet/services/cinder-volume.yaml
OS::TripleO::Services::UndercloudCinderApi: ../../deployment/cinder/cinder-api-container-puppet.yaml
OS::TripleO::Services::UndercloudCinderScheduler: ../../deployment/cinder/cinder-scheduler-container-puppet.yaml
OS::TripleO::Services::UndercloudCinderVolume: ../../deployment/cinder/cinder-volume-container-puppet.yaml

4
environments/services/cinder-backup.yaml

@ -1,4 +1,4 @@
resource_registry:
OS::TripleO::Services::CinderBackup: ../../docker/services/pacemaker/cinder-backup.yaml
OS::TripleO::Services::CinderBackup: ../../deployment/cinder/cinder-backup-pacemaker-puppet.yaml
# For non-pcmk managed implementation
# OS::TripleO::Services::CinderBackup: ../../docker/services/cinder-backup.yaml
# OS::TripleO::Services::CinderBackup: ../../deployment/cinder/cinder-backup-container-puppet.yaml

6
environments/services/undercloud-cinder.yaml

@ -1,6 +1,6 @@
# DEPRECATED. This file will be removed in the Stein release as it is no longer
# needed
resource_registry:
OS::TripleO::Services::CinderApi: ../../docker/services/cinder-api.yaml
OS::TripleO::Services::CinderScheduler: ../../docker/services/cinder-scheduler.yaml
OS::TripleO::Services::CinderVolume: ../../docker/services/cinder-volume.yaml
OS::TripleO::Services::CinderApi: ../../deployment/cinder/cinder-api-container-puppet.yaml
OS::TripleO::Services::CinderScheduler: ../../deployment/cinder/cinder-scheduler-container-puppet.yaml
OS::TripleO::Services::CinderVolume: ../../deployment/cinder/cinder-volume-container-puppet.yaml

2
environments/storage/cinder-netapp-config.yaml

@ -128,4 +128,4 @@ parameter_defaults:
# End static parameters
# *********************
resource_registry:
OS::TripleO::Services::CinderBackendNetApp: ../puppet/services/cinder-backend-netapp.yaml
OS::TripleO::Services::CinderBackendNetApp: ../deployment/cinder/cinder-backend-netapp-puppet.yaml

2
environments/veritas-hyperscale/cinder-veritas-hyperscale-config.yaml

@ -15,4 +15,4 @@
# A Heat environment file which can be used to enable a
# a Veritas HyperScale backend, configured via puppet
resource_registry:
OS::TripleO::Services::CinderBackendVRTSHyperScale: ../../puppet/services/cinder-backend-veritas-hyperscale.yaml
OS::TripleO::Services::CinderBackendVRTSHyperScale: ../../deployment/cinder/cinder-backend-veritas-hyperscale-puppet.yaml

8
overcloud-resource-registry-puppet.j2.yaml

@ -115,11 +115,11 @@ resource_registry:
OS::TripleO::Services::CephClient: OS::Heat::None
OS::TripleO::Services::CephNfs: OS::Heat::None
OS::TripleO::Services::CephExternal: OS::Heat::None
OS::TripleO::Services::CinderApi: docker/services/cinder-api.yaml
OS::TripleO::Services::CinderApi: deployment/cinder/cinder-api-container-puppet.yaml
OS::TripleO::Services::CinderBackup: OS::Heat::None
OS::TripleO::Services::CinderScheduler: docker/services/cinder-scheduler.yaml
OS::TripleO::Services::CinderVolume: docker/services/cinder-volume.yaml
OS::TripleO::Services::BlockStorageCinderVolume: docker/services/cinder-volume.yaml
OS::TripleO::Services::CinderScheduler: deployment/cinder/cinder-scheduler-container-puppet.yaml
OS::TripleO::Services::CinderVolume: deployment/cinder/cinder-volume-container-puppet.yaml
OS::TripleO::Services::BlockStorageCinderVolume: deployment/cinder/cinder-volume-container-puppet.yaml
OS::TripleO::Services::Congress: OS::Heat::None
OS::TripleO::Services::Keystone: deployment/keystone/keystone-container-puppet.yaml
OS::TripleO::Services::GlanceApi: deployment/glance/glance-api-container-puppet.yaml

197
puppet/services/cinder-api.yaml

@ -1,197 +0,0 @@
heat_template_version: rocky
description: >
OpenStack Cinder API service configured with Puppet
parameters:
CinderDefaultVolumeType:
default: tripleo
description: The name of Cinder's default volume type.
type: string
CinderEnableDBPurge:
default: true
description: |
Whether to create cron job for purging soft deleted rows in Cinder database.
type: boolean
CinderPassword:
description: The password for the cinder service account, used by cinder-api.
type: string
hidden: true
ServiceData:
default: {}
description: Dictionary packing service data
type: json
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
DefaultPasswords:
default: {}
type: json
RoleName:
default: ''
description: Role name on which the service is applied
type: string
RoleParameters:
default: {}
description: Parameters specific to the role
type: json
EndpointMap:
default: {}
description: Mapping of service endpoint -> protocol. Typically set
via parameter_defaults in the resource registry.
type: json
KeystoneRegion:
type: string
default: 'regionOne'
description: Keystone region for endpoint
MonitoringSubscriptionCinderApi:
default: 'overcloud-cinder-api'
type: string
CinderApiLoggingSource:
type: json
default:
tag: openstack.cinder.api
path: /var/log/cinder/cinder-api.log
CinderWorkers:
type: string
description: Set the number of workers for cinder::wsgi::apache
default: '%{::os_workers}'
EnableInternalTLS:
type: boolean
default: false
CinderApiPolicies:
description: |
A hash of policies to configure for Cinder API.
e.g. { cinder-context_is_admin: { key: context_is_admin, value: 'role:admin' } }
default: {}
type: json
NotificationDriver:
type: string
default: 'messagingv2'
description: Driver or drivers to handle sending notifications.
conditions:
cinder_workers_zero: {equals : [{get_param: CinderWorkers}, 0]}
resources:
ApacheServiceBase:
type: ./apache.yaml
properties:
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
EnableInternalTLS: {get_param: EnableInternalTLS}
CinderBase:
type: ./cinder-base.yaml
properties:
ServiceData: {get_param: ServiceData}
ServiceNetMap: {get_param: ServiceNetMap}
DefaultPasswords: {get_param: DefaultPasswords}
EndpointMap: {get_param: EndpointMap}
RoleName: {get_param: RoleName}
RoleParameters: {get_param: RoleParameters}
outputs:
role_data:
description: Role data for the Cinder API role.
value:
service_name: cinder_api
monitoring_subscription: {get_param: MonitoringSubscriptionCinderApi}
config_settings:
map_merge:
- get_attr: [CinderBase, role_data, config_settings]
- get_attr: [ApacheServiceBase, role_data, config_settings]
- cinder::keystone::authtoken::www_authenticate_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
cinder::keystone::authtoken::auth_uri: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
cinder::keystone::authtoken::auth_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
cinder::keystone::authtoken::password: {get_param: CinderPassword}
cinder::keystone::authtoken::project_name: 'service'
cinder::keystone::authtoken::user_domain_name: 'Default'
cinder::keystone::authtoken::project_domain_name: 'Default'
cinder::policy::policies: {get_param: CinderApiPolicies}
cinder::ceilometer::notification_driver: {get_param: NotificationDriver}
cinder::api::default_volume_type: {get_param: CinderDefaultVolumeType}
cinder::api::enable_proxy_headers_parsing: true
cinder::api::nova_catalog_info: 'compute:nova:internalURL'
# TODO(emilien) move it to puppet-cinder
cinder::config:
DEFAULT/swift_catalog_info:
value: 'object-store:swift:internalURL'
tripleo::profile::base::cinder::cinder_enable_db_purge: {get_param: CinderEnableDBPurge}
tripleo::cinder_api::firewall_rules:
'119 cinder':
dport:
- 8776
- 13776
cinder::api::bind_host:
str_replace:
template:
"%{hiera('fqdn_$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, CinderApiNetwork]}
cinder::wsgi::apache::ssl: {get_param: EnableInternalTLS}
cinder::api::service_name: 'httpd'
# NOTE: bind IP is found in hiera 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
cinder::wsgi::apache::bind_host:
str_replace:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, CinderApiNetwork]}
-
cinder::wsgi::apache::servername:
str_replace:
template:
"%{hiera('fqdn_$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, CinderApiNetwork]}
-
if:
- cinder_workers_zero
- {}
- cinder::wsgi::apache::workers: {get_param: CinderWorkers}
step_config: |
include ::tripleo::profile::base::cinder::api
service_config_settings:
fluentd:
tripleo_fluentd_groups_cinder_api:
- cinder
tripleo_fluentd_sources_cinder_api:
- {get_param: CinderApiLoggingSource}
keystone:
cinder::keystone::auth::tenant: 'service'
cinder::keystone::auth::public_url: {get_param: [EndpointMap, CinderPublic, uri]}
cinder::keystone::auth::internal_url: {get_param: [EndpointMap, CinderInternal, uri]}
cinder::keystone::auth::admin_url: {get_param: [EndpointMap, CinderAdmin, uri]}
cinder::keystone::auth::public_url_v2: {get_param: [EndpointMap, CinderV2Public, uri]}
cinder::keystone::auth::internal_url_v2: {get_param: [EndpointMap, CinderV2Internal, uri]}
cinder::keystone::auth::admin_url_v2: {get_param: [EndpointMap, CinderV2Admin, uri]}