Commit Graph

50 Commits

Author SHA1 Message Date
David Galloway
194e58aa9b container: default FROM_IMAGE to Rocky Linux 10
Since tentacle, the preferred base image for ceph containers has been
Rocky Linux 10, and the CI tag-naming logic in build.sh already assumes
rockylinux-10 is the default fromtag for every branch except reef and
squid.  The actual build default was never flipped, though: anything
that ran build.sh without FROM_IMAGE set (e.g. the release container
job in ceph-build) still got a CentOS Stream 9 base.

Flip the Containerfile ARG and the build.sh fallback to
docker.io/rockylinux/rockylinux:10 so umbrella and later build from
Rocky 10 by default.  Builds that want a different base can still pass
FROM_IMAGE explicitly, as the CI pipeline does.

Signed-off-by: David Galloway <david.galloway@ibm.com>
2026-07-17 14:34:44 -04:00
David Galloway
a803d372ad Containerfile: Support pulp repo URLs
Signed-off-by: David Galloway <david.galloway@ibm.com>
2026-06-17 14:25:04 -04:00
John Mulligan
3700e6abaf
Merge pull request #68825 from phlogistonjohn/jjm-smb-ctl-tool-fe
smb: add a smb remote control client tool frontend

Reviewed-by: Avan Thakkar <athakkar@redhat.com>
Reviewed-by: Anoop C S <anoopcs@cryptolab.net>
2026-06-09 14:21:32 -04:00
John Mulligan
8fe54aff4a container: include python3-ceph-smb-ctl in ceph image
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>
2026-06-04 09:57:09 -04:00
Kefu Chai
10754c68e3 container: install ceph-mgr-modules-core and ceph-mgr-modules-standard
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>
2026-06-01 16:00:26 +08:00
Shweta Bhosale
a785b5f561 Use GANESHA_REPO_BASEURL for NFS-Ganesha on all distros
Fixes: https://tracker.ceph.com/issues/76603
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
2026-05-25 12:19:21 +05:30
David Galloway
6619587dc2 Revert "Use GANESHA_REPO_BASEURL for NFS-Ganesha on all distros"
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>
2026-05-20 16:52:34 -04:00
Shweta Bhosale
1163bd6b01 Use GANESHA_REPO_BASEURL for NFS-Ganesha on all distros
Fixes: https://tracker.ceph.com/issues/76603
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
2026-05-14 19:20:40 +05:30
Redouane Kachach
f9c2775bda
Merge pull request #67906 from ShwetaBhosale1/update_nfs
Bump NFS Version in Ceph

Reviewed-by: Shubha Jain <SHUBHA.JAIN1@ibm.com>
2026-04-27 10:17:58 +02:00
Shraddha Agrawal
66e2d43a7e container/build.sh: fix debug tag overwrite
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>
2026-04-10 14:10:55 +05:30
bugwz
d9391f6f42 Change format
Signed-off-by: bugwz <xbugwz@gmail.com>
2026-04-02 10:11:05 +08:00
bugwz
e60db5a1db Support build image with docker
Signed-off-by: bugwz <xbugwz@gmail.com>
2026-04-02 10:11:05 +08:00
David Galloway
d13c764800
Merge pull request #67830 from dmick/container-manifest-versions
container/make-manifest-list.py: add version parameter
2026-03-24 09:40:01 -04:00
David Galloway
5e0eaf5628 container/build.sh: FROM_IMAGE=rockylinux-10 default for >=tentacle
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>
2026-03-23 12:10:58 -04:00
Shweta Bhosale
5cbbd42859 Bump NFS Version in Ceph
Fixes: https://tracker.ceph.com/issues/75630
Signed-off-by: Shweta Bhosale <Shweta.Bhosale1@ibm.com>
2026-03-20 11:31:59 +05:30
Dan Mick
cc7d057729 container/make-manifest-list.py: handle "no tags for this version"
Especially now that --version is required, there may be no
useful tag; catch early and error out.

Signed-off-by: Dan Mick <dmick@ibm.com>
2026-03-19 10:50:39 -07:00
Dan Mick
f5a92b13f3 container/make-manifest-list.py: add version support
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>
2026-03-19 10:50:33 -07:00
David Galloway
237566a068
Merge pull request #66069 from ceph/r10-containerfile
Containerfile: Support Rocky 10 as base image
2026-02-25 18:46:23 -05:00
Matan Breizman
525afef2d0 container/build.sh: Use dedicated debug tags
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>
2026-01-22 12:12:20 +02:00
Matan Breizman
da9b2f15e7 container/build.sh: cleanup crimson flavors
We no longer have crimson-flavors see https://github.com/ceph/ceph-build/pull/2497

Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2026-01-22 11:55:03 +02:00
Matan Breizman
b891223a0f debian,ceph.spec: add ceph-osd-crimson as dependency
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>
2025-11-19 13:14:09 +00:00
Matan Breizman
dac591543d container/Containerfile: fix crimson package naming
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>
2025-11-16 09:24:46 +00:00
David Galloway
7ae7ef376b Containerfile: Support rocky/el10 in repo URLs
Signed-off-by: David Galloway <david.galloway@ibm.com>
2025-10-29 10:56:51 -04:00
Dan Mick
c8c03ac4e3 container/build.sh: add 'rocky-10' suffix if necessary
'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>
2025-10-23 15:19:34 -07:00
John Mulligan
ffabf23ccc container: pass CUSTOM_CEPH_REPO_URL thru container build script
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>
2025-08-11 15:04:30 -04:00
John Mulligan
ec3be940fe container: add CUSTOM_CEPH_REPO_URL build argument
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>
2025-08-11 15:02:26 -04:00
Matan Breizman
425b6dac14 container: update crimson flavors
Signed-off-by: Matan Breizman <mbreizma@redhat.com>
2025-06-12 09:26:19 +00:00
Dan Mick
642e5f2da0 container/build.sh: remove local container images
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>
2025-02-26 16:17:27 -08:00
John Mulligan
0f178e61de container: stop deleting python generated files
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>
2025-02-08 15:08:50 -05:00
John Mulligan
bf9b8d36ab container: avoid installing docs using the dnf configuration
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>
2025-02-08 15:07:52 -05:00
Dan Mick
b7d3d39525
Merge pull request #61510 from dmick/container-no-repo-creds
container/build.sh: don't require repo creds on NO_PUSH
2025-01-29 11:18:24 -08:00
John Mulligan
b4f4323e6c container: add label ceph=True back
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>
2025-01-24 14:34:23 -05:00
Dan Mick
a745e07e7e container/build.sh: don't require repo creds on NO_PUSH
Signed-off-by: Dan Mick <dan.mick@redhat.com>
2025-01-24 11:00:52 -08:00
Dan Mick
1fb6137afe container/build.sh: fix up org vs. repo naming
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>
2025-01-22 18:49:05 -08:00
Dan Mick
90a35dccf5
Merge pull request #61098 from anoopcs9/add-libcephfs-daemon-containerfile
Containerfile: Add `libcephfs-daemon` package
2025-01-21 10:37:30 -08:00
Dan Mick
3075894aab container/Containerfile: replace CEPH_VERSION var for backward compat
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>
2025-01-06 13:06:35 -08:00
Anoop C S
0c2e056573 Containerfile: Add libcephfs-daemon package
Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-12-16 16:48:23 +05:30
Ken Dreyer
ff44a46749
Merge pull request #60924 from ktdreyer/containerfile-date-utc
container/build.sh: use UTC dates for tags
2024-12-04 14:40:04 -05:00
Dan Mick
4b3c0cb8f3 container/{Containerfile,build.sh}: use a secret to pass secrets
Use podman's build --secret mechanism to pass credentials for
download.ceph.com

Signed-off-by: Dan Mick <dan.mick@redhat.com>
2024-12-03 16:38:51 -08:00
Dan Mick
18d14b22f3 container/Containerfile: allow failure from curl to stop build
curl doesn't actually fail unless -f is used; also, add
some sh -e flags.

Signed-off-by: Dan Mick <dan.mick@redhat.com>
2024-12-03 16:38:51 -08:00
Dan Mick
08432ef542 container/Containerfile: purge .repo files with secrets before commit
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>
2024-12-03 16:38:51 -08:00
Dan Mick
ce74f14de5 container/Containerfile fix boolean IS_RELEASE usage
Existing syntax was just wrong.

Signed-off-by: Dan Mick <dan.mick@redhat.com>
2024-12-03 16:38:15 -08:00
Dan Mick
a3a9f188ca container/make-manifest-list.py: use LOCALMANIFEST throughout
Signed-off-by: Dan Mick <dan.mick@redhat.com>
2024-12-03 12:32:13 -08:00
Dan Mick
4f050d7811 containers/make-manifest.py: Add --promote
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>
2024-12-03 12:32:13 -08:00
Dan Mick
7374b9b111 container/Containerfile, build.sh: Add PRERELEASE_USERNAME/PASSWORD
Used for accessing download.ceph.com

Signed-off-by: Dan Mick <dan.mick@redhat.com>
2024-12-03 12:32:13 -08:00
Dan Mick
6c8e998425 container/build.sh:
- 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>
2024-12-03 12:32:13 -08:00
Dan Mick
44b2fc4d5e container/make-manifest-list.py
- 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>
2024-12-03 12:32:13 -08:00
Ken Dreyer
fb4ec71117 container/build.sh: use UTC dates for tags
Do not rely on the builder host's local timezone setting.

Signed-off-by: Ken Dreyer <kdreyer@ibm.com>
2024-12-03 12:38:50 -05:00
Dan Mick
7e03ee798f container/build.sh: fix arm architecture tagging
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>
2024-10-10 16:38:58 -07:00
Dan Mick
5c40a5c173 Add Containerfile and build.sh to build it.
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>
2024-10-02 16:49:32 -07:00