Hi Nicolas,

Where do we stand on this? Is this something that could be easily updated
or feature added? I'm not familiar with the code base. If I were to explore
the idea of making an update and submitting a PR, where would I start?

Regards,

Willard

On Fri, Jun 16, 2023 at 6:41 AM Will Conrad <wcon...@hivelocity.net> wrote:

> Nicolas,
>
> "In your requirement do you mean to change the template URL and
> re-download the template from a different location or simply download again
> the template from the same URL after updating the served file?"
>
> For our use case the URL will stay the same, but the file will be updated
> (though I could imagine other use cases where an update of the URL would be
> useful too). Consider a URL like
> http://some.distro.com/cloud/latest/imgname.img
> where /latest/ automatically takes you to the latest updated version of
> that file over time. We would not be looking to trigger an update on all of
> the primary storage pools where instances have been deployed, just the
> secondary storage such that new deploys use the updated image.
>
> Over time, distro cloud images get updated with the latest updates (that
> one would receive just by running apt update && apt upgrade, for instance).
> If we continue to deploy with the same image, updates will cause vm
> deployment to take longer and longer over time, as well as consume more and
> more network bandwidth, due to the updates each vm will have to perform at
> time of deployment.
>
> "Afaik there is no supported way to safely do this except manually
> updating the files on the downloaded storage pools (secondary and primary)
> which should be updated carefully. The tables template_store_ref and
> template_spool_ref indicate the downloaded copies on secondary and primary
> pools of each template."
>
> I assume you're referring to the question about copying over/updating the
> secondary storage image manually. I consider this idea a hack that could
> cause issues or at the very least be at risk of breaking when a new
> cloudstack update gets deployed. I don't like the idea myself. I'm just
> trying to explore all the options available to us and see where your
> guidance takes me.
>
> The reality is that we can make direct download work, but to do so would
> require additional infrastructure (for instance, a webserver in  each zone
> where we point the URL to, that we now have to maintain and monitor).
> Ideally we would just like to let the secondary storage server(s) fulfill
> their role.
>
> On Thu, Jun 15, 2023 at 10:30 PM Nicolas Vazquez <
> nicolas.vazq...@shapeblue.com> wrote:
>
>> Hi Will,
>>
>> When registering a template CloudStack usually downloads it first to
>> secondary storage and then copies it through the different primary storage
>> pools when a VM deployment requires it. The aim of the direct download
>> feature is to skip the first step and directly downloading the templates
>> into primary storage pools without any secondary storage intervention.
>>
>> In your requirement do you mean to change the template URL and
>> re-download the template from a different location or simply download again
>> the template from the same URL after updating the served file? Afaik there
>> is no supported way to safely do this except manually updating the files on
>> the downloaded storage pools (secondary and primary) which should be
>> updated carefully. The tables template_store_ref and template_spool_ref
>> indicate the downloaded copies on secondary and primary pools of each
>> template.
>>
>> Regards,
>> Nicolas Vazquez
>>
>>
>> From: Will Conrad <wcon...@hivelocity.net.INVALID>
>> Date: Thursday, 15 June 2023 at 14:47
>> To: users@cloudstack.apache.org <users@cloudstack.apache.org>
>> Subject: Re: Direct Download/Bypass Secondary Storage option for templates
>> Nicolas,
>>
>> The reason we're considering using the directdownload feature is to
>> simplify template maintenance/updates. I presume that's what it was
>> designed for. We want to be able to, preferably through cloudstack
>> functionality, update the template image file associated with a template.
>> We planned on achieving this utilizing directdownload to decouple the
>> image
>> file from the registered template itself when it occurred to us that a
>> "regrab" button in the template properties webui or an API call to tell
>> secondary storage to redownload the source would very much simplify this
>> process.
>>
>> This brings my questions to:
>>
>> How difficult would it be to implement something like that?
>>
>> Is there another way to update the imagefile associated with a template? I
>> mean, could we manually overwrite the file on secondary storage? Would
>> that
>> break anything?
>>
>> What is Cloudstack's recommended best practice for managing template
>> images?
>>
>>
>> Regards,
>>
>> Willard (Will)
>>
>>
>>
>> On Wed, Jun 14, 2023 at 10:26 AM Nicolas Vazquez <
>> nicolas.vazq...@shapeblue.com> wrote:
>>
>> > No problem, I think these docs do not clearly state the supported
>> storage
>> > providers, I will fix that. On this blog entry we have mentioned them:
>> >
>> https://www.shapeblue.com/cloudstack-feature-first-look-direct-download-agnostic-of-the-storage-provider/
>> >
>> > Currently the direct download feature is supported on NFS, local storage
>> > and shared mount point, but not for Ceph.
>> >
>> > Regards,
>> > Nicolas Vazquez
>> >
>> >
>> > From: Will Conrad <wcon...@hivelocity.net.INVALID>
>> > Date: Wednesday, 14 June 2023 at 10:58
>> > To: users@cloudstack.apache.org <users@cloudstack.apache.org>
>> > Subject: Re: Direct Download/Bypass Secondary Storage option for
>> templates
>> > Nicolas,
>> >
>> > I feel silly for not having read that documentation all the way through.
>> > Thank you for your assistance.
>> >
>> > I have another question, now. Since we've been working with this we
>> > have been trying various methods of testing directdownload templates.
>> Since
>> > we were having problems with HTTPS, we tested HTTP. We have run into a
>> > problem where the template fails to download if the guest is using ceph
>> > storage. When we change to creating the VM on "local" storage, the
>> template
>> > download succeeds and the VM creates successfully. Are there any
>> insights
>> > you can provide here? Is there more documentation I may have missed?
>> >
>> > On Wed, Jun 14, 2023 at 9:39 AM Nicolas Vazquez <
>> > nicolas.vazq...@shapeblue.com> wrote:
>> >
>> > > Thanks Will,
>> > >
>> > > Currently it is only possible to upload the certificate via API but
>> not
>> > > from the UI, please find it documented here:
>> > >
>> >
>> https://docs.cloudstack.apache.org/en/latest/adminguide/templates.html#bypassing-secondary-storage-for-kvm-templates
>> > > .
>> > >
>> > > In your case as the template is stored on Github you may want to
>> upload a
>> > > Github certificate to the hosts for the download to be trusted
>> > >
>> > > Regards,
>> > > Nicolas Vazquez
>> > >
>> > >
>> > > From: Will Conrad <wcon...@hivelocity.net.INVALID>
>> > > Date: Wednesday, 14 June 2023 at 10:06
>> > > To: users@cloudstack.apache.org <users@cloudstack.apache.org>
>> > > Subject: Re: Direct Download/Bypass Secondary Storage option for
>> > templates
>> > > Hi Wei and Nicolas,
>> > >
>> > > Thank you for you responses.
>> > >
>> > > Wei,
>> > >
>> > > I checked the host, and confirmed that yes the ca-certificates
>> package is
>> > > installed and latest.
>> > > "root@lax2-cs-hv01:~# apt list ca-certificates -a
>> > >
>> > > Listing... Done
>> > >
>> > > ca-certificates/jammy-updates,jammy-security,now
>> 20230311ubuntu0.22.04.1
>> > > all [installed,automatic]
>> > >
>> > > ca-certificates/jammy 20211016 all
>> > >
>> > >
>> > >
>> > > Nicolas,
>> > >
>> > > "Have you tried uploading the required certificate for the https
>> download
>> > > via the uploadTemplateDirectDownloadCertificate API?"
>> > >
>> > > No I have not. I was unaware of the need to do this. Is there
>> > documentation
>> > > I may have missed? What certificate is supposed to be uploaded and
>> how is
>> > > it used?
>> > >
>> > > Regards,
>> > >
>> > > Willard
>> > >
>> > > On Tue, Jun 13, 2023 at 10:01 PM Nicolas Vazquez <
>> > > nicolas.vazq...@shapeblue.com> wrote:
>> > >
>> > > > Hi Will,
>> > > >
>> > > > Have you tried uploading the required certificate for the https
>> > download
>> > > > via the uploadTemplateDirectDownloadCertificate API?
>> > > >
>> > > > Regards,
>> > > > Nicolas Vazquez
>> > > >
>> > > >
>> > > > From: Wei ZHOU <ustcweiz...@gmail.com>
>> > > > Date: Tuesday, 13 June 2023 at 20:01
>> > > > To: users@cloudstack.apache.org <users@cloudstack.apache.org>
>> > > > Subject: Re: Direct Download/Bypass Secondary Storage option for
>> > > templates
>> > > > Hi Will,
>> > > >
>> > > > What hypervisor do you use ? Have you installed ca-crrtificates
>> > package?
>> > > >
>> > > > -Wei
>> > > >
>> > > > On Tuesday, 13 June 2023, Will Conrad <wcon...@hivelocity.net
>> .invalid>
>> > > > wrote:
>> > > >
>> > > > > Hello again, Community!
>> > > > >
>> > > > > We're trying to make use of DirectDownload templates which makes
>> use
>> > of
>> > > > the
>> > > > > "Bypass Secondary Storage" feature, but we seem to be having
>> issues
>> > > with
>> > > > > this functionality.
>> > > > >
>> > > > > After setting up a new template with "Direct Download" turned on
>> and
>> > an
>> > > > > HTTPS URL our template file won't download. The download source
>> is a
>> > > file
>> > > > > stored in github. This is what we see in the logs:
>> > > > >
>> > > > > Jun 13 16:12:07 lax2-cs-hv01 java[26054]: WARN
>> > > > > [kvm.storage.KVMStorageProcessor] (agentRequest-Handler-5:)
>> > > > > (logid:7b08521c) Error downloading template 209 due to: Error on
>> > HTTPS
>> > > > > request: PKIX path building failed:
>> > > > > sun.security.provider.certpath.SunCertPathBuilderException:
>> unable to
>> > > > > find valid certification path to requested target
>> > > > > Jun 13 16:12:07 lax2-cs-hv01 java[26054]: INFO
>> > > > > [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-1:)
>> > > > > (logid:7b08521c) Trying to fetch storage pool
>> > > > > 3b59a095-9e71-3e97-92a8-56aa3f931a5e from libvirt
>> > > > > Jun 13 16:12:07 lax2-cs-hv01 java[26054]: WARN
>> > > > > [kvm.storage.KVMStorageProcessor] (agentRequest-Handler-1:)
>> > > > > (logid:7b08521c) Error downloading template 209 due to: Error on
>> > HTTPS
>> > > > > request: PKIX path building failed:
>> > > > > sun.security.provider.certpath.SunCertPathBuilderException:
>> unable to
>> > > > > find valid certification path to requested target
>> > > > > Jun 13 16:12:07 lax2-cs-hv01 java[26054]: INFO
>> > > > > [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:)
>> > > > > (logid:78a6fa93) Trying to fetch storage pool
>> > > > > 3b59a095-9e71-3e97-92a8-56aa3f931a5e from libvirt
>> > > > > Jun 13 16:12:07 lax2-cs-hv01 java[26054]: INFO
>> > > > > [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-4:)
>> > > > > (logid:78a6fa93) Asking libvirt to refresh storage pool
>> > > > > 3b59a095-9e71-3e97-92a8-56aa3f931a5e
>> > > > > Jun 13 16:12:07 lax2-cs-hv01 java[26054]: INFO
>> > > > > [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-2:)
>> > > > > (logid:7b08521c) Trying to fetch storage pool
>> > > > > 3b59a095-9e71-3e97-92a8-56aa3f931a5e from libvirt
>> > > > > Jun 13 16:12:08 lax2-cs-hv01 java[26054]: INFO
>> > > > > [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:)
>> > > > > (logid:78a6fa93) Trying to fetch storage pool
>> > > > > eb9f16ef-3ba3-4c50-9e64-807b6f2c8994 from libvirt
>> > > > > Jun 13 16:12:08 lax2-cs-hv01 java[26054]: INFO
>> > > > > [kvm.storage.LibvirtStorageAdaptor] (agentRequest-Handler-3:)
>> > > > > (logid:78a6fa93) Asking libvirt to refresh storage pool
>> > > > > eb9f16ef-3ba3-4c50-9e64-807b6f2c8994
>> > > > > Jun 13 16:12:08 lax2-cs-hv01 java[26054]: WARN
>> > > > > [kvm.storage.KVMStorageProcessor] (agentRequest-Handler-2:)
>> > > > > (logid:7b08521c) Error downloading template 209 due to: Error on
>> > HTTPS
>> > > > > request: PKIX path building failed:
>> > > > > sun.security.provider.certpath.SunCertPathBuilderException:
>> unable to
>> > > > > find valid certification path to requested target
>> > > > >
>> > > > > We've been through this documentation:
>> > > > >
>> https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html#<
>> > > > https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html
>> ><<<
>> https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html%3e%3c%3c
>> >
>> >
>> https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html%3e%3c
>> ><
>> https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html%3e%3c%3e
>> >
>> > > https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html%3e
>> ><<
>> https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html%3e%3e%3c
>> >
>> >
>> https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html%3e%3e
>> ><
>> https://docs.cloudstack.apache.org/en/latest/adminguide/hosts.html%3e%3e%3e
>> >
>> > > > > securing-process
>> > > > >
>> > > > > but everything seems to be in order, on our side. Any insights
>> here?
>> > > > > Happy to provide any logs or configuration information to assist.
>> > > > >
>> > > > > Regards,
>> > > > >
>> > > > > Willard Conrad
>> > > > >
>> > > > > DevOps Engineer
>> > > > >
>> > > > > Hivelocity, LLC
>> > > > >
>> > > >
>> > > >
>> > > >
>> > > >
>> > >
>> > >
>> > >
>> > >
>> >
>> >
>> >
>> >
>>
>>
>>
>>

Reply via email to