contrib: use centos7 for wip-*-nautilus#1706
Conversation
recently we are seeing build failures because contrib/build-push-ceph-container-imgs.sh is trying to pull ceph-mgr-cephadm for building a branch named "wip-yuri3-testing-2020-07-01-1707-nautilus", which does match "^wip*", but it's actually a nautilus branch. so in this change, use a different way in hope to fix this build failure. |
|
I guess this isn't so simple and need more refactoring. From what I remember the Even with this change, that would mean we will use nfs-ganesha/ceph-iscsi version like ceph@master but for nautilus & others. As an example, with wip-xxx-nautilus, we will try to install nfs-ganesha 3 with el7 packages which doesn't exist. https://github.com/ceph/ceph-container/blob/master/ceph-releases/ALL/centos/daemon-base/__DOCKERFILE_INSTALL__#L7 Also this would not work as mentioned about cephadm package (and probably other packages) because of the wip-xxx-nautilus branch name. [1] https://github.com/ceph/ceph-container/tree/master/ceph-releases |
|
@dsavineau Dimitri, thanks for your details explanation! yes, it's more complicated that what i imaged. will revise the change. |
|
I think we can just do this instead? ceph/ceph-build#1613 |
11002c0 to
7be029f
Compare
|
@dsavineau i updated this changeset as suggested. but i am seeing could you help me understand what i am missing in my change? |
This job was building a So the CentOS8 package build of I believe we need to pass the OS version we just built packages for to |
|
Le mar. 21 juil. 2020 à 00:52, David Galloway <notifications@github.com> a
écrit :
@dsavineau <https://github.com/dsavineau> i updated this changeset as
suggested. but i am seeing
error: open of null/noarch/ceph-release-1-0.el7.noarch.rpm failed: No such file or directory
Error: error building at STEP "RUN yum install -y epel-release && yum install -y jq && bash -c ....
...
bash -c ' if [[ "${CEPH_VERSION}" =~ master ]] || ${CEPH_DEVEL}; then REPO_URL=$(curl -s "https://shaman.ceph.com/api/search/?project=ceph&distros=centos/7&flavor=${OSD_FLAVOR}&ref=${CEPH_REF}&sha1=latest" | jq -a ".[0] | .url");
...
rpm -Uvh "$REPO_URL/noarch/ceph-release-1-${RELEASE_VER}.el7.noarch.rpm" '
in
https://jenkins.ceph.com/job/ceph-dev-new-build/ARCH=x86_64,AVAILABLE_ARCH=x86_64,AVAILABLE_DIST=centos8,DIST=centos8,MACHINE_SIZE=gigantic/43420//consoleFull
could you help me understand what i am missing in my change?
This job was building a wip*nautilus* branch for CentOS 8 (we *do*
release Nautilus for CentOS 7 and 8). But we have the desired OS version
hardcoded here:
https://github.com/ceph/ceph-container/pull/1706/files#diff-9bd28db8c71e92c690fefd2d189c6b46R67
So the CentOS8 *package* build of nautilus-wip-kefu-1 finished and we got
a repo. Except since we tell ceph-container nautilus == CentOS 7, it
checked the CentOS 7 chacra repo for the ceph-release RPM but that repo
wasn't ready yet. (It is right now though)
https://shaman.ceph.com/api/search/?project=ceph&distros=centos/7&flavor=default&ref=nautilus-wip-kefu-1&sha1=latest
I believe we need to pass the OS version we just built packages for to
build-push-ceph-container-imgs.sh instead of relying on a hardcoded
matrix that doesn't take into account the fact that we build Octopus and
Nautilus on CentOS 7 and 8. Or maybe if the OS version isn't passed as a
variable to build-push-ceph-container-imgs.sh, then fall back on the
hardcoded matrix.
Thanks David. I will implement your suggestion in my next revision.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#1706 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAONP5Y4H6DZA35JIWYN3TR4RY37ANCNFSM4OO4IX4Q>
.
--
Regards
Kefu Chai
|
acbb5b2 to
bfc43d0
Compare
|
the change on ceph-build end is ceph/ceph-build#1628 |
|
LGTM. Are we ignoring the lint checks? |
0da488a to
94b3723
Compare
|
jenkins flake8 |
|
@dsavineau ping? |
|
@dsavineau ping? |
Signed-off-by: Kefu Chai <kchai@redhat.com>
Signed-off-by: Kefu Chai <kchai@redhat.com>
so we can reuse it in another function in a following change, which extracts the ceph_version out of version_spec. Signed-off-by: Kefu Chai <kchai@redhat.com>
do not use a branch name starts with "wip" for its CEPH_VERSION anymore, as wip-nautilus-foobar is more likely a testing branch for nautilus. but we assume a "wip-*" branch is based on master in ceph-container. let's drop this hypothesis from its source. Signed-off-by: Kefu Chai <kchai@redhat.com>
stop matching "wip-", as it can be very wrong as sometimes, we name release branches with "wip" prefix also. Signed-off-by: Kefu Chai <kchai@redhat.com>
before this change $CEPH_VERSION is used for two purposes:
1. for identifying the ceph build using shaman API
2. for differentiating different builds of Ceph, as we containerize
different Ceph major releases with different ingredients.
and we were using "^wip" for matching $CEPH_VERSION, when they matches,
the Ceph build is considered as a branch based on master. but this is
not always true, sometimes, we use branch names like
"wip-nautilus-foobar" for testing nautilus. in this case, we should use
nautilus as its $CEPH_VERSION for picking the ingredients, use
"wip-nautilus-foobar" for retrieving the packages from chacra, and use
"wip-nautilus-foobar" for composing the tag names of the built image.
in this change,
* CEPH_VERSION is repurposed for differentiating the ingredients for
building the container image. this env var is consumed by stage.py.
* a new env var `CEPH_REF` is introduced for referencing the build
from which the container image is built. this env var is deduced
from the given FLAVORS. and following rules are enforced:
- any CEPH_VERSION_SPEC containing "wip" are used for CEPH_REF
- any CEPH_VERSION_SPEC not containing any known release names
is considered as a development branch based on master.
- any CEPH_VERSION_SPEC which contains a known release name
but not starting with that very release name is considered
a deevlopment branch. so its CEPH_VERSION will be that
release, and its CEPH_REF will be identical to CEPH_VERSION_SPEC.
so we have following mappings:
$FLAVOR => $CEPH_VERSION, $CEPH_REF, $CEPH_POINT_RELEASE
master => master, master, ""
octopus-123 => octopus, octops, "123"
wip-octopus-123 => octopus, wip-octopus-123, ""
wip-octopus=123 => octopus, wip-octopus-123, ""
wip-octopus => octopus, wip-octopus, ""
hello-octopus => octopus, hello-octopus, ""
master => master, master, ""
Signed-off-by: Kefu Chai <kchai@redhat.com>
so it can specify the distro and its version if needed. otherwise, we could be fetching packages of nautilus on el7 when building container image of nautilus on el8. Signed-off-by: Kefu Chai <kchai@redhat.com>
…ABLE_FLAVORS since we are also building nautilus on centos8 and octopus on centos7, instead of skipping the container image build for those builds, it'd be better to enable them. Signed-off-by: Kefu Chai <kchai@redhat.com>
we also build container images for nautilus on centos/8, but centos/8 does not ship python-rtslib, but it comes with python3-rtslib. so let's use ALL/centos/daemon-base/__ISCSI_PACKAGE__ for nautilus/centos/8, and specialize __ISCSI_PACKAGE__ for nautilus/centos/7. Signed-off-by: Kefu Chai <kchai@redhat.com>
octopus is already a "python3 only" release, but centos7 is missing quite a lot of python3 depdendencies for almost all of ceph-mgr-* packages, like: ceph-mgr-rook and ceph-mgr-dashboard, the missing dependencies are: - python3-jsonpatch - python3-routes - python3-remoto - python3-jinja2 - python3-jwt - python3-kubernetes - python3-scipy - python3-cherrypy since octopus built for RHEL/CentOS 7 is part of upgrade path, a fully functional dashboard is not our priority, but we do need ceph-mgr is critical. so let's just package ceph-mgr for octopus on el7. Signed-off-by: Kefu Chai <kchai@redhat.com>
there's no nfs-ganesha el8 build for nautilus yet, see https://download.ceph.com/nfs-ganesha/rpm-V2.8-stable/nautilus/x86_64/ so, we cannot include them. Signed-off-by: Kefu Chai <kchai@redhat.com>
we also build container images for octopus on centos/7, but centos/7 does not ship python3-rtslib, but it comes with python-rtslib. so let's specialize __ISCSI_PACKAGE__ for octopus/centos/7 to use python-rtslib instead. Signed-off-by: Kefu Chai <kchai@redhat.com>
to silence SC2086: Double quote to prevent globbing and word splitting. Signed-off-by: Kefu Chai <kchai@redhat.com>
ae1a8bb to
4c1dec8
Compare
|
rebasing and fixing directory tree under |
E261 at least two spaces before inline comment Signed-off-by: Dimitri Savineau <dsavinea@redhat.com>
|
The sloppy python job failure isn't related to the failure, I'll send a PR to ceph-build to fix this. |
|
jenkins flake8 |
|
jenkins test ceph_ansible-all_daemons |
|
@dsavineau thanks for reviewing, rebasing and fixing the issues! |
Signed-off-by: Kefu Chai kchai@redhat.com
Description of your changes:
Which issue is resolved by this Pull Request:
Resolves #
Checklist: