[tripleo] puppet_config: immutable relationship between config_volume and config_image?

Alex Schultz aschultz at redhat.com
Mon Nov 29 15:00:30 UTC 2021


On Sat, Nov 27, 2021 at 7:32 AM Brent Eagles <beagles at redhat.com> wrote:
>
> Hi all,
>
> I've been working on
> https://review.opendev.org/c/openstack/tripleo-heat-templates/+/816895 and the
> current pep8 check error on the designate-api-container-puppet.yaml template
> appears to disallow using different container config images on the same config
> volume.
>
> I see where this makes sense but because the way the puppet_config sections
> seem to be structured I wonder if it was intentional. The templates happen to
> work in this patch's case because the api specific config image in this
> template only includes some additional binaries for apache+wsgi necessary for
> the puppet. However, I can see where this might cause some really unfortunate
> issues if the config images for a given config_volume were to have different
> versions of puppet.
>

In looking at the code the config_volume name is used to generate the
container name which would be problematic if you switch the
config_volume+config_image pairing because it'll cause conflicts.
IIRC config_volume is useful when you have multiple services that
basically use the same base configuration container to generate their
configs (e.g. neutron + neutron plugins).  If you are switching to use
the api container for the configuration generation then config_volume
should likely be designate_api and that could be shared with the api
contianer.

> While I will alter the templates so the designate config volume use the
> same config image, it does beg the question if having the puppet_config
> config_volume definitions duplicated across the templates is a good
> pattern.  Would it be a better choice to adopt a pattern where the
> immutable parts of the config_volumes (e.g. config_volume name,
> config_image) can only be defined once per config volume? Perhaps in a
> separate file and have the mutable parts in their respective template
> definitions?
>

They aren't really duplicated.   They are specific to the puppet
config for a given service and are specific to the service and it's
configuration generation. For example if you look at the various heat
containers there are in fact 3 different pairs
(heat,ContainerHeatConfigImage),
(heat_api,ContainerHeatApiConfigImage),
(heat_api_cfn,COntainerHeatApiCfnConfigImage).

> Cheer,
>
> Brent
>
> --
> Brent Eagles
> Principal Software Engineer
> Red Hat Inc.
>
>




More information about the openstack-discuss mailing list