aboutsummaryrefslogtreecommitdiffstats
path: root/docker/services/pacemaker/cinder-volume.yaml
blob: a4f6951765da78642b052ad9e8cf7cee9fc240c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
<
heat_template_version: pike

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
  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
: true description: Whether to enable or not the Iscsi backend for Cinder type: boolean CinderLVMLoopDeviceSize: default: 10280 description: The size of the loopback file used by the cinder LVM driver. type: number resources: 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} 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::pacemaker::cinder::volume_bundle::cinder_volume_docker_image: &cinder_volume_image_pcmklatest list_join: - ':' - - yaql: data: {get_param: DockerCinderVolumeImage} expression: $.data.rightSplit(separator => ":", maxSplits => 1)[0] - 'pcmklatest' cinder::volume::manage_service: false cinder::volume::enabled: false cinder::host: hostgroup step_config: "" service_config_settings: {get_attr: [CinderBase, role_data, service_config_settings]} # BEGIN DOCKER SETTINGS puppet_config: config_volume: cinder puppet_tags: cinder_config,file,concat,file_line step_config: list_join: - "\n" - - {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 permissions: - path: /var/log/cinder owner: cinder:cinder recurse: true docker_config: step_1: cinder_volume_image_tag: start_order: 1 detach: false net: host user: root command: - '/bin/bash' - '-c' - str_replace: template: "/usr/bin/docker tag 'CINDERVOLUME_IMAGE' 'CINDERVOLUME_IMAGE_PCMKLATEST'" params: CINDERVOLUME_IMAGE: {get_param: DockerCinderVolumeImage} CINDERVOLUME_IMAGE_PCMKLATEST: *cinder_volume_image_pcmklatest image: {get_param: DockerCinderVolumeImage} volumes: - /etc/hosts:/etc/hosts:ro - /etc/localtime:/etc/localtime:ro - /dev/shm:/dev/shm:rw - /etc/sysconfig/docker:/etc/sysconfig/docker:ro - /usr/bin:/usr/bin:ro - /var/run/docker.sock:/var/run/docker.sock:rw step_3: cinder_volume_init_logs: start_order: 0 image: {get_param: DockerCinderVolumeImage} privileged: false user: root volumes: - /var/log/containers/cinder:/var/log/cinder command: ['/bin/bash', '-c', 'chown -R cinder:cinder /var/log/cinder'] step_5: cinder_volume_init_bundle: start_order: 0 detach: false net: host user: root command: - '/bin/bash' - '-c' - str_replace: template: list_join: - '; ' - - "cp -a /tmp/puppet-etc/* /etc/puppet; echo '{\"step\": 5}' > /etc/puppet/hieradata/docker.json" - "FACTER_uuid=docker puppet apply --tags file_line,concat,augeas,TAGS --debug -v -e 'CONFIG'" params: TAGS: 'pacemaker::resource::bundle,pacemaker::property,pacemaker::constraint::location' CONFIG: 'include ::tripleo::profile::base::pacemaker;include ::tripleo::profile::pacemaker::cinder::volume_bundle' image: {get_param: DockerCinderVolumeImage} volumes: - /etc/hosts:/etc/hosts:ro - /etc/localtime:/etc/localtime:ro - /etc/puppet:/tmp/puppet-etc:ro - /usr/share/openstack-puppet/modules:/usr/share/openstack-puppet/modules:ro - /etc/corosync/corosync.conf:/etc/corosync/corosync.conf:ro - /dev/shm:/dev/shm:rw host_prep_tasks: - name: create persistent directories file: path: "{{ item }}" state: directory with_items: - /var/log/containers/cinder - /var/lib/cinder #FIXME: all of this should be conditional on the CinderEnableIscsiBackend value being set to true - name: cinder create LVM volume group dd command: list_join: - '' - - 'dd if=/dev/zero of=/var/lib/cinder/cinder-volumes bs=1 count=0 seek=' - str_replace: template: VALUE params: VALUE: {get_param: CinderLVMLoopDeviceSize} - 'M' args: creates: /var/lib/cinder/cinder-volumes - name: cinder create LVM volume group shell: | if ! losetup /dev/loop2; then losetup /dev/loop2 /var/lib/cinder/cinder-volumes fi if ! pvdisplay | grep cinder-volumes; then pvcreate /dev/loop2 fi if ! vgdisplay | grep cinder-volumes; then vgcreate cinder-volumes /dev/loop2 fi args: executable: /bin/bash creates: /dev/loop2 upgrade_tasks: - name: get bootstrap nodeid tags: common command: hiera -c /etc/puppet/hiera.yaml bootstrap_nodeid register: bootstrap_node - name: set is_bootstrap_node fact tags: common set_fact: is_bootstrap_node={{bootstrap_node.stdout|lower == ansible_hostname|lower}} - name: Disable the openstack-cinder-volume cluster resource tags: step2 pacemaker_resource: resource: openstack-cinder-volume state: disable wait_for_resource: true when: is_bootstrap_node - name: Delete the stopped openstack-cinder-volume cluster resource. tags: step2 pacemaker_resource: resource: openstack-cinder-volume state: delete wait_for_resource: true when: is_bootstrap_node - name: Disable cinder_volume service from boot tags: step2 service: name=openstack-cinder-volume enabled=no