Nova recently introduced an issue that breaks FFU due to requiring
new compute service records to be recorded before control services are
allowed to start. However the former depends on the latter, which
creates an unsatisfiable circular dependency. Since this has been
both released and backported, Nova introduced a workaround config flag
specifically to get out of that loop, which we set here if needed.
Related-Bug: #1958883
Change-Id: If4820dd4ec7e05ade6eb4a82a328797102704570
Depends-On: https://review.opendev.org/c/openstack/nova/+/826097
When GRENADE_USE_EXTERNAL_DEVSTACK is set to True,
the initial steps performed by grenade are skipped, namely:
- grabbing and configuring the base and the target devstacks;
- running devstacks on the base target.
This change is required to allow a native Zuul v3 job to use
the existing workflow to setup and run devstack.
Change-Id: I232db8de05141849c81851dd29440959cb0d8533
BASE_RELEASE and TARGET_RELEASE var are used for respective dir and
correct value for them is 'old' and 'new' which are nothing but the
dire for base and target devstack.
Also correct the default valeu for BASE_DEVSTACK_BRANCH which will be
updated on every cycle.
Change-Id: Ia2b50f3e48921f81fe12cd94347e1363b29681ea
This is a mechanically generated change to replace openstack.org
git:// URLs with https:// equivalents.
This is in aid of a planned future move of the git hosting
infrastructure to a self-hosted instance of gitea (https://gitea.io),
which does not support the git wire protocol at this stage.
This update should result in no functional change.
For more information see the thread at
http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003825.html
Change-Id: I53dcfcb704a6dbdc8772d275001475bc0b1ecf26
When grenade.sh is invoked by devstack-gate, PYTHON3_VERSION
is not set so grenadrc defaults it to 3.5, which breaks grenade
on nodes where python 3.5 does not exist, such as ubuntu bionic.
One solution is to set PYTHON3_VERSION in devstack-gate [1].
Alternatively, this change uses a bit of code borrowed from
stackrc in devstack to determine the version of python
within grenade if it was not set by the caller.
Closes-bug: #1812208
[1] https://review.openstack.org/#/c/607379/
Change-Id: I0349de2026c49279ba7f262d5e86d37018d66326
When the fetch_devstacks function runs as part of grenade.sh
it tries to install devstack tools. As part of the devstack tools
installation, python3 gets installed through a function called
install_python3 which uses a function called is_ubuntu to
determine if the system is ubuntu. However this is_ubuntu
function is not available at that moment, so the script fails.
This commit sources functions-common from the devstack directory
which includes is_ubuntu so the grenade.sh script does not break.
Change-Id: I92b9f731e99df0840be296bfa8ce6a70e02a1f91
Closes-bug: 1659081
A user can set ERROR_ON_CLONE to yes (true) to fail a run if a git
clone fails. This patch will document that behavior in grenaderc
and set the flag to its default value of no (unless a user overrides).
Change-Id: I1b1f80b00b4a4838ef10241306d9190520a93701
Note that this is actually only required when going from mitaka->newton,
but in order to land things very early in newton, we need this to be
run. Since it's valid in mitaka too, we can go ahead and land it there,
and then copy or move it to from-mitaka later.
Change-Id: Ibc02acc60b1023039f2613f8949b95d55169fd30
This allows us to set SERVICE_TIMEOUT per job to handle services which
might take longer to stop / start. We'll default to 30 as a reasonably
safe value.
Change-Id: I306a9ddfb957a947915eecc2d3121a15909f54d3
Allowing DEVSTACK_DIRS to be overridden lets the run_resources.sh
script work outside of grenade. This is needed for the -d option added
in the last patch to actually do something useful.
Change-Id: Ic56e300a0ab1872e4cef37a22dd09cd4a8dd1e92
This opens up liberty development by adjusting the branches for kilo,
will not pass until devstack is branched.
Change-Id: I1c2ad1bf192bf1c7191aace1d2f5c89aa077f39a
This provides the infrastructure for modular resource checking, as
well as an example implementation for keystone.
The infrastructure includes:
- the resource script dispatcher, including the ability to disable
using it all together via config.
- resource_save / resource_get scripts for our grenadedb registry
(wrapper on ini files, but abstracted so we could do something
different in the future)
- keystone resource script.
Change-Id: I8666a96a817cfc333e50eed3b9aeffa5ac4aeec6
This is a smorgasbord cleanup patch which does the following:
- moves all the inline function definitions in grenade.sh out to
either bootstrap or upgrade libraries.
- gets rid of grenaderc.settings, this is handled by modular shutdown
/ upgrade service checking.
- consolidates all settings into grenaderc
- removes all variables that were extraneous, and came from very very
early history of grenade.
- Documents the current flow and assumptions in grenade.sh as much as
possible.
Change-Id: I3d2fa30240247690e3f45dcb0be93672808914f6
change the sourcing of localrc to allow GIT_BASE to be
overridden. This makes it possible to use local mirrors for
development.
Change-Id: Ia7cc550c83d847166e10b66e401485081ac7b758
This moves all the project specific upgrade code into project specific
directories. This forshadows how we might break out this code into
external plugins. It happens all at once to keep a working grenade
environment on both sides of this change.
Change-Id: If47395c796bdb0ae2b8fe65bfe4b4556a6487c7a
This refactor's the grenade code to remove the copy/pasted
functions-common from devstack and instead use the functions from
TARGET_DEVSTACK. In order to accomplish this we need to refactor when
the devstack trees are pulled, so that we always pull both the base
and target devstack trees *extremely* early.
We also need to include a small number of functions (mostly related to
git) in grenade to be able to bootstrap these trees. This is done in
the inc/bootstrap tree.
There are some slightly unrelated function moves into inc/upgrade to
consolidate all the upgrade functions which were scattered through the
codebase for clarity. inc/* will be the contract library interfaces
out of grenade (mirroring devstack).
To do this grenaderc has to be split between variables which can be
set without devstack functions, and variables we compute later. These
later variables will be moved into project specific directories based
on the plugin plan.
Change-Id: I1a2d1a1fed7858c4f3b51a19be2d12cc2d260a24
Introduce variable that is a list of projects to upgrade, this becomes
a setting that can be overridden by out of tree projects.
Change-Id: I84be46fcdc544c61e09bc5e1238f54f53a63d893
Moves checks of DO_NOT_UPGRADE_SERVICES to a function, and
uses it to also setup for partial Ironic upgrades, where we
upgrade the entire cloud except for ironic-api and ironic-condcutor.
This also ends up adding ironic to services that are acted upon
in check-sanity and stop-base.
Change-Id: I392b41d956bc1b0c0eb8383f0eaad9b0c5461760
First step in doing Juno to Kilo upgrades with Grenade is setting the
new base and target branches. Note this should come after both devstack
and grenade have stable/juno branches.
Change-Id: I0a7c8b3273b25e9fe457d7073046ad8a7ee3f70a
Currently, only TARGET_RUN_SMOKE is allowed to be overridden
by the user/gate while BASE_RUN_SMOKE is ignored if set via
localrc. This updates grenaderc and matches the expected defaults
and overrides.
Change-Id: I3e74e53e697c4774a24ec86a1698072705509c06
grenade was using all the cores for tempest tests, not just the
number we typically use in the gate. Now that everything is 8 way
in the gate this means a lot more failures.
This allows us to set this down from devstack-gate. If not set,
we default to nproc value.
Change-Id: Ieea93dcbb973ca8ff872bf509324db284538d0b5
make nova rolling upgrade use base release
instead of hard coding this, always use the base release value.
This will let us roll forward gracefully in the future.
Related-Bug: #1309324
Change-Id: If9417e65c7c54d017c4c847a4020f855684c423c
As of writing this commit message icehouse has yet to be released so
stable/icehouse doesn't exist. So make the default values the same as
how we use grenade in gate.
Change-Id: I6102c67b6c0021ccd9d7ec540cc1510491f88eb2
Add space at end of TARGET_SERVICES, so when we append services to it
the first two don't get concatenated together.
Change-Id: Iac7025eb70f35746534029dc4bb174f265988416
swift-proxy likes to not shut down during grenade runs, and the
failure case just means all our tests take forever timing out on
trying to connect to it over glance.
put in a few more checks about whether the services are in the
right states.
Change-Id: Iedfd91cdded632f7f3a2b5f127c2901f8762adaa
Add rolling upgrade test for nova-compute. Nova wants to support the ability
to run stable/havana nova-compute with icehouse everything else. This sets
up a test for that.
When $DO_NOT_UPGRADE_SERVICES contains "n-cpu", the final environment
will be trunk everything except havana nova-compute. Although
$DO_NOT_UPGRADE_SERVICES takes a list of services other parts of grenade
have to be fixed to support values besides "n-cpu", but a list is used
because in the future we want to support adding other values to this
list.
Change-Id: Ifb733ee2fe0c5bba61b43ae19dca7040c12f7893
Smoke and Scenarios tests can offer a better coverage and also it's good to
centralize all tests in tempest.
Change-Id: Iacb60ab011d2c7d90885b339b3c8454bd3de8219
Partial-bug: #1023131
Instead of cloning from github, which ratelimits use our own
official git.openstack.org mirrors.
This change doesn't affect the gate as the images are pre-populated.
Change-Id: Ic12fbace0d54f7c624140410e2a2c1f5f8264d47
since ./stack.sh is called as a binary, $GIT_BASE needs to be passed in
to override devstack's default GIT_BASE.
And add comment about git.openstack.org
Change-Id: I55482a387fe54235baba90e7b83837f7cb5b4bc6
Any new configurations for Icehouse should go in one of the upgrade files in
from-havana directory.
Also moves {BASE,TARGET}_RELEASE vars forward to Havana->Icehouse pair.
Change-Id: Iac520a8de4c3b9f14e2289cfb9b6a50c4ab0ce32
to make grenade work like havana master we need to bring in infra
and oslo repositories from upstream git and apply global
requirements to all the repositories.
Update functions file from devstack.
Attempt to uninstall oslo.config first, to deal with weird pip
issues where 1.1.1 is still installed, but 1.2.x from git is in
the easy repo files, and nova-manage explodes.
Change-Id: I310d40a0adc9355eea91e79598bf867ad6818b79
Both target and base exercises will run according to the value
set by RUN_EXERCISES. For the gate job, we need the target
exercises to run out of the grenade.sh script.
This patch also defaults the smoke tests to False. They
will also be triggered by the gate scripts.
Blueprint nightly-upgrade-testing
Change-Id: I325d025cec6bacfa2bd7f3b48bed4a4abdacef76
After running exercises, grenade may run tempest
smoke tests if chosen (default is true)
Implements: bp nightly-upgrade-testing
Change-Id: I3316f0cf1d8437d25564e2e93ae1a4aa9bd8bf76
* change BASE_RELEASE and TARGET_RELEASE in grenaderc
* remove work-arounds from devstack.localrc.target
* remove upgrade steps from the upgrade-* scripts
* change references to release names in variables to BASE_ and TARGET_
* remove Javelin check from check-sanity, will return in verify-javelin
in https://review.openstack.org/#/c/26257/
Fixes bug 1175340
Change-Id: If1523c73ebefeaf3d3e3efdfbc053f47365d123a
After we supposedly shut down Folsom, actually check that it's all
the way down.
After we start grizzly, before we do anything, make sure that the
services look up, and the final vm that should have survived, did.
Change-Id: I13159c84444c3b3e9744acac7110b5cbd5ff9233
This commit adds support for tempest to grenade.sh. Tempest is
cloned and configured for both the base and target sections.
Change-Id: I79d1871724eac1ecf010a61222d4ce0d60529a13
This is to avoid confusion with DevStack's DEST which is set to
${STACK_ROOT}/$BASE_RELEASE in Grenade.
Change-Id: Ibc9b94bd51e7d5dd82ec45f23557923d2f38db96