[openstack-dev] [Fuel] Getting rid of upgrade tarball
Vladimir Kozhukalov
vkozhukalov at mirantis.com
Fri Jul 17 13:45:42 UTC 2015
Matt,
Thanks for noting this. My understanding of the problem is that we should
put openstack.yaml into a separate package build from fuel-web repository.
When a user installs fuel-upgrade package it requires openstack.yaml
package of necessary version to be also installed.
Another idea here is that we don't need this upgrade script at all. Our
docker containers are stateless, so the upgrade flow is going to be
significantly simpler in 7.0. But still we have quite a few things like
create links, move files, backup database, etc. which makes this idea a
little bit premature. Maybe a little bit later.
Ok, let's stop merging any code into
fuel-web/fuel_upgrade_system/fuel_upgrade since now. All patches, which are
not merged yet (I doubt we have any) should be ported to the new repository
which is going to be created once this patch [1] is merged.
[1] https://review.openstack.org/#/c/202541/
Vladimir Kozhukalov
On Fri, Jul 17, 2015 at 12:03 AM, Sergii Golovatiuk <
sgolovatiuk at mirantis.com> wrote:
> Hi,
>
> Let's put openstack.yaml to package if it requires for master node
> upgrade. Environment update part should be removed as it never reached
> production state.
>
> --
> Best regards,
> Sergii Golovatiuk,
> Skype #golserge
> IRC #holser
>
> On Thu, Jul 16, 2015 at 8:07 AM, Matthew Mosesohn <mmosesohn at mirantis.com>
> wrote:
>
>> One item that will impact this separation is that fuel_upgrade
>> implicitly depends on the openstack.yaml release file from
>> fuel-nailgun. Without it, the upgrade process won't work. We should
>> refactor fuel-nailgun to implement this functionality on its own, but
>> then have fuel_upgrade call this piece. Right now, we're copying the
>> openstack.yaml for the target version of Fuel and embedding it in the
>> tarball[1].
>> Instead, the version should be taken from the new version of
>> fuel-nailgun that is installed inside the nailgun container.
>>
>> The other file which gets embedded in the upgrade tarball is the
>> version.yaml file, but I think that's okay to embed during RPM build.
>>
>> [1]
>> https://github.com/stackforge/fuel-web/blob/master/fuel_upgrade_system/fuel_upgrade/fuel_upgrade/engines/openstack.py#L211-L213
>>
>> On Thu, Jul 16, 2015 at 3:55 PM, Oleg Gelbukh <ogelbukh at mirantis.com>
>> wrote:
>> > Vladimir,
>> >
>> > Good, thank you for extended answer.
>> >
>> > --
>> > Best regards,
>> > Oleg Gelbukh
>> >
>> > On Thu, Jul 16, 2015 at 3:30 PM, Vladimir Kozhukalov
>> > <vkozhukalov at mirantis.com> wrote:
>> >>
>> >> Oleg,
>> >>
>> >> Yes, you are right. At the moment all docker containers are packaged
>> into
>> >> a single rpm package. Yes, it would be great to split them into several
>> >> one-by-one rpms, but it is not my current priority. I'll definitely
>> think of
>> >> this when I'll be moving so called "late" packages (which depend on
>> other
>> >> packages) into "perestroika". Yet another thing is that eventually all
>> those
>> >> packages and containers will be "artifacts" and will be treated
>> differently
>> >> according to their nature. That will be the time when we'll be
>> thinking of a
>> >> docker registry and other stuff like this.
>> >>
>> >>
>> >>
>> >>
>> >>
>> >>
>> >> Vladimir Kozhukalov
>> >>
>> >> On Thu, Jul 16, 2015 at 2:58 PM, Oleg Gelbukh <ogelbukh at mirantis.com>
>> >> wrote:
>> >>>
>> >>> Vladimir,
>> >>>
>> >>> Thank you, now it sounds concieving.
>> >>>
>> >>> My understanding that at the moment all Docker images used by Fuel are
>> >>> packaged in single RPM? Do you plan to split individual images into
>> separate
>> >>> RPMs?
>> >>>
>> >>> Did you think about publishing those images to Dockerhub?
>> >>>
>> >>> --
>> >>> Best regards,
>> >>> Oleg Gelbukh
>> >>>
>> >>> On Thu, Jul 16, 2015 at 1:50 PM, Vladimir Kozhukalov
>> >>> <vkozhukalov at mirantis.com> wrote:
>> >>>>
>> >>>> Oleg,
>> >>>>
>> >>>> All docker containers currently are distributed as rpm packages. A
>> >>>> little bit surprising, isn't it? But it works and we can easily
>> deliver
>> >>>> updates using this old plain rpm based mechanism. The package in
>> 6.1GA is
>> >>>> called fuel-docker-images-6.1.0-1.x86_64.rpm So, upgrade flow would
>> be like
>> >>>> this
>> >>>> 0) add new (say 7.0) repository into /etc/yum.repos.d/some.repo
>> >>>> 1) install fuel-upgrade package (yum install fuel-upgrade-7.0)
>> >>>> 2) fuel-upgrade package has all other packages (docker, bootstrap
>> image,
>> >>>> target images, puppet modules) as its dependencies
>> >>>> 3) run fuel-upgrade script (say /usr/bin/fuel-upgrade) and it
>> performs
>> >>>> all necessary actions like moving files, run new containers, upload
>> fixtures
>> >>>> into nailgun via REST API.
>> >>>>
>> >>>> It is necessary to note that we are talking here about Fuel master
>> node
>> >>>> upgrades, not about Openstack cluster upgrades (which is the feature
>> you are
>> >>>> working on).
>> >>>>
>> >>>> Vladimir Kozhukalov
>> >>>>
>> >>>> On Thu, Jul 16, 2015 at 1:22 PM, Oleg Gelbukh <ogelbukh at mirantis.com
>> >
>> >>>> wrote:
>> >>>>>
>> >>>>> Vladimir,
>> >>>>>
>> >>>>> I am fully support moving fuel-upgrade-system into repository of its
>> >>>>> own. However, I'm not 100% sure how docker containers are going to
>> appear on
>> >>>>> the upgraded master node. Do we have public repository of Docker
>> images
>> >>>>> already? Or we are going to build them from scratch during the
>> upgrade?
>> >>>>>
>> >>>>> --
>> >>>>> Best regards,
>> >>>>> Oleg Gelbukh
>> >>>>>
>> >>>>> On Thu, Jul 16, 2015 at 11:46 AM, Vladimir Kozhukalov
>> >>>>> <vkozhukalov at mirantis.com> wrote:
>> >>>>>>
>> >>>>>> By the way, first step for this to happen is to move
>> >>>>>> stackforge/fuel-web/fuel_upgrade_system into a separate repository.
>> >>>>>> Fortunately, this directory is not the place where the code is
>> continuously
>> >>>>>> changing (changes are rather seldom) and moving this project is
>> going to
>> >>>>>> barely affect the whole development flow. So, action flow is as
>> follows
>> >>>>>>
>> >>>>>> 0) patch to openstack-infra for creating new repository (workflow
>> -1)
>> >>>>>> 1) patch to Fuel CI to create verify jobs
>> >>>>>> 2) freeze stackforge/fuel-web/fuel_upgrade_system directory
>> >>>>>> 3) create upstream repository which is to be sucked in by openstack
>> >>>>>> infra
>> >>>>>> 4) patch to openstack-infra for creating new repository (workflow
>> +1)
>> >>>>>> 5) patch with rpm spec for fuel-upgrade package and other
>> >>>>>> infrastructure files like run_tests.sh
>> >>>>>> 6) patch to perestroika to build fuel-upgrade package from new repo
>> >>>>>> 7) patch to fuel-main to remove upgrade tarball
>> >>>>>> 8) patch to Fuel CI to remove upgrade tarball
>> >>>>>> 9) patch to fuel-web to remove fuel_upgrade_system directory
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>> Vladimir Kozhukalov
>> >>>>>>
>> >>>>>> On Thu, Jul 16, 2015 at 11:13 AM, Vladimir Kozhukalov
>> >>>>>> <vkozhukalov at mirantis.com> wrote:
>> >>>>>>>
>> >>>>>>> Dear colleagues,
>> >>>>>>>
>> >>>>>>> I'd like to suggest to get rid of Fuel upgrade tarball and convert
>> >>>>>>> this thing into fuel-upgrade rpm package. Since we've switched to
>> online
>> >>>>>>> rpm/deb based upgrades, it seems we can stop packaging rpm/deb
>> repositories
>> >>>>>>> and docker containers into tarball and instead package upgrade
>> python script
>> >>>>>>> into rpm. It's gonna decrease the complexity of build process as
>> well as
>> >>>>>>> make it a little bit faster.
>> >>>>>>>
>> >>>>>>> What do you think of this?
>> >>>>>>>
>> >>>>>>>
>> >>>>>>> Vladimir Kozhukalov
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> >>>>>>
>> __________________________________________________________________________
>> >>>>>> OpenStack Development Mailing List (not for usage questions)
>> >>>>>> Unsubscribe:
>> >>>>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> >>>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> >>>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> >>>>>
>> __________________________________________________________________________
>> >>>>> OpenStack Development Mailing List (not for usage questions)
>> >>>>> Unsubscribe:
>> >>>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> >>>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> >>>>>
>> >>>>
>> >>>>
>> >>>>
>> >>>>
>> __________________________________________________________________________
>> >>>> OpenStack Development Mailing List (not for usage questions)
>> >>>> Unsubscribe:
>> >>>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> >>>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>>
>> __________________________________________________________________________
>> >>> OpenStack Development Mailing List (not for usage questions)
>> >>> Unsubscribe:
>> >>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> >>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> >>>
>> >>
>> >>
>> >>
>> __________________________________________________________________________
>> >> OpenStack Development Mailing List (not for usage questions)
>> >> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> >> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> >>
>> >
>> >
>> >
>> __________________________________________________________________________
>> > OpenStack Development Mailing List (not for usage questions)
>> > Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> > http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> >
>>
>> __________________________________________________________________________
>> OpenStack Development Mailing List (not for usage questions)
>> Unsubscribe:
>> OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>>
>
>
> __________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150717/f7e49e21/attachment.html>
More information about the OpenStack-dev
mailing list