Commit Graph

188 Commits

Author SHA1 Message Date
Ghanshyam Mann a3512ea5b8 Cleanup the retired repo
This repo is not properly retired. Retired repos can only have two files:
- README.rst
- gitreview

To cleanup the retirement of this repo, keeping these two files only and
removing the other remaining files if there is any.

Change-Id: Ied0ba0095223d6bb2346e5833256c44123504623
Detail: https://etherpad.opendev.org/p/tc-retirement-cleanup
2020-08-05 19:34:45 -05:00
OpenDev Sysadmins 4a2fb17e6b OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:44:04 +00:00
Vladimir Kozhukalov a1268b071d Retire the repository
This repository was used to develop upgrade Fuel admin
node scripts. At the moment all upgrade related stuff
is being developed in fuel-octane.

Change-Id: I37d5dae8b77da9ca7812b2f9e2f8182a4975dbdf
2016-06-29 15:15:42 +03:00
Jenkins 403ef7c31d Merge "py26 is no longer supported by Infra's CI" 2016-03-18 14:28:55 +00:00
Andreas Jaeger f7abbb336b Remove argparse from requirements
argparse was external in python 2.6 but not anymore, remove it from
requirements.

This should help with pip 8.0 that gets confused in this situation.
Installation of the external argparse is not needed.

Change-Id: Ib7e74912b36c1b5ccb514e31fac35efeff57378d
2016-01-20 19:15:06 +01:00
Oleg Gelbukh e95dc05071 Add stop method to supervisor client
Stop service using supervisor via supervisor client by the process
name.

Change-Id: I0c1d95dbe469730eb1bb6724e918b791c943fca0
2016-01-06 20:28:45 +00:00
janonymous 0a968b6afa py26 is no longer supported by Infra's CI
Python 2.6 support would be dropped by
Infra team from mitaka,CI would no longer be testing it,
so projects should drop it too.

Change-Id: I01bdbc22759b9b7ec496bb66095b24af2e91b6f2
2015-12-26 13:53:37 +05:30
Oleg Gelbukh 3c5f5b6f87 Remove inconsistent requirements
Requirement to pbr>=1.18 is inconsistent with other Fuel components.
Remove restrictions from pbr version.
Remove '-r requirements.txt' from test-requirements.

Change-Id: I02b849f6f8cc29dbe3f50e02c588b20a419fb772
Closes-bug: 1528816
2015-12-23 11:55:12 +00:00
Jenkins 616a7490ec Merge "Switch to setup.cfg for package configuration" 2015-12-22 16:03:22 +00:00
Jenkins c1c4bac6a4 Merge "Spec for packages MUST be reviewed by mos packaging team" 2015-12-21 15:08:21 +00:00
Oleg Gelbukh bf0bce758e Switch to setup.cfg for package configuration
Add setup.cfg with appropriate configuration settings.
Add README.rst file with short description of the repo.
Change authorship to OpenStack.
Remove obsolete code from setup.py.

Change-Id: I18347a8564c195bfb80aac772f4f7e18ce510e06
2015-12-21 13:22:34 +00:00
Sergey Kulanov 4334bfe0f2 Spec for packages MUST be reviewed by mos packaging team
Change-Id: Ie38a8900b9c5ba21c20d2ac68177e088db5c86fc
2015-12-20 20:27:28 +00:00
Ondřej Nový 718aa3d702 Deprecated tox -downloadcache option removed
Caching is enabled by default from pip version 6.0

More info:
https://testrun.org/tox/latest/config.html#confval-downloadcache=path
https://pip.pypa.io/en/stable/reference/pip_install/#caching

Change-Id: I11e1f76428e329665d817243618d0a98866fc31b
2015-12-11 23:00:47 +01:00
Maciej Kwiek 1e894e26d4 Replace release.is_deployable with release.state
is_deployable doesn't really give any additional information for a
release, it is removed. To make change API-backward-compatible, it is
retained as a property dependent on release.state.

New state is added - manageonly, for environments that are not able to
be deployed, but can still be managed.

Change-Id: I518a0114730a2f227c9ef035a376f9a90d3d5bbd
Closes-bug: #1503303
DocImpact
2015-10-29 15:08:34 +03:00
Igor Kalnitsky 60d05a99d6 Mаke possible to upgrade Fuel 7.0 to Fuel 8.0
Since we're supporting only one consequent upgrade chain, and current
master is 8.0, let's set 7.0 as previous release and unblock 7.0 -> 8.0
upgrade chain.

Change-Id: I0777ac908af45268760315329d26f4c5ce8c223a
Closes-Bug: #1506380
2015-10-29 15:08:21 +03:00
Maciej Kwiek 97597ebfe9 Upgrade hacking to 0.10 in fuel_upgrade_system
Change-Id: Iae68cd958c568fd43fd693559c4f160cbb30edac
Partial-Bug: #1410810
2015-10-29 15:08:10 +03:00
Bulat Gaifullin e3231e87b7 Check that list of upgraders without duplicates
The list of upgraders specified via command-line should not have duplicates
added test for incompatibility check

Change-Id: I24952a9e64034c3a98adbeae67a3c3a8dd7e1b67
Partial-Bug: #1495454
2015-10-29 15:06:21 +03:00
Bulat Gaifullin 9331d7d775 HostSystemUpgrader is not idempotent - fixed
enable version checker for host-system
remove config of auxiliary-repo before upgrade

Closes-Bug: #1495481
Change-Id: Ifcca5d436ffd87a2f268d86ad80fdb733170c23c
2015-10-29 15:06:09 +03:00
Igor Kalnitsky d1ca6d5f9c Remove new supervisor configs during rollback
We have to clean-up new artifacts in case of rollback and we didn't do
this for new supervisor configs. That's why upgrade fails if there were
some rollback before - we're unable to manage docker containers because
new one are launched automatically when we switched to the new
supervisor folder which is intended to be empty.

Closes-Bug: #1484091

Change-Id: Ic491d04fc3037c748b403fe0964f3fbc8db5769d
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-10-29 15:05:24 +03:00
Alexey Shtokolov fea6a6666a Fix paths to updates and security repositories
According to a new scheme of repos

Change-Id: I1b78a50603cfbb0d2f7b4aba455e31aa861aedd9
Related-Bug: #1482710
2015-10-29 15:05:17 +03:00
Sergey Kraynev a67e758546 Check release is_deployable during upgrade notification
This patch adds check for "is_deployable" flag, which skips creating
notifications for releases with is_deployable equal False.

Change-Id: Id8d0ada07fdb1cfc8c37822ec25cb52608002d24
Closes-Bug: #1477958
2015-10-29 15:05:10 +03:00
Igor Kalnitsky e6dae705a8 Remove new auxiliary repo in case of rollback
Since we're managing auxiliary repo in puppet manifests (creating it)
and we don't have any sort of rollback puppet manifest, we need to
clean-up its artifacts in fuel_upgrade script.

This patch removed all newly created auxiliary repo in case of
rollback.

Depends-On: Iec2645ddbee6b1b6b9e5c2816707b275542ef51b
Closes-Bug: #1480282

Change-Id: If34406dd77aed45f19fa2f352bd23a0302716053
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-10-29 15:05:01 +03:00
Igor Kalnitsky 8bfc5f1c49 Update MAINTAINERS
* Update link to 'Team Structure'
* Add directory node before maintainers
* Add Bulat Gaifullin to the maintainers

Change-Id: I8b012dbf226d36bc8a55e99852764ce1306ea344
2015-10-22 12:16:28 +03:00
Jeremy Stanley 58375bdf71 Update .gitreview for new namespace
Change-Id: I780a024a65a52ba052c22615a0fd657f504ebabb
2015-10-17 22:27:20 +00:00
Alex Schultz a035cf4558 Adding MAINTAINERS to fuel-upgrade
In a consensus reached in a proposal for code review process
change [1], and proposed team structure policy document [2],
adding MAINTAINERS files in repositories.
Please note, that this file is written in YAML format in order
to allow further automation around code review process.

[1] http://lists.openstack.org/pipermail/openstack-dev/2015-August/072406.html
[2] https://review.openstack.org/#/c/225376/1

Change-Id: If492a8fa12d83a6fa256c387d296d48c4cc450d1
Co-Authored-By: Mike Scherbakov <mscherbakov@mirantis.com>
2015-10-09 08:35:50 +02:00
Vladimir Kozhukalov c00f5ed981 Add some infrastructure and executable files
* .gitignore
* .gitreview
* run_tests.sh
* specs/fuel-upgrade.spec
* upgrade.sh

Change-Id: Iebe8905194c353e8194776c4950a18ddd560082a
2015-07-22 18:44:40 +03:00
Jenkins 676acdaa9c Merge "Make sure fuel_agent builds IBP images in a proper directory" 2015-07-20 11:58:44 +00:00
Jenkins ce9d53b285 Merge "Current version changed 6.0 -> 6.1 in upgrade config" 2015-07-15 07:32:41 +00:00
Alexei Sheplyakov 8712ac1fdf Make sure fuel_agent builds IBP images in a proper directory
Use /var/lib/fuel/ibp as the image build directory. This directory
will be backed by a volume in the mcollective container which reduces
IO overhead and makes image build time reasonable.

fuel_agent (which builds Ubuntu images) runs in the mcollective
container. A container filesystem is backed by dm-snapshot which
is known to have a poor write performance, especially for large
files (like OS images). By default docker storage is a loopback file
residing in /var/lib/docker. Thus the data written to the OS image
being built goes through a number of layers:

ext4 -> loop -> dm-snapshot (/var/lib/docker-> loop ->
     -> ext4 (/var/lib/docker) -> dm-linear (os-varlibdocker) ->
     -> hard drive

If the master node runs on a VM rather than a physcial hardware
the above chain gets even more complicated:

ext4 -> loop -> dm-snapshot (/var/lib/docker-> loop ->
     -> ext4 (/var/lib/docker) -> dm-linear (os-varlibdocker) ->
     -> virtual hard drive (qemu) -> qcow2 -> ext4 (host)

Using the volume makes it possible to eliminate the extra layers,
so the written data goes through

ext4 -> loop -> ext4 -> dm-linear (os-var) -> hard drive

Note: this patch can be merged before the ones which actually make
/var/lib/fuel/ibp a host volume (obviously there won't be any
performance gain until fuel-library/fuel-main bits get merged).

Merge-After: https://review.openstack.org/201947
Related-Bug: #1457643
Change-Id: Ic4d258523aa13b3879a730edb2d910522ec24c93
2015-07-15 09:53:43 +03:00
Alexander Kislitsky 9deb31e558 Current version changed 6.0 -> 6.1 in upgrade config
Test for current version added

Change-Id: I626756b3d7c0c4a2826a9193500c896c1d93ca06
Closes-Bug: #1473419
2015-07-14 16:15:43 +03:00
Jenkins d1d8f61f24 Merge "Pass all logging messages as strings" 2015-07-14 10:10:49 +00:00
Sebastian Kalinowski c68e040143 Pin mock to version supporting Python 2.6
Change-Id: Ic4cfd65dc6e7ada2adc847ec4c2b1a1cfcb9627a
Partial-Bug: #1473294
2015-07-10 08:33:07 +02:00
Evgeniy L 79f6ad7071 Correct postgres and cobbler bind mounts
Closes-bug: #1469399
Change-Id: I4925bc16a1787e79cd1e21d819239babfbad516e
2015-06-29 17:43:02 +00:00
Igor Kalnitsky 5937d8c8c5 fuel_upgrade: setup update/security repos
In order to deliver bugfixes and improvements to customers we have to
setup our online repos in case of successful upgrade. These repos
have to be marked with "skip_if_available" flag so yum won't fall
if there's no connectivity to them (e.g. no Internet access).

Closes-Bug: #1466418

Change-Id: I6626ff5e92c53c487f69491c09c3e0bcf022d5d4
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-06-18 14:36:41 +03:00
Ivan Kliuk 1b63f59601 Pass all logging messages as strings
For unification and easier migration to unicode in the future, all messages
  are passed as str object.

Change-Id: I687df762ea450b33aeaca37983694281ffa6f0d4
Closes-bug: #1394170
2015-06-14 15:52:53 +03:00
Maciej Kwiek 458a15df5f Notice about restarting slave nodes after upgrade
Change-Id: I0d4d42526764808e4d081118b35bf9a67eec5841
Closes-Bug: #1459658
2015-05-29 10:47:51 +00:00
Igor Kalnitsky 4b30cad7f8 Backup all data before upgrade and stop supervisor
Unfortunately, we have a puppet run inside containers on each start and
that's cause to the situation when old containers install new packages
on restart. We don't have this issue before because our containers won't
restarted during upgrade process and now they do (because of upgrading
Docker package).

As workaround, we have to:

* backup all data before starting upgrades
* stop supervisor before host system puppet run, so containers won't be
  restarted and hence won't install new packages

Still, it's hackish.. but I don't know better solution now :(

Closes-Bug: #1455419

Change-Id: I9522ab561718473873faa0f38c4cb34c3bee64b9
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-05-16 10:13:53 +03:00
Jenkins da70421128 Merge "Rename fuel-release to fuel in fuel_upgrade" 2015-05-13 13:03:13 +00:00
Igor Kalnitsky 4993a27ce7 Run HostSystem's rollback before others
We have to run HostSystem's rollback before others, because its result
may affect other upgraders. For example, if we don't remove new CentOS
repo from the master node the old containers may use it and puppet
inside will install latest available packages. In some cases, that may
lead to the fact when Fuel won't work after rollback at all because of
broken strict dependencies.

Closes-Bug: #1452378

Change-Id: Ia17838b84909e5bd0edc7570ea4e0ebb21d94746
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-05-07 16:39:28 +03:00
Matthew Mosesohn 8a46b26652 Rename fuel-release to fuel in fuel_upgrade
blueprint package-fuel-components
Depends-On: Iacdb9886fd8fa9db130e9ea135f6ecf1e59c7a46

Change-Id: I749604b0fb725cf0bef666cc31bb967714dc780e
2015-05-07 14:09:11 +03:00
Igor Kalnitsky 519ab6f3f3 Add re-tries to Nailgun client
Sometimes, uWSGI may be shutdown for a while because of various reasons
and we should retry our requests to Nailgun and do not fall immediately.

For example, our service checker may report success to early after
Docker upgrades, because Nailgun's puppet run supervisor for a short
time (checkers get it and reports success), then start.sh stops it
(http requests to Nailgun will fail) and runs supervisor as daemon.

Closes-Bug: #1451888

Change-Id: I0e65c346181e6d5d9b17471b02561afa5abbb871
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-05-07 12:12:37 +03:00
Igor Kalnitsky a1ffec9df5 Change version.yaml link in UpgradeManager
We have to change version.yaml link before starting upgrade process,
because it might be used by different upgraders. For instance, we used
to manipulate this link in Docker Upgrader, but recently Host Upgrader
has been started rely on the values of new version.yaml too.

Closes-Bug: 1446075

Change-Id: Ic68f19c7f6bb68a04fb5cc457dae7f92c1faacf2
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-04-28 11:14:25 +00:00
Igor Kalnitsky 73c31b975e Install repos in HostSystem upgrader
Currently, the OpenStack upgrader copies repos to '/var/www/nailgun',
but before copying it checks whether they are installed or not and if
they do - removes them in order to make clear installation.

That cause issues when HostSystem upgrader creates 'Auxiliary' repos
and then OpenStack upgrader removes them as a part of repos
installation. In order to prevent that smeared logic about repos
installation, let's move it all to HostSystem upgrader.

Required-For: Ic68f19c7f6bb68a04fb5cc457dae7f92c1faacf2
Related-Bug: #1446075

Change-Id: I56e64e44786bcf08f83fc62ff59af747192e2470
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-04-28 11:38:30 +03:00
Igor Kalnitsky 58dbedf4f3 Set fixed version in containers' supervisor confs
Currently, containers' supervisor configs don't have the Fuel version
in the command line. It means that when supervisor tries to start a
container its version retrieved on fly from the '/etc/fuel/version.yaml'.
Since Fuel 6.1, the '/etc/fuel/version.yaml` has to be new, because
otherwise the 'host-upgrade.pp' will use incorrect current version.
Unfortunately, if '/etc/fuel/version.yaml' is new and the puppet
upgrades Docker package, the Docker containers will be stopped and
they won't up again because 'detecting container version on fly' will
give us wrong result (e.g. 6.1 instead of 6.0). So, the only thing
we can do is to set fixed container version in supervisor's configs,
so it won't rely on current state of '/etc/fuel/version.yaml'.

Required-For: Ic68f19c7f6bb68a04fb5cc457dae7f92c1faacf2
Related-Bug: #1446075

Change-Id: I1a32827952fcfbe705f37f46df3e80f6c4dc8bb3
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-04-24 14:38:41 +03:00
Igor Kalnitsky dbb9b9f384 fuel_upgrade: install rpm packages with fuel 6.1
We don't need to install bootstrap images, provisioning images and new
puppet manifests, because we have them packaged now. Since now, the
fuel_upgrade is supposed to install the "fuel-release" package, run
puppet and create new Docker containers.

Depends-On: I417f8e9495e7dc8b22fc33b3c88408b879abaec2
Implements: blueprint package-fuel-components

Change-Id: I379749673c67c459c7070d986094ec6236d7ca6e
Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>
2015-04-20 19:21:16 +03:00
Igor Kalnitsky de04ee015c Change docker upgrade steps
We used to have an 'error-prone' approach of making Docker upgrades,
and in really rare cases we had an old container in 'running' state
instead of new one.

Here's the steps when issue occurs:

* One container isn't running due to some reason (for instance, it
  failed). The supervisor scheduled to start it again soon.
* The fuel_upgrade script stops supervisor's processes. They will be
  stopped and won't be started again by supervisor (even if they have
  autostart=true setting).
* The container, which wasn't run by the time we was stopping them,
  is untouched. It's still scheduled to be running soon.
* The fuel_upgrade script stops Docker containers, but one of them
  will be starting again and again because of that working supervisor
  process.

In order to avoid this situation, we have to do the following things:

* Point supervisor to new config folder (which is empty by now).
* Restart supervisor, so it forget old configs and will use no of them.
* Upload images and create new containers.
* Generate new supervisor configs and restart supervisor in order to
  apply them (supervisor's processes will be attached automatically
  to running docker containers).

Signed-off-by: Igor Kalnitsky <igor@kalnitsky.org>

Change-Id: Ibc133b4471878efeffeb232192b4540d26401fae
Closes-Bug: #1441693
2015-04-15 11:39:37 +03:00
Igor Kalnitsky 474cba9db5 fuel_upgrade: patch 'dhcrelay_monitor' wrapper
Since Fuel 6.1 we're using docker with host networking, so we don't
require 'dhcrelay' anymore. Still, if something goes wrong and rollback
was performed, we need to launch dhcrelay again. In order to do it
properly, we need to get cobbler container's ip address, but
we don't have hooks in 'dockerctl' anymore. So we have to inject
this hook directly into 'dhcrelay_monitor' wrapper.

Change-Id: I7ee2f65e584c4c2dae757a4a301fa34879656400
Closes-Bug: #1422787
2015-04-03 18:20:16 +03:00
Jenkins b16078912a Merge "fuel_upgrade: inject dhcp_gateway into astute.yaml" 2015-04-01 09:58:22 +00:00
Igor Kalnitsky 47ee3e2fe3 Remove 'diff-based' repos support
In Fuel 6.1 we don't support diff-based repos. Moreover the whole
system was removed from the build system. Anyway, if one day we add
it back it definitely will require another implementation.

Related: blueprint consume-external-ubuntu
Related: blueprint separate-mos-from-linux

Change-Id: Ie40ad6c89ed07438db0cda518cd6de017c5c2905
2015-03-30 18:17:22 +03:00
Igor Kalnitsky 03c4c1ed8e Upload Docker images from fuel-images.tar
Since the patch I62abc07e79847b5c69eaa1a983575b214ebed649 we have a new
format of 'fuel-images.tar.lrz' artifact, so now it doesn't contain
images per container. Hence, we have to change the fuel_upgrade script
in order to fit these changes.

Basically it means that the script have to load just one file with all
images - fuel-images.tar.

Closes-Bug:  #1430221
Closes-Bug:  #1435314
Related-Bug: #1336911

Depends on: I15f5bf771cb95504791a55a02e412a40f330ecd9
Change-Id: I7f5bad9315edffe6f4e1feb29c471fb7a5bfd22a
2015-03-30 18:08:59 +03:00