tripleo-heat-templates/deployment/ceph-ansible/ceph-osd.yaml
Lukas Bezdicka d224d4150a
[FFWD Ceph] Fix ceph post_upgrade_tasks for osd options
Add missing post_upgrade_tasks shared from the ceph-base.
Move post_upgrade_tasks that set noout options of ceph to only
the ceph osd service as they are targeted for this service.
Move the set nooout options out of system_upgrade tags so they
run only after full upgrade run with deployment so the podman
is already present on the nodes.

Resolves: rhbz#1870617

Change-Id: I738d5c8cdd57b02589c147f5891cf8cb0e395d3a
(cherry picked from commit a9be4c6a38)
2020-08-24 09:53:39 +02:00

160 lines
5.1 KiB
YAML

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
CephAnsibleDisksConfig:
type: json
description: Disks config settings for ceph-ansible
default:
devices:
- /dev/vdb
osd_scenario: lvm
osd_objectstore: bluestore
CephEnableDashboard:
type: boolean
default: false
description: Parameter used to trigger the dashboard deployment.
conditions:
dashboard_enabled: {equals: [{get_param: CephEnableDashboard}, true]}
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}
CephOsdAnsibleVars:
type: OS::Heat::Value
properties:
type: json
value:
vars: {get_param: CephAnsibleDisksConfig}
outputs:
role_data:
description: Role data for the Ceph OSD service.
value:
service_name: ceph_osd
upgrade_tasks:
list_concat:
- {get_attr: [CephBase, role_data, upgrade_tasks]}
- - name: Check legacy Ceph hieradata
tags: validation
when: step|int == 0
shell: test "nil" == "$(hiera -c /etc/puppet/hiera.yaml ceph::profile::params::osds)"
- block:
- name: Check for docker cli
stat:
path: "/var/run/docker.sock"
register: check_docker_cli
check_mode: false
- name: Set noout flag
shell: "{{ container_client }} exec -u root ceph-mon-${HOSTNAME} ceph osd set {{ item }}"
become: true
with_items:
- noout
- norecover
- nobackfill
- norebalance
- nodeep-scrub
vars:
container_client: |-
{% set container_client = 'podman' %}
{% if check_docker_cli.stat.exists|bool %}
{% set container_client = 'docker' %}
{% endif %}
{{ container_client }}
delegate_to: "{{ ceph_mon_short_bootstrap_node_name }}"
tags:
- never
- system_upgrade
- system_upgrade_prepare
when:
- step|int == 1
- upgrade_leapp_enabled
post_upgrade_tasks:
list_concat:
- {get_attr: [CephBase, role_data, post_upgrade_tasks]}
- - name: Unset noout flag
shell: "{{ container_cli }} exec -u root ceph-mon-${HOSTNAME} ceph osd unset {{ item }}"
with_items:
- noout
- norecover
- nobackfill
- norebalance
- nodeep-scrub
when: step|int == 2
become: true
delegate_to: "{{ ceph_mon_short_bootstrap_node_name }}"
puppet_config:
config_image: ''
config_volume: ''
step_config: ''
docker_config: {}
external_deploy_tasks:
list_concat:
- {get_attr: [CephBase, role_data, external_deploy_tasks]}
- - name: ceph_osd_external_deploy_init
when: step|int == 1
tags:
- ceph
- ceph_fstobs
- ceph_systemd
block:
- name: set ceph-ansible group vars osds
set_fact:
ceph_ansible_group_vars_osds: {get_attr: [CephOsdAnsibleVars, value, vars]}
- name: generate ceph-ansible group vars osds
copy:
dest: "{{playbook_dir}}/ceph-ansible/group_vars/osds.yml"
content: "{{ceph_ansible_group_vars_osds|to_nice_yaml}}"
external_update_tasks: {get_attr: [CephBase, role_data, external_update_tasks]}
external_upgrade_tasks: {get_attr: [CephBase, role_data, external_upgrade_tasks]}
config_settings:
map_merge:
- tripleo::ceph_osd::firewall_rules:
'111 ceph_osd':
dport:
list_concat:
- - '6800-7300'
- if:
- dashboard_enabled
- - '9100'
- []
- {}