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
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
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
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
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
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
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
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
The list of upgraders specified via command-line should not have duplicates
added test for incompatibility check
Change-Id: I24952a9e64034c3a98adbeae67a3c3a8dd7e1b67
Partial-Bug: #1495454
enable version checker for host-system
remove config of auxiliary-repo before upgrade
Closes-Bug: #1495481
Change-Id: Ifcca5d436ffd87a2f268d86ad80fdb733170c23c
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>
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
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>
* Update link to 'Team Structure'
* Add directory node before maintainers
* Add Bulat Gaifullin to the maintainers
Change-Id: I8b012dbf226d36bc8a55e99852764ce1306ea344
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>
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
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>
For unification and easier migration to unicode in the future, all messages
are passed as str object.
Change-Id: I687df762ea450b33aeaca37983694281ffa6f0d4
Closes-bug: #1394170
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>
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>
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>
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>
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>
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>
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>
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
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
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
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