The python3-ceph-smb-ctl package provides the ceph-smb-ctl CLI tool (and
requires needed deps) and is a weak dependency of python3-ceph-common.
However, since the container disables weak dependencies by default we
need to explicitly list it if we want it in the container image. Which
we do.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
The Containerfile uses --setopt=install_weak_deps=False throughout, so
ceph-mgr-modules-core (a Recommends of ceph-mgr, not a Requires) and
the split-out module packages are not automatically installed. Add them
explicitly.
Signed-off-by: Kefu Chai <k.chai@proxmox.com>
The ganesha spec file is calling in a system package that is in CentOS 10 Stream but not yet in Rocky/Alma/RHEL/whatever.
This reverts commit 1163bd6b01.
Fixes: https://tracker.ceph.com/issues/76681
Signed-off-by: David Galloway <david.galloway@ibm.com>
This commit fixes an issue when the image is not the base distro,
the debug suffix for it is overwritten. This is especially
required for crimson debug builds to work for rocky10.
Fixes: https://tracker.ceph.com/issues/75952
Signed-off-by: Shraddha Agrawal <shraddha.agrawal000@gmail.com>
We build centos9 and rocky10 packages and containers by default now for wip, main, and tentacle branches as of https://github.com/ceph/ceph-build/pull/2557.
Starting with tentacle, we want a `podman pull quay.ceph.io/ceph-ci/ceph:tentacle` or `podman pull quay.ceph.io/ceph-ci/ceph:$SHA1` to get the container with Rocky 10 as the Base OS image, or FROM_IMAGE.
Fixes: https://tracker.ceph.com/issues/75673
Signed-off-by: David Galloway <david.galloway@ibm.com>
Add mandatory -v/--version to select version to examine (to allow
multiple prerelease tags to exist). Reorder arguments so that
usage help in the 'missing version' case shows the long option names.
Requires change to ceph-release-containers job as well to pass
the --version argument.
This commit is part of a PR that includes an update to the "promote"
invocation of make-manifest-list.py, which is done manually and must
also contain the --version argument.
Signed-off-by: Dan Mick <dmick@ibm.com>
https://github.com/ceph/ceph-build/pull/2497 introduced a debug flavor.
This seems to cause conflicts with the image being pushed to quay as one
of the flavors might override the other.
Tag debug build containers explicitly.
Alternative solution would be to skip debug containers all together.
However. these might be useful for development purposes.
Note, prune-quay might also need to be updated once this is merged.
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
a37b5b5bde added ceph-osd-crimson as dependency using OR requirement.
Once ceph-osd-classic dependency is satisfied, ceph-osd-crimson package must be added manually.
In order to not add crimson packages manually (See "Containerfile"
removed lines) - mark osd-crimson as dependency if with_crimson is
enabled for rpm and if pkg.ceph.crimson build profile is enabled for debian.
With this change, users won't be required to obtain ceph-osd-crimson
package manually when relevant. Similarly to ceph-osd-classic being
a dependency for ceph-osd.
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
a37b5b5bde changed crimson-osd to
osd-crimson:
```
=== INSTALLING ===
No match for argument: ceph-crimson-osd
Error: Unable to find a match: ceph-crimson-osd
```
ceph-dev-pipeline builds are not failing (with the above error) -
however, ceph-dev-builds (used for main nightly) are failing with
the above:
8a27bf1614/
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
'fromtag' is already available as distillation of the
FROM_IMAGE environment variable: everything after last
slash, s/:/-/. Use it as a suffix if it's anything other than
"centos-9stream" so that multiple CI container tags can coexist.
Signed-off-by: Dan Mick <dan.mick@redhat.com>
Update the build.sh script such that the environment variable
CUSTOM_CEPH_REPO_URL is passed to the container build command
as a build argument. This allows a developer or system outside of the
ceph CI to build container images similar to those produced by the
CI but using custom RPM packages.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add a CUSTOM_CEPH_REPO_URL build argument to the Containerfile.
This configures the container to consume ceph packages from the repo
file indicated by this URL. This allows constructing a container image
"the ceph way" without requiring the use of CI built packages.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Optionally, for those that want to run build.sh locally and
use the images. The default is to remove, for Jenkins builders,
which will build, push, and rmi.
Fixes: https://tracker.ceph.com/issues/70196
Signed-off-by: Dan Mick <dan.mick@redhat.com>
Stop deleting the python generated files (pyc, pyo) that RPM packages
have installed. At some point in the misty past someone thought it would
be a good idea to remove these. This practice got carried over to the
new in-tree Containerfile. IMO this is probably due to a thought to save
space, but if that's the case then the RPMs should not be carrying them
either. Plus, not having them is going to slow python down as it needs
to compile every py file that gets loaded. Let's be consistent: if the
RPMs have pyc and pyo files then they should be in the image - if
they're bad or too big they should not be in the RPMs either, right?
This has the pleasant side effect of making `rpm -Va` inside the image
happier.
Fixes: https://tracker.ceph.com/issues/69869
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Avoid installing docs by using the dnf configuration tsflags parameter,
passing the nodocs flag. This tells dnf and rpm not to install
documentation, such as manpages. Stop installing the docs just to delete
them later with an `rm -rf` type command. Now the docs don't get
installed in the first place, saving space, but the rpm is happy
(`rpm -Va` no longer shows docs as 'missing').
Fixes: https://tracker.ceph.com/issues/69868
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Add a label used by cephadm internally that was always set by
ceph-container [1] back to the new containerfile. This should
prevent issues with cephadm shell command thinking official ceph images
are not official ceph images.
[1] 30dc8b9a55/src/__DOCKERFILE_TRACEABILITY_LABELS__ (L5)
Signed-off-by: John Mulligan <jmulligan@redhat.com>
release builds were using the wrong container repo name because of
confused variable naming and inadequate separation. Keep the hostname,
org name, and repo name in separate variables, and assemble the full
path with a version when tagging is done.
Signed-off-by: Dan Mick <dan.mick@redhat.com>
CEPH_VERSION used to be present in the env to hold the ref. Other projects
relied on this. Make life easier for them.
Signed-off-by: Dan Mick <dan.mick@redhat.com>
ceph.repo had creds in it for download.ceph.com/prerelease.
Remove the .repo files we construct, since they're not necessary
once the container is built (no one should be dnf'ing anything
in the container).
Signed-off-by: Dan Mick <dan.mick@redhat.com>
The promote function finds the latest image on the prerelease repo,
finds all its tags, and copies them all to the release repo.
Signed-off-by: Dan Mick <dan.mick@redhat.com>
- change repo path to prerelease
- remove image id arg for release push
- include 'v' in version name for release push
Signed-off-by: Dan Mick <dan.mick@redhat.com>
- don't print command failure in worker; let the caller print them
if desired (allow silent failure)
- allow for empty tags list
- look for CEPH_SHA1. GIT_COMMIT was the sha1 of the ceph-container.git
commit
- change default paths to prerelease
- add --dry-run to avoid final push
- rename 'HOST' to 'CONTAINER_HOST'
- Use ARCH_SPECIFIC_HOST instead of CONTAINER_HOST (which is used by podman)
Signed-off-by: Dan Mick <dan.mick@redhat.com>
The wrong string was used for comparison, and for tagging,
so the arm64 branch and sha1 images overwrote and destroyed
the amd64 images.
Signed-off-by: Dan Mick <dmick@redhat.com>
The intent is to replace ceph-container.git, at first for ci containers
only, and eventually production containers as well.
There is code present for production containers, including
a separate "make-manifest-list.py" to scan for and glue the two
arch-specific containers into a 'manifest-list' 'fat' container,
but that code is not yet fully tested.
This code will not be used until a corresponding change to the
Jenkins jobs in ceph-build.git is pushed.
Note that this tooling does not authenticate to the container repo;
it is assumed that will be done elsewhere. Authentication is
verified by pushing a minimal image to the requested repo.
Signed-off-by: Dan Mick <dmick@redhat.com>