Bug 1543641

Summary: Cinder HA and non-HA containers are not configured the same
Product: Red Hat OpenStack Reporter: Alan Bishop <abishop>
Component: openstack-tripleo-heat-templatesAssignee: Alan Bishop <abishop>
Status: CLOSED ERRATA QA Contact: Tzach Shefi <tshefi>
Severity: medium Docs Contact:
Priority: medium    
Version: 12.0 (Pike)CC: abishop, apevec, cschwede, dnavale, eharney, lhh, mburns, pgrist, ramishra, rhel-osp-director-maint, srevivo, tbarron
Target Milestone: z2Keywords: Triaged, ZStream
Target Release: 12.0 (Pike)   
Hardware: Unspecified   
OS: Unspecified   
Fixed In Version: openstack-tripleo-heat-templates-7.0.9-3.el7ost puppet-tripleo-7.4.8-2.el7ost Doc Type: Bug Fix
Doc Text:
Previously, the TripleO Heat Templates (THT) and the puppet-tripleO configured the cinder-volume and cinder-backup containers differently depending on whether the services were deployed for HA (with pacemaker). As a result, features added to THT, for example, the CinderVolumeOptVolume parameter was not implemented in the corresponding puppet-tripleO code, causing disparity in how the services were deployed. With this update, the THT and puppet-tripleO code have been updated to allow the container configuration to be controlled from a single location in the THT. As a result, the cinder-volume and cinder-backup containers are launched the same way in HA and non-HA deployments.
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-03-28 17:16:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Description Flags
Docker inspect HA and none HA of Cinder volume and backup none

Description Alan Bishop 2018-02-08 22:01:35 UTC
Description of problem:

See https://bugs.launchpad.net/tripleo/+bug/1748290 for a full explanation. The short version is THT controls the Cinder container configurations in non-HA deployments, but puppet-tripleo has its own set of hard-coded settings it uses in HA deployments.

The big issue for Cinder is the CinderVolumeOptVolumes THT parameter is critical in order for partners to containerize their Cinder drivers. That value isn't honored by puppet-tripleo, and so any CinderVolumeOptVolumes will be missing from the cinder-volume HA container.

I'm reporting this against OSP-13 because Cinder is not containerized in OSP-12.

Version-Release number of selected component (if applicable):

How reproducible:

Steps to Reproduce:

Actual results:

Expected results:

Additional info:

Comment 1 Alan Bishop 2018-02-21 18:11:45 UTC
I'm retargeting this to OSP-12 because the upstream patches have been backported to stable/pike.

Comment 14 Tzach Shefi 2018-03-12 08:50:18 UTC
Forgot to set needinfo flag on #13

Comment 15 Alan Bishop 2018-03-12 12:39:43 UTC
Take a look at https://github.com/openstack/tripleo-heat-templates/blob/stable/pike/docker/services/cinder-common.yaml and note the following outputs:

- cinder_volume_volumes (L50)
- cinder_volume_environment (L68)
- cinder_backup_volumes (L76)
- cinder_backup_environment (L93)

These define the list of docker volumes and docker environment variables that should be used in both HA and non-HA deployments. You can test this by doing each type of deployment, running "docker inspect" on the cinder-volume and cinder-backup containers, and noting the docker volume mounts and environment variables. The HA and non-HA sets should match.

You can also experiment with the CinderVolumeOptVolumes and CinderVolumeOptEnvVars THT parameters. Perhaps add something like this to a new environment file, or to an existing environment file such as your containerized-cinder.yaml:

  CinderVolumeOptVolumes: /etc/cinder/opt-dir:/etc/cinder/opt-dir
  CinderVolumeOptEnvVars: FOO=BAR

CinderVolumeOptVolumes will create an additional docker volume mount that will map a directory on the host to the cinder-volume container. Docker will automatically create the directory for you, so you should see a /etc/cinder/opt-dir on the host and inside the cinder-volume container.

CinderVolumeOptEnvVars will cause an additional environment variable FOO to be assigned the value BAR.

Comment 16 Tzach Shefi 2018-03-13 20:22:14 UTC
Verified on:

For previous bugs I had deployed osp12 with containerized Cinder in both HA and none HA deployments, both of them managed to deploy.
Cinder create and backup works on both. 

Run docker inspect on volume and backup on both HA and none HA. 
Attaching output, docker volume mounts and environment variables do match for HA and none HA.

Comment 17 Tzach Shefi 2018-03-13 20:23:02 UTC
Created attachment 1407718 [details]
Docker inspect HA and none HA of Cinder volume and backup

Comment 20 errata-xmlrpc 2018-03-28 17:16:42 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.