RFC: merging ironic-image and ironic-inspector-image in one repository

22 views
Skip to first unread message

Dmitry Tantsur

unread,
Jan 25, 2021, 9:26:55 AM1/25/21
to Metal3 Development List
Hi all,

This idea came to me after reviewing https://github.com/metal3-io/ironic-inspector-image/pull/70 which introduces an httpd process for ironic-inspector. As you know, we already have an httpd process for ironic, and that caused me to think about merging the two repositories together. Other considerations:
1) ironic and ironic-inspector share most of their Python dependencies, by using one base container we can reduce the disk usage
2) the separation is already vague: the httpd and dnsmasq containers from ironic-image have ironic-inspector configuration (e.g. kernel parameters)
2.1) ... and we have to keep them in sync manually
3) having only one copy of ironic-common.sh
3.1) overall simpler maintenance

If we go with this plan, we'll build a single ironic-image container, from which several (5-6?) entry points will be used to start different services (similarly to how it's done for ironic already).

Slightly tangential, but we should likely separate the mariadb/mysql container since it shares nearly nothing with other services.

Thoughts?

Dmitry

--
Red Hat GmbH, https://de.redhat.com/ , Registered seat: Grasbrunn,
Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Charles Cachera, Brian Klemm, Laurie Krebs, Michael O'Neill

Zane Bitter

unread,
Jan 25, 2021, 10:06:22 AM1/25/21
to metal...@googlegroups.com
On 25/01/21 9:26 am, Dmitry Tantsur wrote:
> Hi all,
>
> This idea came to me after reviewing
> https://github.com/metal3-io/ironic-inspector-image/pull/70
> <https://github.com/metal3-io/ironic-inspector-image/pull/70> which
> introduces an httpd process for ironic-inspector. As you know, we
> already have an httpd process for ironic, and that caused me to think
> about merging the two repositories together. Other considerations:
> 1) ironic and ironic-inspector share most of their Python dependencies,
> by using one base container we can reduce the disk usage
> 2) the separation is already vague: the httpd and dnsmasq containers
> from ironic-image have ironic-inspector configuration (e.g. kernel
> parameters)
> 2.1) ... and we have to keep them in sync manually
> 3) having only one copy of ironic-common.sh
> 3.1) overall simpler maintenance
>
> If we go with this plan, we'll build a single ironic-image container,
> from which several (5-6?) entry points will be used to start different
> services (similarly to how it's done for ironic already).
>
> Slightly tangential, but we should likely separate the mariadb/mysql
> container since it shares nearly nothing with other services.
>
> Thoughts?

From a maintenance perspective, it's a pain having these in two
separate repos and constantly copying fixes between them, so +1 to
combining them.

It's possible to build multiple images from a single Dockerfile, so if
we combine the repos it would be possible to still build separate images
(such that all the tooling that is currently using them wouldn't even
have to change) that nevertheless share the layer with all the Python
dependencies (which would be cached so they didn't have to be downloaded
twice). That might offer the best cost/benefit.

cheers,
Zane.

Nam Xuan Nguyen

unread,
Jan 26, 2021, 5:26:45 AM1/26/21
to metal...@googlegroups.com
Hi all,
I also see that it is quite painful when pushing two PRs for the same feature to both ironic-image and ironic-inspector-image repo. Therefore, I like the idea to mege these two repo together.
Best regards,
Nam


From: metal...@googlegroups.com <metal...@googlegroups.com> on behalf of Zane Bitter <zbi...@redhat.com>
Sent: Monday, January 25, 2021 5:06 PM
To: metal...@googlegroups.com <metal...@googlegroups.com>
Subject: Re: [metal3-dev] RFC: merging ironic-image and ironic-inspector-image in one repository
 
--
You received this message because you are subscribed to the Google Groups "Metal3 Development List" group.
To unsubscribe from this group and stop receiving emails from it, send an email to metal3-dev+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/metal3-dev/a6c46b6f-e62c-0a9d-6e96-5069a7088cce%40redhat.com.

Riccardo Pittau

unread,
Feb 9, 2021, 5:13:32 AM2/9/21
to Nam Xuan Nguyen, metal...@googlegroups.com
Hello everyone,

I'm willing to take on this task.

I did a quick analysis of the work that needs to be done and I believe we can split it in 4 main phases:
1) preparation of ironic-image repository (this involves some refactoring to simplify what comes in phase 2)
2) migrate ironic-inspector-image repository content to ironic-image repository (this is probably the most annoying part as we need to sync also all the new changes from one repo to the other)
3) freeze ironic-inspector-image repository
4) cleaning (some more refactoring and consolidation)

Do we want to track the progress in one or more issues in the ironic-image repository? Or somewhere else?

Comments, advice, suggestions always welcome!

Thanks,
Riccardo

Reply all
Reply to author
Forward
0 new messages