When neither docker nor podman is available and usable,
`make build`, `make lint.yaml`, and `lint.markdown` used to fail
with confusing unhelpful error messages like `run: command not found`
or `build: command not found` and in the case of build fail rather late
in the process.
This change lets make fail imuch more early and with a clear error message that a
working installation of container runtime with podman or docker is required.
The new logic is this:
If docker is present and usable, use it
otherwise, if podman is present and usable, use it
otherwise, if DOCKERCMD is explicitly set to a usable command, use it.
otherwise, error out at corresponding targets.
In order to avoid adding new confusions, `make clean` and `make build` are additionally made robust to
gracefully skip the image cleanup and image cleanuop steps, respectively, with an informational message
instead of
failingi hard when no usable container command is provided or detected.
Assisted-by: GitHub Copilot
Signed-off-by: Michael Adam <obnox@samba.org>
Going forward, admin will manage the csi operator
CR's and rook will only manage Ceph Connection cr
and client Profile cr.
The old csi driver is completely removed from Rook
and can no longer be used starting in Rook v1.20.
The upgrade guide will contain the needed transition steps
for managing the csi operator settings.
Signed-off-by: subhamkrai <srai@redhat.com>
he introduction of the target for the creation of the tools
directory to common.mk changed make build to not build container
images any more because the tools cache dir target masked the default
images building goal accidentally by including common.mk before target
definitions.
This change re-establishes desired behavior of make build
by explicitly specifying the default goal for image building.
Signed-off-by: Michael Adam <obnox@samba.org>
the ceph based container image build is controlled by a make
variable BUILD_CONTAINER_IMAGE.
So far, the image build was only performed when this variable was set to
the empty string. For any non-empty
value, for example "false", like set by some CI workflow,
the image build was skipped.
This change improves the logfic to build images by default
and allowing ti opt out by explicitly setting "false".
While not changing the default behavior at all, this makes the code and behavior
more explicit and obvious and more like what seems to have been the intention originally
while also improving the level and granularity of control with
the variable.
Signed-off-by: Michael Adam <obnox@samba.org>
Since we removed the csv from rook,we don't need this tool anymore.
Let's just remove all traces of the operator SDK from Rook
Signed-off-by: subhamkrai <srai@redhat.com>
The toolbox was not respecting the rook-config-override ConfigMap,
resulting in a minimal ceph.conf with only mon_host and keyring settings.
This made it difficult to run diagnostic commands that require custom
configuration parameters.
This change mounts the rook-config-override ConfigMap in all toolbox
variants and merges its contents into the generated ceph.conf. The
merge happens after writing the base config with mon endpoints, and
is re-applied whenever mon endpoints change.
The toolbox now has consistent behavior with other Rook-managed Ceph
daemons (mon, mgr, osd, mds, rgw) which already respect config overrides.
Signed-off-by: Matthew N. Heler <matthew.heler@hotmail.com>
With the addition of the csi operator, the csi operator
image is added to the list of images that are required
for deploying rook.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
With the new squid patch release, update the base
image, the docs, and the examples to all use the latest
stable Ceph release v19.2.3.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
The release scripts expect the rook image to be tagged
with the arch in the suffix, reverting this change to
the tag that was a regression from the squid base image
changes.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
With the stable release of v19.2.1, we update the Rook
operator base image to use this version to ensure
compatibility of ceph commands, in particular for
radosgw-admin.
Images pushed to the ceph quay repo are now manifested
so we can use the --platform flag when building the
docker image instead of pulling from separate repos.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
In image building, when building on arm based systems,
the s5cmd tool was added with the wrong architecture
(amd64 instead of arm64).
This change fixes the architecture of the s5cmd to match the
architecture of the image built.
Fixes: #15262
Signed-off-by: Michael Adam <obnox@samba.org>
in the image building Makefile, a comment explaining the construction
of the operator-sdk download URL was in a wrong place.
Now it is moved to the lines that it actually explains.
Signed-off-by: Michael Adam <obnox@samba.org>
The docker.io/rook/ceph image contains vulnerabilities in the s5cmd binary.
A new version of s5cmd was released on 16th December which resolves these issues.
Signed-off-by: TomHellier <me@tomhellier.com>
Now user can pass the cli flags using config file and
also command line argument,
if mentioned at both the place priority is given to
command line argument
Signed-off-by: parth-gr <partharora1010@gmail.com>
Multus requires that the 'ip' tool be installed in the Rook image.
Today, it is present in the upstream Ceph base image that is used, but
that is expected to change in the future. The Ceph project intends to
switch to CentOS 9 minimal images, and the 'ip' tool will likely be
removed from the base image at that point.
However, Rook CI has occasionally had issues with the current 'dnf
install' command when CentOS repos go down, or when there is otherwise
some problem. Because the package is already installed today, there is
no need to hamstring Rook builds when CentOS is having problems. But we
do want to make sure that Rook builds don't silently succeed in the
eventual future when 'ip' tool is removed from the Ceph image.
For now, replace the 'dnf install' with a check to verify that 'ip' tool
is installed, and add a shorter form of this note as a comment above it
to help Rook maintainers know how to resolve future 'ip' tool removal.
Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
With the release of Reef v18.2.2 we update the default
recommended version of Ceph to fix the prometheus issues
seen with v18.2.1
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
The rook/ceph Dockerfile uses dnf to ensure iproute (containing the 'ip'
CLI tool) is installed in the Rook image for Multus usage. This comes
from the 'baseos' repo, but if any other repos are unavailable
temporarily, it can cause the container build to fail.
Use the '--repo baseos' flag to help prevent these kinds of failures.
Additionally, this will speed up the build slightly since it does not
attempt to load any non-necessary repos.
This change may make the container build slightly fragile in the future
if CentOS changes the name of its baseos repo, or if the Ceph image
switches to a non-CentOS base image.
Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
This commit gives builders the necessary tooling to save off a docker build context for use
with other tools that dont follow the same command format as $DOCKERCMD.
Signed-off-by: Scott Miller <smiller1@coreweave.com>
Update Rook operator base image and example manifests to the latest Ceph
version released late last week v18.2.1.
Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
Use the Rook image (defined by the operator pod) to detect the Multus
network address ranges. It is reasonable for users to want to have a
minimal Ceph image that does not have the `ip` utility installed, which
is used for detecting the address ranges of multus interfaces. Instead,
use the Rook image, which Rook can ensure has the `ip` tool if Ceph ever
removes it from their image.
Signed-off-by: Blaine Gardner <blaine.gardner@ibm.com>
Reef object store configuration may have issues due to
the operator base image being Quincy, while trying
to deploy a Reef cluster. There appear to be forward
compatibility issues with the radosgw-admin command.
Now the base image is updated to v18.2.0 to better
handle the compatibility across ceph versions.
Signed-off-by: travisn <tnielsen@redhat.com>
This is the latest available version.
The previously used version v2.0.0 was very outdated.
Fixes: #12883
Co-authored-by: subham rai subhamkrai <srai@redhat.com>
Signed-off-by: Michael Adam <obnox@samba.org>
Signed-off-by: Subham Rai subhamkrai <srai@redhat.com>
signed-off-by: Travis Nielsen <tnielsen@redhat.com>
Co-authored-by: Travis Nielsen <tnielsen@redhat.com>
Adding CephCOSIDriver CRD and controller. The controller will bring up
the ceph cosi driver when first object store is created in the rook
operator namespace. Then admin can defined COSI CRDs like BucketClass
and BucketAccessClass for different object stores deployed via Rook.
Using the BucketClass and BucketAccessClass, user can define
BucketAccess for backend bucket in the RGW. The CephCOSIDriver CRD
defines configuration options for ceph cosi driver. In the first version
its usability is minimal. Even if it is not defined Rook will bring up
the ceph cosi driver with default values.
Signed-off-by: Jiffin Tony Thottan <thottanjiffin@gmail.com>
With the release of ceph v17.2.6, the examples and the base
image for the operator are updated to pick up the latest
and greatest.
Signed-off-by: travisn <tnielsen@redhat.com>
This helps forks build custom rook releases more easily by allowing
certain Makefile vars to be overwriten using a `.env` file.
In addition this introduces the `DOCKERCMD` var to the
`build/release/Makefile`.
Signed-off-by: Alexander Trost <galexrt@googlemail.com>
Signed-off-by: Deepika Upadhyay <deepika@koor.tech>
Signed-off-by: Zuhair AlSader <zuhair@koor.tech>
The toolbox, toolbox job, and osd prepare jobs need to mount the
ceph admin keyring as a file instead of using an env var.
The toolbox script will still allow setting of the env var
for backward compatibility, though all the examples are now
updated to use the keyring as a file.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
update "s5cmd" to "v2.0.0" as "1.4.0" was built using go v1.16 and has many vulnerabilities
Resolves#11176
Signed-off-by: Pratik Raj <rajpratik71@gmail.com>
For the Rook v1.10 release we want the latest version of Quincy to
be the default deployment. Updating to v17.2.3 with the latest
patch release.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
The OSBASE and OSBASEIMAGE are obsolete from an older version
of rook where Ceph was not the base image. Now that Ceph provides
the base image, there is no need for these vars in the makefile.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
The ceph-external-cluster-details-exporter.py
generates the json output even with
rgw-endpoint IP from different cluster
Added a check validate_rgw_endpoint which will validate
the above rgw_endpoint Ip by matching the cluster fsid
Signed-off-by: parth-gr <paarora@redhat.com>
The cross build container is not used anymore since the conversion
to github actions. Now the obsolete scripts and makefiles are
cleaned up to remove some confusing leftovers from the
cross container.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>