Kefu Chai [Fri, 28 Jun 2019 03:07:22 +0000 (11:07 +0800)]
scripts/build_utils.sh: only use GCC-9 for building crimson
using GCC-9 for building mimic and other stable releases has following
consequences:
* it brings runtime dependencies of libstdc++ runtime shipped along with
GCC-9
* GCC-9 is more picky, so some 3rd party libraries fail to build due to
-Werror.
let's continue using GCC-8 on bionic when building non-crimson flavors
Since tox.ini file has been split, this is needed to be able to run the
individual scenario testing. Those parameters are used to build the job
name passed to start_tox() function.
/usr/lib/gcc/x86_64-linux-gnu/9/libgcc_eh.a(unwind-dw2.o): In function
`_Unwind_RaiseException':
(.text+0x24b0): multiple definition of `_Unwind_RaiseException'
../../../lib/libseastar.a(exception_hacks.cc.o):./obj-x86_64-linux-gnu/src/seastar/./src/seastar/include/seastar/core/future.hh:738:
first defined here
collect2: error: ld returned 1 exit status
src/test/crimson/CMakeFiles/unittest_seastar_lru.dir/build.make:140:
recipe for target 'bin/unittest_seastar_lru' failed
Kefu Chai [Fri, 7 Jun 2019 15:31:05 +0000 (23:31 +0800)]
scripts/build_utils.sh: install GCC-9 on bionic
GCC-8 is good enough for build Ceph. but we are trying to focus on
1 year later's mainstream toolchain, and only the PPA of
"ubuntu-toolchain-r" offers GCC-9 for bionic, so let's just use GCC-9
for building all flavors on bionic. simpler this way.
Kefu Chai [Fri, 7 Jun 2019 15:08:53 +0000 (23:08 +0800)]
ceph-dev-new*: build "crimson" flavor for octopus and master
* add "crimson" as another flavor
* build "default", "notcmalloc" flavors for branches whose name
match jewel, kraken, luminous, mimic, nautilus
* build "default", "notcmalloc" and "crimson" flavors for branches whose name
does not match any of jewel, kraken, luminous, mimic, nautilus.
and build "crimson" on bionic only, because the "ubuntu-toolchain-r"
PPA offers GCC-9, which is the latest GCC release at the time of
writing. we want to target the mainstream hardware and toolchain
available at least 1 year later. by then, GCC-9 will be available
in most distros. and hopefully, it will be included by the
devtoolset-9.
Kefu Chai [Fri, 7 Jun 2019 14:10:45 +0000 (22:10 +0800)]
ceph-dev-new-setup: add "crimson" flavor
currently, we have two flavors for ceph builds
1. "default", which is, well, the default build.
2. "notcmalloc" -- "no tcmalloc", originally, it was only for applease
valgrind. but now, it is more like a Debug build, which is less
performant, but it is compiled with some facilities enabled to help
debugging.
as crimson is not yet production ready, a new flavor is added in this
change -- "crimson". this flavor is built only for testing crimson
in sepia nodes.
ceph-ansible: improve collect ceph config file and logs
let's collect these files in one task instead of two tasks.
By the way, it will avoid undesired failures regarding ceph config files
which don't exist (it first tried ceph.conf > test.conf >
mycluster.conf)
we stopped to use OVH nodes because of an old ceph-disk race condition.
Since ceph-disk isn't present anymore as of nautilus, let's use ovh
nodes again.
Dimitri Savineau [Thu, 30 May 2019 14:52:01 +0000 (10:52 -0400)]
ceph-ansible: Disable dashboard container job
The ceph-ansible dashboard job with containerized deployment requires
some changes not merged yet upstream.
This job will be reenable when all the changes are merged.
Dimitri Savineau [Thu, 16 May 2019 20:49:34 +0000 (16:49 -0400)]
ceph-ansible: remove useless command for syntax
Because we're now able to execute the infrastructure playbooks from
the main ceph-ansible directory, we don't need to define the ansible
library path (because already define in ansible.cfg).
The roles and group_vars directories are already present in the main
directory so we don't need to copy them anymore.
This commit also exclude both ansible-lint rules: 204 and 205
- [204] Lines should be no longer than 160 chars
- [205] Use ".yml" or ".yaml" playbook extension
ceph-ansible: give a common inventory for syntax-check
let's provide a typical 'all_daemons' inventory host file for the syntax
check process. Otherwise we can get failure because the site.yml file
contains `hosts:` which try to resolve some `{{ groups }}` variables.
When doing condition on branch it's maybe easier to understand the
condition based on the branch name instead of a regex for excluding
all the other branches.
CI is failing at the moment because of a pip error:
```
+ /tmp/venv.x2V7jCYRmJ/bin/pip install pip==10.0.0
Traceback (most recent call last):
File "/tmp/venv.x2V7jCYRmJ/bin/pip", line 11, in <module>
load_entry_point('pip==19.1', 'console_scripts', 'pip')()
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pkg_resources/__init__.py", line 565, in load_entry_point
return get_distribution(dist).load_entry_point(group, name)
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2631, in load_entry_point
return ep.load()
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2291, in load
return self.resolve()
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pkg_resources/__init__.py", line 2297, in resolve
module = __import__(self.module_name, fromlist=['__name__'], level=0)
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pip/_internal/__init__.py", line 40, in <module>
from pip._internal.cli.autocompletion import autocomplete
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pip/_internal/cli/autocompletion.py", line 8, in <module>
from pip._internal.cli.main_parser import create_main_parser
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pip/_internal/cli/main_parser.py", line 8, in <module>
from pip._internal.cli import cmdoptions
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pip/_internal/cli/cmdoptions.py", line 24, in <module>
from pip._internal.utils.ui import BAR_TYPES
File "/tmp/venv.x2V7jCYRmJ/lib/python2.7/site-packages/pip/_internal/utils/ui.py", line 11, in <module>
from pip._vendor.progress import HIDE_CURSOR, SHOW_CURSOR
ImportError: cannot import name HIDE_CURSOR
```
since I'm unsure we really need to pin pip to 10.0.0 for the syntax
check job let's not use `install_python_packages` function from
`build_utils.sh` to install `ansible-lint`.
I'll revert this patch as soon as I'll have figured out the proper fix
to apply.