Latest Ceph stable version is Quincy. This patch set
sets Quincy as default for the cephadm deploy.
This change won't have an impact in the script being
currently used in our CI.
Change-Id: I2d87ec0e93853cd0852944b30a87f6127f491550
The configuration that we are using by default that
sets pg_num and pgp_num values in bootstrap_ceph
breaks devstack-plugin-ceph when using the latest Ceph version (quincy).
This patch sets removes the config for pg_num and pgp_num,
so we delegate to Ceph the pools autoscaling.
Closes-Bug: #1983107
Change-Id: Iecd949ef2258ae8a6ded596219bb993aeff20de5
Add the option to deploy the Ceph cluster
with the cephadm tool.
Depends-On: I799521f008123b8e42b2021c1c11d374b834bec3
Co-Authored-By: Francesco Pantano <fpantano@redhat.com>
Change-Id: Id2a704b136b9e47b7b88ef586282cb5d0f754cf1
This patch adds a new VAR for when the user wants to set the minimum
client version used in a Manila/Glance/Nova/Cinder test job in addition
to using devstack.
A new configuration option, CEPH_MIN_ CLIENT _VERSION, has been
introduced to specify a Ceph-minium client version that allows proper
handling when deleting images and snapshots with dependencies, etc. The
default value is null.
Co-Author-By: Sofia Enriquez <lsofia.enriquez@gmail.com>
Change-Id: Id8e581893ee4b373b268acc7c59b670985cedc2f
Recently cinder has utilized clone v2 support of Ceph for its
RBD backend, since then if you attempt to delete an image from
glance that has a dependent volume, all future uses of that
image will fail in error state. Despite the fact that image
itself is still inside of Ceph/Glance. This issue is reproducible
if you are using ceph client version greater than 'luminous'
To resolve this issue glance RBD driver now checks whether original
image has any dependency before deleting/removing it's snapshot and
returns 409 response if it has any dependency. To check this
dependency glance osd needs 'read' access to cinder and nova
side RBD pool.
This change allows glance keyring/osd a read access on cinder and nova
side RBD pool.
Related-Bug: #1954883
Change-Id: I2e6221e6de23920998bb5f32b2323704b3c89f74
this change ensure that python3-logutils is removed so that
that it can be installed by pip later.
Before today in passing build, there were no python3-logutils pulled by neutron deps so
it was not installed or tried to uninstall so all good
- https://zuul.openstack.org/build/590c5996ca1b402486bfe1c7e1d08535/log/job-output.txt
But from today (10th Dec), python3-logutils pulled by neutron deps and failure started
- https://zuul.opendev.org/t/openstack/build/722c6caf8e454849b897a43bcf617dd2/log/job-output.txt#9419
The root cause of why this issue started happening today is not known. May be its
pecan===1.4.1 ? I8ee467bbb363f428a005f92554812bfdae95881a making it install but there
is no change for logutils as deps in pecan previous version 1.3.3 also[1]). Or it may
be cpeh/ubuntu packaging.
But it is clear that python3-logutils is coming from somewhere and causing gate blocker
in Nova gate, let's remove it and later we can find the root cause if anyone need this
package for their ceph job.
[1] https://github.com/pecan/pecan/blob/1.3.3/requirements.txt#L5
Closes-bug: #1954427
Change-Id: Icb63649b252fd6eb229adeae454b5ec3c6b79cad
Few URLs from some ganesha repositories were not corresponding
to actual valid URLs, where packages could be searched in
the repository.
These broken URLs have now been fixed.
Change-Id: If27b488cfec29731b74e7db774c4811b0e34c14e
When we deploy devstack, we need to initialize the RBD pool.
Not doing so means that functionality like rbd trash purge
scheduling will not work correctly.
Ref: https://docs.ceph.com/en/latest/start/quick-rbd/
Change-Id: I5b0b3b83fb7ef805929fdcd106a5c8a988b05ec4
Seems a trace from older code. It doesn't make
much sense to allow all Fedora versions that
matches f[0-9][0-9] and then check for specific
Fedora versions in the following lines.
Remove this check and just allow some specific
versions
Change-Id: Ie14a453f96689f574f1b388ab8f6e5467a59b7f7
This will change the version of Ceph from Octopus to Pacific and,
with it, the version of Ganesha from v3.3 to v3.5 which is the
version shipped into the Ceph Pacific container.
Change-Id: I1b31ef9dd13e1d56284f8d9f8be03e3fee0eb0a7
This changeset adds a config option (TEST_MASTER)
to toggle testing with the current Ceph master.
The builds are retrieved from Shaman, which is the
platform used by the Ceph community to submit their
latest builds.
The main goal of this change is to use this on our CI
and be able to catch bugs in OpenStack services that use
Ceph as a backend more quickly. Because of this, the
required non-voting job is also added.
Change-Id: Ibe26f89e7be3061cdb7acb441727efb2c396e29e
In some jobs, we run tests that use "rbd map".
On older kernels, this will not work if newer
RBD features are used. (Specifically, fast-diff
on bionic.)
On older distros, enable fewer features by default.
Closes-Bug: #1921897
Change-Id: Iff1c5210b0279379eb9612b206bdf456dd6f132e
This change stops configure_ceph_nova from creating the vms pool when
CEPH_REMOTE=true as this suggests that it has already been created by
the controller that has CEPH_REMOTE=false set.
Change-Id: Iaad67025a23bf29e29011c6e78662692af2b564a
The typical Cinder deployment should have
more than just "layering" enabled.
Enable fast-diff, which requires exclusive-lock
and object-map.
Previously, there was code that tried to enable
exclusive-lock when CEPH_ISCSI is enabled, but this
code would not work reliably, since it was doing
addition instead of bitwise-or. Just remove it
since exclusive-lock will be enabled by default.
Change-Id: Idad98cfebf5e3b265316f2b6a3c201b472faa32c
Consume packages from download.ceph.com for ceph octopus
Our focal fossa based CI jobs are getting octopus from
ubuntu ppas instead of getting the packages from
download.ceph.com.
This happens because, even though we were defaulting to
nautilus, ubuntu got the later version available
(in this case, the packages in ubuntu ppas).
Also, remove CEPH_STABLE_RELEASE env var, unify to CEPH_RELEASE
Stable branches CI versioning is done in the jobs definition now
Change-Id: I1edd5a50079f325fa143a7e0d51b3aa3bb5ed45d
Having debug_ms enabled populates logs with too much
information. This makes it harder to debug in most cases.
Disable by default.
Change-Id: If180f9be42e95492ab457420e48a494fd2689e6e
Add a glob pattern at the end of the file removals so that we
also capture items like
nfs-ganesha-ubuntu-libntirpc-3_0-focal.list.save
which can otherwise cause issues next time we stack
(install_prereqs sees it and gets confused).
Change-Id: I6bb75a75972c47fa87f0d703dda242d2b9bb07b7
When working locally it is nice to be able to
run unstack.sh and not have too much extra stuff
to clean up by hand before running stack.sh again.
So clean up CEPH_DATA_DIR, contenta and mounts.
Also fix a spot where '/var/lib/ceph' (the default
value for CEPH_DATA_DIR) was hard-coded.
Change-Id: I43ff06ca38f42ea4305b2c862902bf6f612e32f0
We are using NFS Ganesha 2.7 which is not longer supported
by the Ganesha community. Let's use v3.0 instead.
Closes-Bug: #1898952
Change-Id: I69543fd33c98817bba76c6712ae91264c532c12c
Disable caching done by ganesha when ganesha
is used as CephFS's gateway (manila's usecase)
This is the recommended Ganesha setting as libcephfs
already caches information. Doing so helps avoid
cache incoherency issues.
Change-Id: Iacd575ac61b39ab9dcf8814514b5e3267570a17f
Closes-Bug: #1898950
We create a disk image during setup, which now gets persisted in
/etc/fstab across boots. Clean that up when we're instructed to
do a clean operation.
Depends-On: https://review.opendev.org/#/c/743007/
Change-Id: I54a6b637266c2f182eeece8942156b07581a7f0b
I'm not sure why this isn't failing in the gate, but locally I get
100% fail if I don't add the release key before the apt-add-
repository. This seems to be a change in focal as it worked fine
for me before upgrade.
This moves the key fetch/add before the repo.
Change-Id: I50d840986d630af033a7a3e47bb1e9c52e889791
This isn't required with dnf and can overwrite package downgrades
working around other issues in the underlying OS.
Change-Id: I6940f06c14a0e41d63d632724e85bb790229f307
As Fedora 32 has dropped py2 support we need to switch over to the py3
based el8 RPMs now. Fedora 31 can support both allowing us to switch
while still technically supporting it.
Change-Id: I79f61d61ccb044b6c24b5747b991045edf25679e
I0eab8ad25112511b0c4dd4b7796b4cda821bca8b incorrectly attempted to write
directly to the /etc/repos.d/ directory as the stack user. This isn't
possible even with sudo so use the config-manager command to import
locally written files as the stack user.
Additionally ensure there is no whitespace at the start of each line
within the files.
Change-Id: I2fbc3b7c7df90328954eb4dcee921bd2ae9b2706
Shaman packages are not stable and generates
breakages in our gates quite frequently.
Use packages available in download.ceph.com instead.
Change-Id: I0eab8ad25112511b0c4dd4b7796b4cda821bca8b
We seem to have been requesting the latest build from the Shaman API
provided by Ceph however we did not filter the status to be 'ready'
which meant that we sometimes got 'building' status repositories that
cause the jobs to fail.
This should stabilize jobs a lot more by using only the ready
repositories.
Change-Id: Iff47bbe4954da3ab582a007ba04b3df50ae21cd4
It looks like the default bluestore that came with nautilus
is limiting us to a for-testing size of 10G regardless of what the
actual ceph volume is supposed to be. Try setting it to the size
we want (minus some room for overhead).
Closes-Bug: #1888895
Change-Id: I4e5233df826af6eeddc4e77820958909d4fe7d45
Limit ceph iscsi ubuntu support only to Focal. As only Focal has the
required packages and we don't want to install ceph-iscsi from master
source code which is changing all the way is not a good way for CI.
Remove api_host setting, let it be ceph iscsi default setting "::"[1],
Which references to ceph-ansible configuration[2]. This makes
rbd-target-api accessible for both localhost(gwcli) and HOST_IP.
Otherwise iscsi gateway creation will fail in newer version
ceph-iscsi[3].
Change minimum-gateways default to 1 for newer version ceph-iscsi,
otherwise client creation will fail on all-in-one setup[4].
Fix gateway creation failure with error:
"The first gateway defined must be the local machine"
Ceph-iscsi requires gateway name to be FQDN, sometimes hostname is not
the same as FQDN.
Fix stop_ceph_iscsi run twice.
Remove setup_packages_for_iscsi as openstack won't support projects that
require packages installed with git clone.
[1]: https://github.com/ceph/ceph-iscsi/blob/master/ceph_iscsi_config/gateway_setting.py#L174
[2]: https://github.com/ceph/ceph-ansible/blob/master/roles/ceph-iscsi-gw/templates/iscsi-gateway.cfg.j2
[3]: https://github.com/ceph/ceph-iscsi/issues/193
[4]: https://github.com/ceph/ceph-iscsi/issues/195
Change-Id: I215b870c66cc27f10f8a6bf18d93feda477a3970
The use of apt to refresh repos is discouraged and prints the following
warning when used:
WARNING: apt does not have a stable CLI interface. Use with caution in scripts
The use of apt also appears to break on our Xenial based branches where
we enable the Xenial Queens Ubuntu Cloud Archive repos that are
unsigned. When using apt to refresh these repos apt returns a failure,
while apt-get only returns a warning.
This change simply switches to apt-get to avoid the above warning and to
allow the older Xenial based stable branches to continue to work.
Change-Id: Ic534a47fff17d36eb1ef128ad6af70a34ed942c9
We were using Jewel/Luminous. Being a developer tool, we should
be sticking with newer versions.
This patch set also adds the following changes
- Refactor setup_packages_for_manila_on_<distro> functions
- Removes ceph_init call. Seems it lost relevance
- Removes APT repositories setup. We directly use shaman/chacra
packages directly
- Removes RUN_AS env var. It has been a while since Ceph
defaults to ceph user to run all the services. No longer needed.
- Removes sleep calls for services start checks. We use systemctl
checks.
- Adds more debugging logs
- Uses the search API from ceph shaman instead of hardwiring urls
- Adds the jq (JSON processor) dependency
Change-Id: I51c90e592070b99422e692d5e9e97083d93146e8
Implement an old TODO item, but in the other way: instead of
enabling the feature on certain branches, disable it on the old
branches (anything still open - even EM - before queens)
and rely on the default value (True) otherwise.
Change-Id: Id5dedf496b355362031deefab1573d052fc72a66
Add an extra check to verify that ceph-mon service has started
before trying to retrieve its version.
An already existing function is being used, wait_for_daemon
Since we now guarantee that we are using systemctl, we can use
the is-active feature. If the service is running, the exit code
will be 0.
Also, change the command used to get the mon version. We can use
the ceph version command provided by the new cli instead of using
ceph daemon command which requires more privileges.
Change-Id: I2d4f23721107c4b5cb1c09719c55424eecd0c880
Closes-Bug: #1872855
Upstart is not being used anymore (last release was Sept 2014)
Doesn't make sense to keep bits for this
Make this plugin compatible only with distros with systemctl
Change-Id: I4fd533985d5bce3e0513c46558763629fb1539fc
Closes-Bug: #1874457
In change I43de36ab570af40bc837d859568f5428c167f083, we started
installing the 'python3-' variants of the 'python-' packages installed
by the 'ceph-common' package in 'install_ceph_remote'. In that change,
we made the assertion that we didn't need to "both hiding this behind
the 'python3_enabled' function or 'USE_PYTHON3' variable since (a) these
packages can happily coexist, (b) projects should be switching to Python
3 now, and (c) using these would require sourcing additional, otherwise
unnecessary devstack libraries just to use this simple function".
However, this didn't take into account the fact that this plugin is not
versioned. This means *any* job that uses this plugin, including things
like stable/pike, will now attempt to install the 'python3-' packages.
Since the base OS on stable/pike, Xenial (16.04), doesn't actually
provide these 'python3-' variants, the command will always fail.
Start hiding the command behind a 'use_python3' function call. Hopefully
by time we drop Python 2 support here we won't have maintained branches
using Xenial. If we do, we'll need to branch or something like that.
Change-Id: I890a1e673fde212218eff4fcf82f7941b3283e5f
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
Closes-Bug: #1853280