[OpenStack-Infra] Nodepool config file structure
Paul Belanger
pabelanger at redhat.com
Tue Dec 20 18:43:40 UTC 2016
On Tue, Dec 20, 2016 at 10:19:26AM -0800, James E. Blair wrote:
> Hi,
>
> I've been working on reconciling a confusing part of the Nodepool config
> file: the mapping between labels, provider images, and diskimages.
>
> Broadly speaking the three constructs are:
>
> diskimages: the file(s) that DIB produces
> provider images: a disk image uploaded to a provider, combined with
> flavor information
> labels: a set of nodes created from provider images
>
> I think the biggest problem is that provider images are combining two
> concepts which should be distinct: uploaded diskimages and flavors used
> for launching nodes. They hold at least one piece of data for each of
> these functions: the image metadata (which is used at upload time) and
> the flavor (used at node creation time), which makes it impossible to
> disentangle them without a change.
>
> Adding to the confusion is simply the use of the word 'images' in
> provider images, as it's a little unclear what an image is in this
> context (a single diskimage? one of may images uploaded to the cloud?
> an artificial construct combining the two?)
>
> The literal way to reconcile the current configuration syntax would be to
> upload the same diskimage to a provider multiple times, each as a
> different provider image (with its own set of metadata). That seems
> very wasteful.
>
> Because we did not include support for that (nor should we have, I
> think), we needed to take at least one step in the direction of
> correcting this situation when making the new zookeeper builders. To
> that end, we merged this change:
>
> https://review.openstack.org/396749
>
> which removed the diskimage parameter from the provider image stanza.
> This made an implicit 1:1 connection between the provider images and
> diskimages, based on their having the same name. That means that we
> know which metadata to use when uploading a diskimage to a provider.
> However, it also means that there is now not a way to specify more than
> one flavor with the same image. That is not a feature we use currently
> (especially since the allocator does not take flavor size into acconut)
> but it is one we want to have in the future.
>
> I don't see a way to support both of these features (single upload and
> multiple flavors) without a change to the configuration. I propose that
> we keep 396749 in place, and iterate forward.
>
> I think we should change the provider images section to separate out the
> parts pertaining to diskimages and those pertaining to flavors.
> Something like:
>
> labels:
> - name: small-ubuntu-trusty
> ready-script: configure_mirror.sh
> min-ready: 1
>
> providers:
> - name: cloud
> diskimages:
> - name: ubuntu-trusty
> metadata:
> foo: bar
> labels:
> - name: small-ubuntu-trusty
> ram: 2g
> - name: large-ubuntu-trusty
> ram: 8g
>
What are you visioning for the image-type key? I only bring it up since we've
dropped 'images' here.
> diskimages:
> - name: ubuntu-trusty
> private-key: /home/nodepool/.ssh/id_rsa
> elements: ...
>
> That also lets us remove the 'providers' section from each label
> definition. That is used to indicate which providers should be used to
> create nodes of each label, but by associating labels with provider
> copies of diskimages, it is simple to add or remove those label entries
> (which would not affect the diskimage entry, whose addition/removal
> would cause image uploads or deletions). I also moved the 'private-key'
> attribute to the diskimage section, since that should not differ by
> provider.
>
++ to providers removal.
On the fence about private-key moving to diskimages. But, understand why, in
our nodepool.yaml we have 74 entries for it; all the same. In the use case I am
thinking of, where using nodepool-builder just to build images, there wouldn't
be need for a private-key. We'd only use that after uploading.
> Does this sound like a reasonable path forward?
>
> Thanks,
>
> Jim
>
> _______________________________________________
> OpenStack-Infra mailing list
> OpenStack-Infra at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-infra
More information about the OpenStack-Infra
mailing list