Chapter 2. Creating the environment file

The environment file that you create to configure custom back ends contains the settings for each back end that you want to define. It also contains other settings that are relevant to the deployment of a custom back end. For more information about environment files, see Environment Files in the Advanced Overcloud Customization guide.

The following sample environment file defines two NetApp back ends, netapp1 and netapp2:

/home/stack/templates/custom-env.yaml

parameter_defaults: # 1
  CinderEnableIscsiBackend: false
  CinderEnableRbdBackend: false
  CinderEnableNfsBackend: false
  NovaEnableRbdBackend: false
  GlanceBackend: file # 2
  ControllerExtraConfig: # 3
    cinder::config::cinder_config:
        netapp1/volume_driver: # 4
            value: cinder.volume.drivers.netapp.common.NetAppDriver
        netapp1/netapp_storage_family:
            value: ontap_7mode
        netapp1/netapp_storage_protocol:
            value: iscsi
        netapp1/netapp_server_hostname:
            value: 10.35.64.11
        netapp1/netapp_server_port:
            value: 80
        netapp1/netapp_login:
            value: root
        netapp1/netapp_password:
            value: p@$$w0rd
        netapp1/volume_backend_name:
            value: netapp1
        netapp2/volume_driver: # 5
            value: cinder.volume.drivers.netapp.common.NetAppDriver # 6
        netapp2/netapp_storage_family:
            value: ontap_7mode
        netapp2/netapp_storage_protocol:
            value: iscsi
        netapp2/netapp_server_hostname:
            value: 10.35.64.11
        netapp2/netapp_server_port:
            value: 80
        netapp2/netapp_login:
            value: root
        netapp2/netapp_password:
            value: p@$$w0rd
        netapp2/volume_backend_name:
            value: netapp2
    cinder_user_enabled_backends: ['netapp1','netapp2'] # 7

1
The following parameters are set to false, which disables other back end types:
  • CinderEnableIscsiBackend: other iSCSI back ends.
  • CinderEnableRbdBackend: Red Hat Ceph.
  • CinderEnableNfsBackend: NFS.
  • NovaEnableRbdBackend: ephemeral Red Hat Ceph storage.
2
The GlanceBackend parameter sets what the Image service uses to store images. The following values are supported:
  • file: store images on /var/lib/glance/images on each Controller node.
  • swift: use the Object Storage service for image storage.
  • cinder: use the Block Storage service for image storage.
3
ControllerExtraConfig defines custom settings that are applied to all Controller nodes. The cinder::config::cinder_config class means the settings must be applied to the Block Storage (cinder) service.
4
The netapp1/volume_driver and netapp2/volume_driver settings follow the section/setting syntax. With the Block Storage service, each back end is defined in its own section in /etc/cinder/cinder.conf. Each setting that uses the netapp1 prefix is defined in a new [netapp1] back end section.
5
netapp2 settings are defined in a separate [netapp2] section.
6
The value prefix configures the preceding setting.
7
The cinder_user_enabled_backends class sets and enables custom back ends. Use this class only for user-enabled back ends, specifically, those defined in the cinder::config::cinder_config class.

Do not use cinder_user_enabled_backends to list back ends that you can enable natively with director. These include Red Hat Ceph, NFS, and single back ends for supported NetApp or Dell appliances. For example, if you enable a Red Hat Ceph back end, do not list it in cinder_user_enabled_backends, enable it by setting CinderEnableRbdBackend to true.

Note

For more information about defining a Red Hat Ceph back end for OpenStack Block Storage, see the Deploying an Overcloud with Containerized Red Hat Ceph guide.

To see the resulting /etc/cinder/cinder.conf settings from /home/stack/templates/custom-env.yaml, see Appendix A, Appendix