aboutsummaryrefslogtreecommitdiffstats
path: root/puppet/services/cinder-volume.yaml
blob: fe95222bfadd49f19a52e1c2998a7972700a6eca (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
heat_template_version: pike

description: >
  OpenStack Cinder Volume service configured with Puppet

parameters:
  CinderEnableNfsBackend:
    default: false
    description: Whether to enable or not the NFS backend for Cinder
    type: boolean
  CinderEnableIscsiBackend:
    default: true
    description: Whether to enable or not the Iscsi backend for Cinder
    type: boolean
  CinderEnableRbdBackend:
    default: false
    description: Whether to enable or not the Rbd backend for Cinder
    type: boolean
  CinderISCSIHelper:
    default: lioadm
    description: The iSCSI helper to use with cinder.
    type: string
  CinderISCSIProtocol:
    default: iscsi
    description: Whether to use TCP ('iscsi') or iSER RDMA ('iser') for iSCSI
    type: string
  CinderLVMLoopDeviceSize:
    default: 10280
    description: The size of the loopback file used by the cinder LVM driver.
    type: number
  CinderNfsMountOptions:
    default: ''
    description: >
      Mount options for NFS mounts used by Cinder NFS backend. Effective
      when CinderEnableNfsBackend is true.
    type: string
  CinderNfsServers:
    default: ''
    description: >
      NFS servers used by Cinder NFS backend. Effective when
      CinderEnableNfsBackend is true.
    type: comma_delimited_list
  CinderRbdPoolName:
    default: volumes
    type: string
  CephClientUserName:
    default: openstack
    type: string
  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:

  CinderBase:
    type: ./cinder-base.yaml
    properties:
      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 Volume role.
    value:
      service_name: cinder_volume
      monitoring_subscription: {get_param: MonitoringSubscriptionCinderVolume}
      logging_source: {get_param: CinderVolumeLoggingSource}
      logging_groups:
        - cinder
      config_settings:
        map_merge:
          - get_attr: [CinderBase, role_data, config_settings]
          - 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}
            tripleo::profile::base::cinder::volume::nfs::cinder_nfs_mount_options: {get_param: CinderNfsMountOptions}
            tripleo::profile::base::cinder::volume::nfs::cinder_nfs_servers: {get_param: CinderNfsServers}
            tripleo::profile::base::cinder::volume::iscsi::cinder_lvm_loop_device_size: {get_param: CinderLVMLoopDeviceSize}
            tripleo::profile::base::cinder::volume::iscsi::cinder_iscsi_helper: {get_param: CinderISCSIHelper}
            tripleo::profile::base::cinder::volume::iscsi::cinder_iscsi_protocol: {get_param: CinderISCSIProtocol}
            tripleo::profile::base::cinder::volume::rbd::cinder_rbd_pool_name: {get_param: CinderRbdPoolName}
            tripleo::profile::base::cinder::volume::rbd::cinder_rbd_user_name: {get_param: CephClientUserName}
            tripleo.cinder_volume.firewall_rules:
              '120 iscsi initiator':
                dport: 3260
            # NOTE: bind IP is found in Heat 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
            tripleo::profile::base::cinder::volume::iscsi::cinder_iscsi_address: {get_param: [ServiceNetMap, CinderIscsiNetwork]}
      step_config: |
        include ::tripleo::profile::base::cinder::volume
      upgrade_tasks:
        - name: Check if cinder_volume is deployed
          command: systemctl is-enabled openstack-cinder-volume
          tags: common
          ignore_errors: True
          register: cinder_volume_enabled
        - name: "PreUpgrade step0,validation: Check service openstack-cinder-volume is running"
          shell: /usr/bin/systemctl show 'openstack-cinder-volume' --property ActiveState | grep '\bactive\b'
          when: cinder_volume_enabled.rc == 0
          tags: step0,validation
        - name: Stop cinder_volume service
          tags: step1
          when: cinder_volume_enabled.rc == 0
          service: name=openstack-cinder-volume state=stopped