Description of problem: The appliance is quite big, ranging from 800MB on a good day to 1.5GB. We should see how we can reduce its size, as it'll mean faster deployment, less updates needed, faster upgrade, faster build-time, etc. The 'easiest' path is to reduce the number of packages that are in the appliance itself. This is a RFE to go over the RPMs and see what can be removed. The query I usually use is: rpm -qa --queryformat '%{size} %{name}\n' | sort -rn | more One of the first that come to mind is Linux firmware. It is not needed on a VM, and is probably the biggest you'll find in a VM... Other suggestions are to use java...-headless in order to carry over less X11 stuff, which we do not need. Note: the idea here is not to fight over every bite, but with few easy wins reduce the size (so a neat 'trick' to remove all but English locale, is not an option here, for example).
Yep - one measure we already took an which is on track is bug 1297492. The solution here is not to split up the kernel, but now the kmod compression is simply getting enabled in the kernel build, which reduces the kernel on-disk footprint. But as you noted, additional mesures can be taken.
Speaking about Kernel, you can probably drop linux-firmware RPM, which is a huge RPM. I don't think it's needed for VMs.
Ido, can you compare the size of an appliance build with the linux-firmware package (like today). And the size of the appliance without the linux-firmware package. Sandro also suggested to use java-headless for engine. This requires a separate RFE.
The size of the RPM with linux-firmware package is 762 MB, and without the package is 712 MB. We save 50 MB in total.
Created attachment 1242518 [details] ovirt-engine dependency tree Legend: Green node : smaller then 10MB Yellow node : between 10MB to 40MB Red node : greater then 40MB
Do we need the package 'numpy'? It is required by ovirt-engine in the spec file, but there no file import it. One can see (in the attachment on comment 5) that the package has some large dependencies. If we can let it go, we can minimize the size of the appliance.
(In reply to Ido Rosenzwig from comment #6) > Do we need the package 'numpy'? > It is required by ovirt-engine in the spec file, but there no file import it. > One can see (in the attachment on comment 5) that the package has some large > dependencies. > If we can let it go, we can minimize the size of the appliance. No idea. I suggest to check git log and find the patch that added it. Then either it will be obvious or you can ask the author.
(In reply to Ido Rosenzwig from comment #6) > Do we need the package 'numpy'? > It is required by ovirt-engine in the spec file, but there no file import it. > One can see (in the attachment on comment 5) that the package has some large > dependencies. > If we can let it go, we can minimize the size of the appliance. It has been added for bug #1045042 with https://gerrit.ovirt.org/26371 I think we should remove ovirt-engine-websocket-proxy from the appliance. It can be added after HE is deployed or installed in a separate VM. Moran? Yaniv?
(In reply to Sandro Bonazzola from comment #8) > (In reply to Ido Rosenzwig from comment #6) > > Do we need the package 'numpy'? > > It is required by ovirt-engine in the spec file, but there no file import it. > > One can see (in the attachment on comment 5) that the package has some large > > dependencies. > > If we can let it go, we can minimize the size of the appliance. > > It has been added for bug #1045042 with https://gerrit.ovirt.org/26371 > > I think we should remove ovirt-engine-websocket-proxy from the appliance. > It can be added after HE is deployed or installed in a separate VM. > > Moran? Yaniv? I'm in favor. It is only used for Spice HTML 5 (which we should drop!) or the NoVNC. Note that we can remove numpy itself only - it's optional for the proxy and only improves performance, nothing dramatic we can't leave without - vs. saving 100+ MB or so.
(In reply to Sandro Bonazzola from comment #8) > (In reply to Ido Rosenzwig from comment #6) > > Do we need the package 'numpy'? > > It is required by ovirt-engine in the spec file, but there no file import it. > > One can see (in the attachment on comment 5) that the package has some large > > dependencies. > > If we can let it go, we can minimize the size of the appliance. > > It has been added for bug #1045042 with https://gerrit.ovirt.org/26371 > > I think we should remove ovirt-engine-websocket-proxy from the appliance. > It can be added after HE is deployed or installed in a separate VM. > > Moran? Yaniv? Ack, sounds good.
(In reply to Yaniv Dary from comment #10) > (In reply to Sandro Bonazzola from comment #8) > > (In reply to Ido Rosenzwig from comment #6) > > > Do we need the package 'numpy'? > > > It is required by ovirt-engine in the spec file, but there no file import it. > > > One can see (in the attachment on comment 5) that the package has some large > > > dependencies. > > > If we can let it go, we can minimize the size of the appliance. > > > > It has been added for bug #1045042 with https://gerrit.ovirt.org/26371 > > > > I think we should remove ovirt-engine-websocket-proxy from the appliance. > > It can be added after HE is deployed or installed in a separate VM. > > > > Moran? Yaniv? > > Ack, sounds good. going with this approach will actually means that we'll have degradation in the integration with cloudforms (https://access.redhat.com/documentation/en-us/red_hat_cloudforms/4.2/html/support_matrix/index#remote_consoles). considering saving 100mb compared with the noise it can make, i wouldn't go on this pass till we have better support from CF side.
(In reply to Moran Goldboim from comment #11) > (In reply to Yaniv Dary from comment #10) > > (In reply to Sandro Bonazzola from comment #8) > > > (In reply to Ido Rosenzwig from comment #6) > > > > Do we need the package 'numpy'? > > > > It is required by ovirt-engine in the spec file, but there no file import it. > > > > One can see (in the attachment on comment 5) that the package has some large > > > > dependencies. > > > > If we can let it go, we can minimize the size of the appliance. > > > > > > It has been added for bug #1045042 with https://gerrit.ovirt.org/26371 > > > > > > I think we should remove ovirt-engine-websocket-proxy from the appliance. > > > It can be added after HE is deployed or installed in a separate VM. > > > > > > Moran? Yaniv? > > > > Ack, sounds good. > > going with this approach will actually means that we'll have degradation in > the integration with cloudforms > (https://access.redhat.com/documentation/en-us/red_hat_cloudforms/4.2/html/ > support_matrix/index#remote_consoles). considering saving 100mb compared > with the noise it can make, i wouldn't go on this pass till we have better > support from CF side. It's not a degradation, it just means they need to install it, no big deal, can be part of the documentation. As Spice-HTML5 is not supported anyway, it's just for the NoVNC - and it could be added clearly to the NoVNC page, for example. And it's additional 100MB to be reduced from the appliance, making it quicker to download and install (and more importantly for me, put it into CI quickly, in the main path).
What is the size 4.1?
Please note that new packages have been added to the appliance for the hosted engine, like fluentd and collectd plus dependencies. rhvm-appliance-1:4.1.20170403.0-1.el7.noarch.rpm Size 1474137152 rhvm-appliance-1:4.1.20170221.0-1.el7ev.noarch.rpm Size 1663783960
(In reply to Gonza from comment #18) > Please note that new packages have been added to the appliance for the > hosted engine, like fluentd and collectd plus dependencies. > > rhvm-appliance-1:4.1.20170403.0-1.el7.noarch.rpm > Size 1474137152 > > rhvm-appliance-1:4.1.20170221.0-1.el7ev.noarch.rpm > Size 1663783960 Still huge. Would you run: rpm -qa --queryformat '%{size} %{name}\n' | sort -rn (from the initial description) to see that we've improved and removed big and unneeded packages?