Looking into the t-h-t services definitions, there is a mismatch for
some patterns for when we use /var/lib/config-data/ vs
/var/lib/config-data/puppet-generate in volumes, see [0] for the full diff. Each of the listed cases needs either comments (describing why we are deviating from the common approach) or a fix
Example of a mismatch:
1) /var/lib/config-data/puppet-generated is not mounted as /var/lib/kolla/config_files/src:
docker/services/octavia-housekeeping.yaml:
- /var/lib/config-data/puppet-generated/octavia/etc/octavia:/etc/octavia/
2) /var/lib/config-data is mounted to /etc/* omitting the */puppet-generated path:
docker/services/cinder-api.yaml:
- /var/lib/config-data/cinder/etc/my.cnf.d/tripleo.cnf:/etc/my.cnf.d/tripleo.cnf:ro
I assume /var/lib/config-data/puppet-generate should only be
bind-mounted as /var/lib/kolla/config_files/src and never as /etc/? While
/var/lib/config-data should only be bind mounted to /etc and not
/var/lib/kolla/config_files/src ? I may be wrong, but the code needs
comments IMO, and maybe an additional yaml validation for that?
In case the mismatch is real, the idempotency issues may arise, which also impacts minor updates.
[0] https://pastebin.com/6c9eTzmK
The solution is for each of the listed cases (there is a 4 possible ways to bind-mount things):
- /var/lib/ config- data/puppet- generated/ foo/:/var/ lib/kolla/ config_ files/src: ro (145 matches in tht, that is a known to be valid pattern by design, see https:/ /hardysteven. blogspot. com/2018/ 06/tripleo- containerized- deployments. html )
- /var/lib/ config- data/puppet- generated/ foo/:/etc/ foo (11 matches in tht, is it a (not) valid pattern?)
- /var/lib/ config- data/foo/ etc/foo: /var/lib/ kolla/config_ files/src: ro (0 mathes in tht, so considering it a not valid pattern)
- /var/lib/ config- data/puppet- generated/ foo/:/etc/ foo: (43 matches in tht, is it a (not) valid pattern?)
either fix the mismatches ( 43 + 11 cases ) or add comments describing why it has to be so different for each of the case.