Merge "Remove support for puppet-ceph"

This commit is contained in:
Zuul 2018-05-21 21:45:17 +00:00 committed by Gerrit Code Review
commit 79c4074849
18 changed files with 9 additions and 1250 deletions

View File

@ -1,8 +0,0 @@
# ******************************************************************************
# DEPRECATED: Use ./ceph-ansible/ceph-rgw.yaml
# ******************************************************************************
resource_registry:
OS::TripleO::Services::CephRgw: ../docker/services/ceph-ansible/ceph-rgw.yaml
OS::TripleO::Services::SwiftProxy: OS::Heat::None
OS::TripleO::Services::SwiftStorage: OS::Heat::None
OS::TripleO::Services::SwiftRingBuilder: OS::Heat::None

View File

@ -1,24 +0,0 @@
# A Heat environment file which can be used to enable a Ceph
# storage cluster using the controller and ceph nodes.
# Rbd backends are enabled for Cinder, Glance, Gnocchi and Nova.
resource_registry:
OS::TripleO::Services::CephMon: ../puppet/services/ceph-mon.yaml
OS::TripleO::Services::CephOSD: ../puppet/services/ceph-osd.yaml
OS::TripleO::Services::CephClient: ../puppet/services/ceph-client.yaml
parameter_defaults:
#NOTE: These ID's and keys should be regenerated for
# a production deployment. What is here is suitable for
# developer and CI testing only.
CephClusterFSID: '4b5c8c0a-ff60-454b-a1b4-9747aa737d19'
CephMonKey: 'AQC+Ox1VmEr3BxAALZejqeHj50Nj6wJDvs96OQ=='
CephAdminKey: 'AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ=='
CephClientKey: 'AQC+vYNXgDAgAhAAc8UoYt+OTz5uhV7ItLdwUw=='
NovaEnableRbdBackend: true
CinderEnableRbdBackend: true
CinderBackupBackend: ceph
GlanceBackend: rbd
GnocchiBackend: rbd
CinderEnableIscsiBackend: false
CephPoolDefaultSize: 1

View File

@ -1,42 +0,0 @@
# ******************************************************************************
# DEPRECATED: Use tripleo-heat-templates/environments/storage/external-ceph.yaml
# instead.
# ******************************************************************************
# A Heat environment file which can be used to enable the
# use of an externally managed Ceph cluster.
resource_registry:
OS::TripleO::Services::CephExternal: ../puppet/services/ceph-external.yaml
OS::TripleO::Services::CephMon: OS::Heat::None
OS::TripleO::Services::CephClient: OS::Heat::None
OS::TripleO::Services::CephOSD: OS::Heat::None
parameter_defaults:
# NOTE: These example parameters are required when using CephExternal
#CephClusterFSID: '4b5c8c0a-ff60-454b-a1b4-9747aa737d19'
#CephClientKey: 'AQDLOh1VgEp6FRAAFzT7Zw+Y9V6JJExQAsRnRQ=='
#CephExternalMonHost: '172.16.1.7, 172.16.1.8'
# the following parameters enable Ceph backends for Cinder, Glance, Gnocchi and Nova
NovaEnableRbdBackend: true
CinderEnableRbdBackend: true
CinderBackupBackend: ceph
GlanceBackend: rbd
GnocchiBackend: rbd
# If the Ceph pools which host VMs, Volumes and Images do not match these
# names OR the client keyring to use is not named 'openstack', edit the
# following as needed.
NovaRbdPoolName: vms
CinderRbdPoolName: volumes
CinderBackupRbdPoolName: backups
GlanceRbdPoolName: images
GnocchiRbdPoolName: metrics
CephClientUserName: openstack
# finally we disable the Cinder LVM backend
CinderEnableIscsiBackend: false
# Uncomment if connecting to a pre-Jewel or RHCS1.3 Ceph Cluster
# RbdDefaultFeatures: 1
# Backward compatibility setting, will be removed in the future
CephAdminKey: ''

View File

@ -1,16 +0,0 @@
# ****************************************************************************
# DEPRECATED: Use tripleo-heat-templates/environments/storage/enable-ceph.yaml
# instead.
# ****************************************************************************
resource_registry:
OS::TripleO::Services::CephMon: ../puppet/services/ceph-mon.yaml
OS::TripleO::Services::CephOSD: ../puppet/services/ceph-osd.yaml
OS::TripleO::Services::CephClient: ../puppet/services/ceph-client.yaml
parameter_defaults:
CinderEnableIscsiBackend: false
CinderEnableRbdBackend: true
CinderBackupBackend: ceph
NovaEnableRbdBackend: true
GlanceBackend: rbd
GnocchiBackend: rbd

View File

@ -1,5 +0,0 @@
# ******************************************************************************
# DEPRECATED: Use ../ceph-ansible/ceph-mds.yaml
# ******************************************************************************
resource_registry:
OS::TripleO::Services::CephMds: ../../docker/services/ceph-ansible/ceph-mds.yaml

View File

@ -1,5 +0,0 @@
# ******************************************************************************
# DEPRECATED: Use ../ceph-ansible/ceph-rbdmirror.yaml
# ******************************************************************************
resource_registry:
OS::TripleO::Services::CephRbdMirror: ../../docker/services/ceph-ansible/ceph-rbdmirror.yaml

View File

@ -1,39 +0,0 @@
# *******************************************************************
# This file was created automatically by the sample environment
# generator. Developers should use `tox -e genconfig` to update it.
# Users are recommended to make changes to a copy of the file instead
# of the original, if any customizations are needed.
# *******************************************************************
# title: Enable Ceph Storage Backend
# description: |
# Include this environment to enable Ceph as the backend for
# Cinder, Nova, Gnocchi, and Glance.
parameter_defaults:
# The short name of the Cinder Backup backend to use.
# Type: string
CinderBackupBackend: rbd
# Whether to enable or not the Iscsi backend for Cinder
# Type: boolean
CinderEnableIscsiBackend: False
# Whether to enable or not the Rbd backend for Cinder
# Type: boolean
CinderEnableRbdBackend: True
# The short name of the Glance backend to use. Should be one of swift, rbd, cinder, or file
# Type: string
GlanceBackend: rbd
# The short name of the Gnocchi backend to use. Should be one of swift, rbd, file or s3.
# Type: string
GnocchiBackend: rbd
# Whether to enable or not the Rbd backend for Nova
# Type: boolean
NovaEnableRbdBackend: True
resource_registry:
OS::TripleO::Services::CephClient: ../../puppet/services/ceph-client.yaml
OS::TripleO::Services::CephMon: ../../puppet/services/ceph-mon.yaml
OS::TripleO::Services::CephOSD: ../../puppet/services/ceph-osd.yaml

View File

@ -1,78 +0,0 @@
# *******************************************************************
# This file was created automatically by the sample environment
# generator. Developers should use `tox -e genconfig` to update it.
# Users are recommended to make changes to a copy of the file instead
# of the original, if any customizations are needed.
# *******************************************************************
# title: Deploy Using an External Ceph Cluster
# description: |
# A Heat environment file which can be used to enable the
# use of an externally managed Ceph cluster.
parameter_defaults:
# The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
# Type: string
CephAdminKey: ''
# The Ceph client key. Can be created with ceph-authtool --gen-print-key.
# Mandatory. This parameter must be set by the user.
# Type: string
CephClientKey: <None>
#
# Type: string
CephClientUserName: openstack
# The Ceph cluster FSID. Must be a UUID.
# Mandatory. This parameter must be set by the user.
# Type: string
CephClusterFSID: <None>
# List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
# Type: string
CephExternalMonHost: ''
# Whether to enable or not the Iscsi backend for Cinder
# Type: boolean
CinderEnableIscsiBackend: False
# Whether to enable or not the Rbd backend for Cinder
# Type: boolean
CinderEnableRbdBackend: True
#
# Type: string
CinderRbdPoolName: volumes
# The short name of the Glance backend to use. Should be one of swift, rbd, cinder, or file
# Type: string
GlanceBackend: rbd
#
# Type: string
GlanceRbdPoolName: images
# The short name of the Gnocchi backend to use. Should be one of swift, rbd, file or s3.
# Type: string
GnocchiBackend: rbd
#
# Type: string
GnocchiRbdPoolName: metrics
# Whether to enable or not the Rbd backend for Nova
# Type: boolean
NovaEnableRbdBackend: True
#
# Type: string
NovaRbdPoolName: vms
# The default features enabled when creating a block device image. Only applies to format 2 images. Set to '1' for Jewel clients using older Ceph servers.
# Type: string
RbdDefaultFeatures: ''
resource_registry:
OS::TripleO::Services::CephClient: OS::Heat::None
OS::TripleO::Services::CephExternal: ../../puppet/services/ceph-external.yaml
OS::TripleO::Services::CephMon: OS::Heat::None
OS::TripleO::Services::CephOSD: OS::Heat::None

View File

@ -1,181 +0,0 @@
heat_template_version: rocky
description: >
Ceph base service. Shared by all Ceph services.
parameters:
# NOTE(gfidente): needs a default to cope with external Ceph deployments were we don't pass (and need) an Admin key
CephAdminKey:
default: ''
description: The Ceph admin client key. Can be created with ceph-authtool --gen-print-key.
type: string
hidden: true
CephClientKey:
description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
type: string
hidden: true
CephClientUserName:
default: openstack
type: string
CephClusterFSID:
type: string
description: The Ceph cluster FSID. Must be a UUID.
CinderRbdPoolName:
default: volumes
type: string
CinderRbdExtraPools:
default: []
description: >
List of extra Ceph pools for use with RBD backends for Cinder. An
extra Cinder RBD backend driver is created for each pool in the
list. This is in addition to the standard RBD backend driver
associated with the CinderRbdPoolName.
type: comma_delimited_list
CinderBackupRbdPoolName:
default: backups
type: string
GlanceRbdPoolName:
default: images
type: string
GnocchiRbdPoolName:
default: metrics
type: string
NovaRbdPoolName:
default: vms
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
ManilaCephFSNativeCephFSAuthId:
type: string
default: 'manila'
CephManilaClientKey:
default: ''
description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
type: string
hidden: true
# DEPRECATED options for compatibility with overcloud.yaml
# This should be removed and manipulation of the ControllerServices list
# used instead, but we need client support for that first
ControllerEnableCephStorage:
default: false
description: Whether to deploy Ceph Storage (OSD) on the Controller
type: boolean
parameter_groups:
- label: deprecated
description: Do not use deprecated params, they will be removed.
parameters:
- ControllerEnableCephStorage
outputs:
role_data:
description: Role data for the Ceph base service.
value:
service_name: ceph_base
config_settings:
tripleo::profile::base::ceph::enable_ceph_storage: {get_param: ControllerEnableCephStorage}
ceph::profile::params::osds: {/srv/data: {}}
ceph::profile::params::manage_repo: false
ceph::profile::params::authentication_type: cephx
ceph::profile::params::fsid: {get_param: CephClusterFSID}
# FIXME(gfidente): we should not have to list the packages explicitly in the templates,
# but this has to stay until https://bugs.launchpad.net/puppet-ceph/+bug/1629933 is fixed
ceph::params::packages:
- ceph-base
- ceph-mon
# 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
ceph::profile::params::cluster_network:
str_replace:
template: "%{hiera('$NETWORK_subnet')}"
params:
NETWORK: {get_param: [ServiceNetMap, CephClusterNetwork]}
ceph::profile::params::public_network:
str_replace:
template: "%{hiera('$NETWORK_subnet')}"
params:
NETWORK: {get_param: [ServiceNetMap, CephMonNetwork]}
ceph::profile::params::public_addr:
str_replace:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, CephMonNetwork]}
ceph::profile::params::client_keys:
map_replace:
- client.admin:
secret: {get_param: CephAdminKey}
mode: '0600'
cap_mon: 'allow *'
cap_osd: 'allow *'
cap_mds: 'allow *'
client.bootstrap-osd:
secret: {get_param: CephAdminKey}
keyring_path: '/var/lib/ceph/bootstrap-osd/ceph.keyring'
cap_mon: 'allow profile bootstrap-osd'
CEPH_CLIENT_KEY:
secret: {get_param: CephClientKey}
mode: '0640'
user: 'ceph'
group: 'ceph'
cap_mon: 'allow r'
cap_osd:
str_replace:
template: 'allow class-read object_prefix rbd_children, allow rwx pool=CEPH_CLIENT_POOLS'
params:
CEPH_CLIENT_POOLS:
list_join:
- ', allow rwx pool='
- - {get_param: CinderRbdPoolName}
- {get_param: CinderBackupRbdPoolName}
- {get_param: NovaRbdPoolName}
- {get_param: GlanceRbdPoolName}
- {get_param: GnocchiRbdPoolName}
# CinderRbdExtraPools is a list (do not indent further)
- {get_param: CinderRbdExtraPools}
MANILA_CLIENT_KEY:
mode: '0640'
user: 'ceph'
group: 'ceph'
secret: {get_param: CephManilaClientKey}
cap_mon: 'allow r, allow command \"auth del\", allow command \"auth caps\", allow command \"auth get\", allow command \"auth get-or-create\"'
cap_mds: 'allow *'
cap_osd: 'allow rw'
- keys:
CEPH_CLIENT_KEY:
list_join: ['.', ['client', {get_param: CephClientUserName}]]
MANILA_CLIENT_KEY:
list_join: ['.', ['client', {get_param: ManilaCephFSNativeCephFSAuthId}]]
service_config_settings:
ceph_osd:
ceph::params::packages:
- ceph-base
- ceph-mon
- ceph-osd

View File

@ -1,57 +0,0 @@
heat_template_version: rocky
description: >
Ceph Client service.
parameters:
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
MonitoringSubscriptionCephClient:
default: 'overcloud-ceph-client'
type: string
resources:
CephBase:
type: ./ceph-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 OSD service.
value:
service_name: ceph_client
monitoring_subscription: {get_param: MonitoringSubscriptionCephClient}
config_settings:
get_attr: [CephBase, role_data, config_settings]
step_config: |
include ::tripleo::profile::base::ceph::client

View File

@ -1,125 +0,0 @@
heat_template_version: rocky
description: >
Ceph External service.
parameters:
CephClientKey:
description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
type: string
hidden: true
CephClientUserName:
default: openstack
type: string
CephClusterFSID:
type: string
description: The Ceph cluster FSID. Must be a UUID.
CephExternalMonHost:
default: ''
type: string
description: List of externally managed Ceph Mon Host IPs. Only used for external Ceph deployments.
CinderRbdPoolName:
default: volumes
type: string
CinderBackupRbdPoolName:
default: backups
type: string
GlanceRbdPoolName:
default: images
type: string
GnocchiRbdPoolName:
default: metrics
type: string
NovaRbdPoolName:
default: vms
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
MonitoringSubscriptionCephExternal:
default: 'overcloud-ceph-external'
type: string
RbdDefaultFeatures:
default: ''
description: The default features enabled when creating a block device
image. Only applies to format 2 images. Set to '1' for Jewel
clients using older Ceph servers.
type: string
ManilaCephFSNativeCephFSAuthId:
type: string
default: 'manila'
CephManilaClientKey:
default: ''
description: The Ceph client key. Can be created with ceph-authtool --gen-print-key.
type: string
hidden: true
outputs:
role_data:
description: Role data for the Ceph External service.
value:
service_name: ceph_external
monitoring_subscription: {get_param: MonitoringSubscriptionCephExternal}
config_settings:
tripleo::profile::base::ceph::ceph_mon_host: {get_param: CephExternalMonHost}
ceph::profile::params::fsid: {get_param: CephClusterFSID}
ceph::profile::params::rbd_default_features: {get_param: RbdDefaultFeatures}
ceph::profile::params::client_keys:
map_replace:
- CEPH_CLIENT_KEY:
secret: {get_param: CephClientKey}
mode: '0644'
cap_mon: 'allow r'
cap_osd:
str_replace:
template: 'allow class-read object_prefix rbd_children, allow rwx pool=CINDER_POOL, allow rwx pool=CINDERBACKUP_POOL, allow rwx pool=NOVA_POOL, allow rwx pool=GLANCE_POOL, allow rwx pool=GNOCCHI_POOL'
params:
NOVA_POOL: {get_param: NovaRbdPoolName}
CINDER_POOL: {get_param: CinderRbdPoolName}
CINDERBACKUP_POOL: {get_param: CinderBackupRbdPoolName}
GLANCE_POOL: {get_param: GlanceRbdPoolName}
GNOCCHI_POOL: {get_param: GnocchiRbdPoolName}
MANILA_CLIENT_KEY:
mode: '0644'
secret: {get_param: CephManilaClientKey}
cap_mon: 'allow r, allow command \"auth del\", allow command \"auth caps\", allow command \"auth get\", allow command \"auth get-or-create\"'
cap_mds: 'allow *'
cap_osd: 'allow rw'
- keys:
CEPH_CLIENT_KEY:
list_join: ['.', ['client', {get_param: CephClientUserName}]]
MANILA_CLIENT_KEY:
list_join: ['.', ['client', {get_param: ManilaCephFSNativeCephFSAuthId}]]
ceph::profile::params::manage_repo: false
# FIXME(gfidente): we should not have to list the packages explicitly in
# the templates, but this should stay until the following is fixed:
# https://bugs.launchpad.net/puppet-ceph/+bug/1629933
ceph::params::packages:
- ceph-base
- ceph-mon
- ceph-osd
step_config: |
include ::tripleo::profile::base::ceph::client

View File

@ -1,76 +0,0 @@
heat_template_version: rocky
description: >
Ceph MDS service.
parameters:
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
CephMdsKey:
description: The cephx key for the MDS service. Can be created
with ceph-authtool --gen-print-key.
type: string
hidden: true
ManilaCephFSDataPoolName:
default: manila_data
type: string
ManilaCephFSMetadataPoolName:
default: manila_metadata
type: string
ManilaCephFSNativeShareBackendName:
default: cephfs
type: string
resources:
CephBase:
type: ./ceph-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 Ceph MDS service.
value:
service_name: ceph_mds
config_settings:
map_merge:
- get_attr: [CephBase, role_data, config_settings]
- ceph::profile::params::mds_key: {get_param: CephMdsKey}
tripleo.ceph_mds.firewall_rules:
'112 ceph_mds':
dport:
- '6800-7300'
ceph::profile::params::fs_data_pool: {get_param: ManilaCephFSDataPoolName}
ceph::profile::params::fs_metadata_pool: {get_param: ManilaCephFSMetadataPoolName}
ceph::profile::params::fs_name: {get_param: ManilaCephFSNativeShareBackendName}
step_config: |
include ::tripleo::profile::base::ceph::mds

View File

@ -1,187 +0,0 @@
heat_template_version: rocky
description: >
Ceph Monitor service.
parameters:
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
CephIPv6:
default: False
type: boolean
CephMonKey:
description: The Ceph monitors key. Can be created with ceph-authtool --gen-print-key.
type: string
hidden: true
CinderRbdPoolName:
default: volumes
type: string
CinderRbdExtraPools:
default: []
description: >
List of extra Ceph pools for use with RBD backends for Cinder. An
extra Cinder RBD backend driver is created for each pool in the
list. This is in addition to the standard RBD backend driver
associated with the CinderRbdPoolName.
type: comma_delimited_list
ManilaCephFSDataPoolName:
default: manila_data
type: string
ManilaCephFSMetadataPoolName:
default: manila_metadata
type: string
CinderBackupRbdPoolName:
default: backups
type: string
GlanceRbdPoolName:
default: images
type: string
GnocchiRbdPoolName:
default: metrics
type: string
NovaRbdPoolName:
default: vms
type: string
CephPools:
description: >
It can be used to override settings for one of the predefined pools, or to create
additional ones. Example:
{
"volumes": {
"size": 5,
"pg_num": 128,
"pgp_num": 128
}
}
default: {}
type: json
CephValidationRetries:
type: number
default: 40
description: Number of retry attempts for Ceph validation
CephValidationDelay:
type: number
default: 30
description: Interval (in seconds) in between validation checks
MonitoringSubscriptionCephMon:
default: 'overcloud-ceph-mon'
type: string
CephPoolDefaultSize:
description: default minimum replication for RBD copies
type: number
default: 3
resources:
CephBase:
type: ./ceph-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 Ceph Monitor service.
value:
service_name: ceph_mon
monitoring_subscription: {get_param: MonitoringSubscriptionCephMon}
config_settings:
map_merge:
- get_attr: [CephBase, role_data, config_settings]
- ceph::profile::params::ms_bind_ipv6: {get_param: CephIPv6}
ceph::profile::params::mon_key: {get_param: CephMonKey}
ceph::profile::params::osd_pool_default_pg_num: 128
ceph::profile::params::osd_pool_default_pgp_num: 128
ceph::profile::params::osd_pool_default_size: {get_param: CephPoolDefaultSize}
# repeat returns items in a list, so we need to map_merge twice
tripleo::profile::base::ceph::mon::ceph_pools:
map_merge:
- map_merge:
repeat:
for_each:
<%pool%>:
list_concat:
- - {get_param: CinderRbdPoolName}
- {get_param: ManilaCephFSDataPoolName}
- {get_param: ManilaCephFSMetadataPoolName}
- {get_param: CinderBackupRbdPoolName}
- {get_param: NovaRbdPoolName}
- {get_param: GlanceRbdPoolName}
- {get_param: GnocchiRbdPoolName}
# CinderRbdExtraPools is a list (do not indent further)
- {get_param: CinderRbdExtraPools}
template:
<%pool%>:
pg_num: "%{hiera('ceph::profile::params::osd_pool_default_pg_num')}"
pgp_num: "%{hiera('ceph::profile::params::osd_pool_default_pgp_num')}"
size: "%{hiera('ceph::profile::params::osd_pool_default_size')}"
- {get_param: CephPools}
tripleo.ceph_mon.firewall_rules:
'110 ceph_mon':
dport:
- 6789
service_config_settings:
get_attr: [CephBase, role_data, service_config_settings]
step_config: |
include ::tripleo::profile::base::ceph::mon
upgrade_batch_tasks:
# NOTE: upgrade_batch_tasks are deprecated in Queens.
# Note we perform these tasks in list order, but they are all step0 so
# we can perform a rolling upgrade of all mon nodes in step0, then a
# rolling upgrade of all osd nodes in step1
- when: step|int == 0
block:
- name: Check status
tags: validation
shell: ceph health | egrep -sq "HEALTH_OK|HEALTH_WARN"
- name: Stop CephMon
service:
name: ceph-mon@{{ ansible_hostname }}
state: stopped
- name: Update Ceph packages
yum:
name: ceph-mon
state: latest
- name: Start CephMon
service:
name: ceph-mon@{{ ansible_hostname }}
state: started
# ceph-ansible
# https://github.com/ceph/ceph-ansible/blob/master/infrastructure-playbooks/rolling_update.yml#L149-L157
- name: Wait for the monitor to join the quorum...
tags: ceph_quorum_validation
shell: |
ceph -s | grep monmap | sed 's/.*quorum//' | egrep -sq {{ ansible_hostname }}
register: ceph_quorum_nodecheck
until: ceph_quorum_nodecheck.rc == 0
retries: {get_param: CephValidationRetries}
delay: {get_param: CephValidationDelay}
- name: ceph osd crush tunables default
shell: ceph osd crush tunables default

View File

@ -1,135 +0,0 @@
heat_template_version: rocky
description: >
Ceph OSD service.
parameters:
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
MonitoringSubscriptionCephOsd:
default: 'overcloud-ceph-osd'
type: string
CephValidationRetries:
type: number
default: 40
description: Number of retry attempts for Ceph validation
CephValidationDelay:
type: number
default: 30
description: Interval (in seconds) in between validation checks
IgnoreCephUpgradeWarnings:
type: boolean
default: false
description: If enabled, Ceph upgrade will be forced even though cluster or PGs status is not clean
parameter_groups:
- label: deprecated
description: Do not use deprecated params, they will be removed.
parameters:
- IgnoreCephUpgradeWarnings
resources:
CephBase:
type: ./ceph-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 OSD service.
value:
service_name: ceph_osd
monitoring_subscription: {get_param: MonitoringSubscriptionCephOsd}
config_settings:
map_merge:
- get_attr: [CephBase, role_data, config_settings]
- tripleo.ceph_osd.firewall_rules:
'111 ceph_osd':
dport:
- '6800-7300'
step_config: |
include ::tripleo::profile::base::ceph::osd
upgrade_batch_tasks:
# NOTE: upgrade_batch_tasks are deprecated in Queens.
- when: step|int == 1
block:
- name: Check status
tags: validation
shell: ceph health | grep -qv HEALTH_ERR
- name: Get OSD IDs
shell: ls /var/lib/ceph/osd | awk 'BEGIN { FS = "-" } ; { print $2 }'
register: osd_ids
# "so that mirrors aren't rebalanced as if the OSD died" - gfidente / leseb
- name: ceph osd set noout
command: ceph osd set noout
- name: ceph osd set norebalance
command: ceph osd set norebalance
- name: ceph osd set nodeep-scrub
command: ceph osd set nodeep-scrub
- name: ceph osd set noscrub
command: ceph osd set noscrub
- name: Stop CephOSD
service:
name: ceph-osd@{{ item }}
state: stopped
with_items: "{{osd_ids.stdout.strip().split()}}"
- name: Update Ceph packages
yum:
name: ceph-osd
state: latest
- name: Start CephOSD
service:
name: ceph-osd@{{ item }}
state: started
with_items: "{{osd_ids.stdout.strip().split()}}"
# with awk we are meant to check if $2 and $4 are *the same* but it returns 1 when
# they are, so the check is inverted to produce an useful exit code
- name: Wait for clean pgs...
tags: ceph_pgs_clean_validation
vars:
ignore_warnings: {get_param: IgnoreCephUpgradeWarnings}
shell: |
ceph pg stat | awk '{exit($2!=$4)}' && ceph health | egrep -sq "HEALTH_OK|HEALTH_WARN"
register: ceph_pgs_healthcheck
until: ceph_pgs_healthcheck.rc == 0
retries: {get_param: CephValidationRetries}
delay: {get_param: CephValidationDelay}
when:
- not ignore_warnings
- name: ceph osd unset noout
command: ceph osd unset noout
- name: ceph osd unset norebalance
command: ceph osd unset norebalance
- name: ceph osd unset nodeep-scrub
command: ceph osd unset nodeep-scrub
- name: ceph osd unset noscrub
command: ceph osd unset noscrub

View File

@ -1,122 +0,0 @@
heat_template_version: rocky
description: >
Ceph RadosGW service.
parameters:
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
AdminToken:
description: The keystone auth secret and db password.
type: string
hidden: true
CephRgwKey:
description: The cephx key for the radosgw client. Can be created
with ceph-authtool --gen-print-key.
type: string
hidden: true
SwiftPassword:
description: The password for the swift service account
type: string
hidden: true
KeystoneRegion:
type: string
default: 'regionOne'
description: Keystone region for endpoint
resources:
CephBase:
type: ./ceph-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 Ceph RadosGW service.
value:
service_name: ceph_rgw
config_settings:
map_merge:
- get_attr: [CephBase, role_data, config_settings]
- tripleo::profile::base::ceph::rgw::rgw_key: {get_param: CephRgwKey}
tripleo::profile::base::ceph::rgw::keystone_admin_token: {get_param: AdminToken}
tripleo::profile::base::ceph::rgw::keystone_url: {get_param: [EndpointMap, KeystoneInternal, uri_no_suffix]}
tripleo::profile::base::ceph::rgw::civetweb_bind_ip:
str_replace:
template:
"%{hiera('$NETWORK')}"
params:
$NETWORK: {get_param: [ServiceNetMap, CephRgwNetwork]}
tripleo::profile::base::ceph::rgw::civetweb_bind_port: {get_param: [EndpointMap, CephRgwInternal, port]}
tripleo::profile::base::ceph::rgw::rgw_keystone_version: v3
ceph::profile::params::rgw_keystone_admin_domain: default
ceph::profile::params::rgw_keystone_admin_project: service
ceph::profile::params::rgw_keystone_admin_user: swift
ceph::profile::params::rgw_keystone_admin_password: {get_param: SwiftPassword}
tripleo.ceph_rgw.firewall_rules:
'122 ceph rgw':
dport: {get_param: [EndpointMap, CephRgwInternal, port]}
step_config: |
include ::tripleo::profile::base::ceph::rgw
service_config_settings:
keystone:
ceph::rgw::keystone::auth::public_url: {get_param: [EndpointMap, CephRgwPublic, uri]}
ceph::rgw::keystone::auth::internal_url: {get_param: [EndpointMap, CephRgwInternal, uri]}
ceph::rgw::keystone::auth::admin_url: {get_param: [EndpointMap, CephRgwAdmin, uri]}
ceph::rgw::keystone::auth::region: {get_param: KeystoneRegion}
ceph::rgw::keystone::auth::roles: [ 'admin', 'Member' ]
ceph::rgw::keystone::auth::tenant: service
ceph::rgw::keystone::auth::user: swift
ceph::rgw::keystone::auth::password: {get_param: SwiftPassword}
upgrade_tasks:
- name: Gather RGW instance ID
tags: common
shell: hiera -c /etc/puppet/hiera.yaml ceph::profile::params::rgw_name radosgw.gateway
register: rgw_id
- name: Check if ceph_rgw is deployed
command: systemctl is-enabled ceph-radosgw@{{rgw_id.stdout}}
tags: common
ignore_errors: True
register: ceph_rgw_enabled
- name: Check status
shell: /usr/bin/systemctl show ceph-radosgw@{{rgw_id.stdout}} --property ActiveState | grep '\bactive\b'
when:
- step|int == 0
- ceph_rgw_enabled.rc == 0
tags: validation
- name: Stop RGW instance
when:
- step|int == 1
- ceph_rgw_enabled.rc == 0
service:
name: ceph-radosgw@{{rgw_id.stdout}}
state: stopped

View File

@ -1,62 +0,0 @@
heat_template_version: rocky
description: >
Ceph RBD mirror service.
parameters:
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
CephClientUserName:
default: openstack
type: string
resources:
CephBase:
type: ../ceph-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 Ceph RBD mirrror service.
value:
service_name: ceph_rbdmirror
config_settings:
map_merge:
- get_attr: [CephBase, role_data, config_settings]
- tripleo::profile::pacemaker::ceph::rbdmirror::client_name: {get_param: CephClientUserName}
tripleo.ceph_rbdmirror.firewall_rules:
'113 ceph_rbdmirror':
dport:
- '6800-7300'
step_config: |
include ::tripleo::profile::pacemaker::ceph::rbdmirror

View File

@ -0,0 +1,9 @@
---
deprecations:
- |
Deployment of a managed Ceph cluster using puppet-ceph
is not supported from the Pike release. From the Queens
release it is not supported to use puppet-ceph when
configuring OpenStack with an external Ceph cluster.
In Rocky any support file necessary for the deployment
with puppet-ceph is removed completely.

View File

@ -1,38 +1,4 @@
environments:
-
name: storage/enable-ceph
title: Enable Ceph Storage Backend
files:
puppet/services/cinder-volume.yaml:
parameters:
- CinderEnableIscsiBackend
- CinderEnableRbdBackend
puppet/services/cinder-backup.yaml:
parameters:
- CinderBackupBackend
puppet/services/nova-compute.yaml:
parameters:
- NovaEnableRbdBackend
puppet/services/glance-api.yaml:
parameters:
- GlanceBackend
puppet/services/gnocchi-api.yaml:
parameters:
- GnocchiBackend
sample_values:
CinderEnableIscsiBackend: False
CinderEnableRbdBackend: True
CinderBackupBackend: rbd
NovaEnableRbdBackend: True
GlanceBackend: rbd
GnocchiBackend: rbd
resource_registry:
OS::TripleO::Services::CephMon: ../../puppet/services/ceph-mon.yaml
OS::TripleO::Services::CephOSD: ../../puppet/services/ceph-osd.yaml
OS::TripleO::Services::CephClient: ../../puppet/services/ceph-client.yaml
description: |
Include this environment to enable Ceph as the backend for
Cinder, Nova, Gnocchi, and Glance.
-
name: storage/cinder-nfs
title: Enable Cinder NFS Backend
@ -87,60 +53,6 @@ environments:
description: |
Configure and include this environment to enable the use of an NFS
share as the backend for Nova.
-
name: storage/external-ceph
title: Deploy Using an External Ceph Cluster
files:
puppet/services/nova-compute.yaml:
parameters:
- NovaRbdPoolName
- NovaEnableRbdBackend
- CephClientUserName
puppet/services/cinder-volume.yaml:
parameters:
- CinderRbdPoolName
- CinderEnableIscsiBackend
- CinderEnableRbdBackend
puppet/services/glance-api.yaml:
parameters:
- GlanceRbdPoolName
- GlanceBackend
puppet/services/gnocchi-api.yaml:
parameters:
- GnocchiBackend
puppet/services/gnocchi-base.yaml:
parameters:
- GnocchiRbdPoolName
puppet/services/ceph-external.yaml:
parameters:
- CephClusterFSID
- CephClientKey
- CephExternalMonHost
- RbdDefaultFeatures
puppet/services/ceph-base.yaml:
parameters:
- CephAdminKey
sample_values:
CinderEnableIscsiBackend: False
CinderEnableRbdBackend: True
NovaEnableRbdBackend: True
GlanceBackend: rbd
GnocchiBackend: rbd
NovaRbdPoolName: vms
CinderRbdPoolName: volumes
GlanceRbdPoolName: images
GnocchiRbdPoolName: metrics
CephClientUserName: openstack
CephAdminKey: ''
description: |
A Heat environment file which can be used to enable the
use of an externally managed Ceph cluster.
resource_registry:
OS::TripleO::Services::CephExternal: ../../puppet/services/ceph-external.yaml
OS::TripleO::Services::CephMon: OS::Heat::None
OS::TripleO::Services::CephClient: OS::Heat::None
OS::TripleO::Services::CephOSD: OS::Heat::None
-
name: storage/cinder-netapp-config
title: Enable the Cinder NetApp Backend
description: |