Browse Source

Deploy Ceph Luminous and add support for CephMgr service

The upgrade of Ceph to Luminous requires a new daemon, ceph-mgr, to be
deployed with every ceph-mon. This submission adds support for the
deployment of ceph-mgr via ceph-ansible.

Change-Id: I4226233d02b70980c6b53518ae2d511b653ce2de
Depends-On: I3645c6c3f68fcefc93fa8699796ba8892aa946c8
Implements: blueprint ceph-luminous
changes/40/511640/5
Giulio Fidente 5 years ago
parent
commit
3cea68f12c
  1. 4
      ci/environments/scenario001-multinode-containers.yaml
  2. 4
      ci/environments/scenario004-multinode-containers.yaml
  3. 1
      deployed-server/deployed-server-roles-data.yaml
  4. 7
      docker/services/ceph-ansible/ceph-base.yaml
  5. 66
      docker/services/ceph-ansible/ceph-mgr.yaml
  6. 1
      environments/ceph-ansible/ceph-ansible.yaml
  7. 1
      overcloud-resource-registry-puppet.j2.yaml
  8. 1
      roles/Controller.yaml
  9. 1
      roles/ControllerOpenstack.yaml
  10. 1
      roles_data.yaml

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

@ -1,6 +1,7 @@
resource_registry:
OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode.yaml
OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml
OS::TripleO::Services::CephMgr: ../../docker/services/ceph-ansible/ceph-mgr.yaml
OS::TripleO::Services::CephMon: ../../docker/services/ceph-ansible/ceph-mon.yaml
OS::TripleO::Services::CephOSD: ../../docker/services/ceph-ansible/ceph-osd.yaml
OS::TripleO::Services::CephClient: ../../docker/services/ceph-ansible/ceph-client.yaml
@ -79,6 +80,7 @@ parameter_defaults:
- OS::TripleO::Services::GnocchiMetricd
- OS::TripleO::Services::GnocchiStatsd
- OS::TripleO::Services::PankoApi
- OS::TripleO::Services::CephMgr
- OS::TripleO::Services::CephMon
- OS::TripleO::Services::CephOSD
- OS::TripleO::Services::CephClient
@ -103,6 +105,8 @@ parameter_defaults:
# This makes the job twice as fast
ceilometer::agent::polling::polling_interval: 15
Debug: true
#TODO(gfidente): remove when the new default is in tripleo-common
DockerCephDaemonImage: docker.io/ceph/daemon:tag-build-master-luminous-centos-7
CephAnsibleDisksConfig:
devices:
- /dev/loop3

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

@ -1,6 +1,7 @@
resource_registry:
OS::TripleO::Controller::Net::SoftwareConfig: ../common/net-config-multinode.yaml
OS::TripleO::Compute::Net::SoftwareConfig: ../common/net-config-multinode.yaml
OS::TripleO::Services::CephMgr: ../../docker/services/ceph-ansible/ceph-mgr.yaml
OS::TripleO::Services::CephMon: ../../docker/services/ceph-ansible/ceph-mon.yaml
OS::TripleO::Services::CephOSD: ../../docker/services/ceph-ansible/ceph-osd.yaml
OS::TripleO::Services::CephMds: ../../docker/services/ceph-ansible/ceph-mds.yaml
@ -39,6 +40,7 @@ resource_registry:
parameter_defaults:
ControllerServices:
- OS::TripleO::Services::CephMds
- OS::TripleO::Services::CephMgr
- OS::TripleO::Services::CephMon
- OS::TripleO::Services::CephOSD
- OS::TripleO::Services::CephRgw
@ -92,6 +94,8 @@ parameter_defaults:
nova::compute::libvirt::services::libvirt_virt_type: qemu
nova::compute::libvirt::libvirt_virt_type: qemu
Debug: true
#TODO(gfidente): remove when the new default is in tripleo-common
DockerCephDaemonImage: docker.io/ceph/daemon:tag-build-master-luminous-centos-7
CephAnsibleDisksConfig:
devices:
- /dev/loop3

1
deployed-server/deployed-server-roles-data.yaml

@ -46,6 +46,7 @@
- OS::TripleO::Services::CeilometerAgentNotification
- OS::TripleO::Services::CephExternal
- OS::TripleO::Services::CephMds
- OS::TripleO::Services::CephMgr
- OS::TripleO::Services::CephMon
- OS::TripleO::Services::CephRbdMirror
- OS::TripleO::Services::CephRgw

7
docker/services/ceph-ansible/ceph-base.yaml

@ -49,7 +49,7 @@ parameters:
CephAnsibleUpgradePlaybook:
type: string
description: Path to the ceph-ansible playbook to execute on upgrade
default: /usr/share/ceph-ansible/infrastructure-playbooks/switch-from-non-containerized-to-containerized-ceph-daemons.yml
default: /usr/share/ceph-ansible/infrastructure-playbooks/rolling_update.yml
CephAnsibleExtraConfig:
type: json
description: Extra vars for the ceph-ansible playbook
@ -205,7 +205,7 @@ outputs:
ireallymeanit: 'yes'
fsid: { get_param: CephClusterFSID }
docker: true
ceph_release: jewel
ceph_release: luminous
ceph_docker_registry: {get_attr: [DockerImageUrlParts, value, host]}
ceph_docker_image: {get_attr: [DockerImageUrlParts, value, image]}
ceph_docker_image_tag: {get_attr: [DockerImageUrlParts, value, image_tag]}
@ -242,6 +242,7 @@ outputs:
- - client
- {get_param: CephClientUserName}
key: {get_param: CephClientKey}
mgr_cap: "allow *"
mon_cap: "allow r"
osd_cap:
str_replace:
@ -264,6 +265,7 @@ outputs:
- - client
- {get_param: ManilaCephFSNativeCephFSAuthId}
key: {get_param: CephManilaClientKey}
mgr_cap: "allow *"
mon_cap: 'allow r, allow command \\\"auth del\\\", allow command \\\"auth caps\\\", allow command \\\"auth get\\\", allow command \\\"auth get-or-create\\\"'
mds_cap: "allow *"
osd_cap: "allow rw"
@ -274,6 +276,7 @@ outputs:
- - client
- {get_param: CephRgwClientName}
key: {get_param: CephRgwKey}
mgr_cap: "allow *"
mon_cap: "allow rw"
osd_cap: "allow rwx"
mode: "0644"

66
docker/services/ceph-ansible/ceph-mgr.yaml

@ -0,0 +1,66 @@
heat_template_version: pike
description: >
Ceph Manager 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
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 Manager service.
value:
service_name: ceph_mgr
upgrade_tasks: []
puppet_config:
config_image: ''
config_volume: ''
step_config: ''
docker_config: {}
workflow_tasks: {get_attr: [CephBase, role_data, workflow_tasks]}
config_settings:
map_merge:
- tripleo.ceph_mgr.firewall_rules:
'113 ceph_mgr':
dport:
- '6800-7300'
- ceph_mgr_ansible_vars:
map_merge:
- {get_attr: [CephBase, role_data, config_settings, ceph_common_ansible_vars]}
- {}

1
environments/ceph-ansible/ceph-ansible.yaml

@ -1,4 +1,5 @@
resource_registry:
OS::TripleO::Services::CephMgr: ../../docker/services/ceph-ansible/ceph-mgr.yaml
OS::TripleO::Services::CephMon: ../../docker/services/ceph-ansible/ceph-mon.yaml
OS::TripleO::Services::CephOSD: ../../docker/services/ceph-ansible/ceph-osd.yaml
OS::TripleO::Services::CephClient: ../../docker/services/ceph-ansible/ceph-client.yaml

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

@ -116,6 +116,7 @@ resource_registry:
OS::TripleO::Services::Apache: puppet/services/apache.yaml
OS::TripleO::Services::CACerts: puppet/services/ca-certs.yaml
OS::TripleO::Services::CephMds: OS::Heat::None
OS::TripleO::Services::CephMgr: OS::Heat::None
OS::TripleO::Services::CephMon: OS::Heat::None
OS::TripleO::Services::CephRbdMirror: OS::Heat::None
OS::TripleO::Services::CephRgw: OS::Heat::None

1
roles/Controller.yaml

@ -35,6 +35,7 @@
- OS::TripleO::Services::CeilometerAgentNotification
- OS::TripleO::Services::CephExternal
- OS::TripleO::Services::CephMds
- OS::TripleO::Services::CephMgr
- OS::TripleO::Services::CephMon
- OS::TripleO::Services::CephRbdMirror
- OS::TripleO::Services::CephRgw

1
roles/ControllerOpenstack.yaml

@ -29,6 +29,7 @@
- OS::TripleO::Services::CeilometerAgentNotification
- OS::TripleO::Services::CephExternal
- OS::TripleO::Services::CephMds
- OS::TripleO::Services::CephMgr
- OS::TripleO::Services::CephMon
- OS::TripleO::Services::CephRbdMirror
- OS::TripleO::Services::CephRgw

1
roles_data.yaml

@ -38,6 +38,7 @@
- OS::TripleO::Services::CeilometerAgentNotification
- OS::TripleO::Services::CephExternal
- OS::TripleO::Services::CephMds
- OS::TripleO::Services::CephMgr
- OS::TripleO::Services::CephMon
- OS::TripleO::Services::CephRbdMirror
- OS::TripleO::Services::CephRgw

Loading…
Cancel
Save