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

Brent Eagles beagles at redhat.com
Mon Nov 29 18:05:31 UTC 2021

On Mon, Nov 29, 2021 at 08:00:30AM -0700, Alex Schultz wrote:
> 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).

Thanks for the clarification Alex!



Brent Eagles
Principal Software Engineer
Red Hat Inc.

More information about the openstack-discuss mailing list