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>
The volume replication crds are not owned by rook, but if installing
with the csv, ownership must be specified for the CRDs. Thus, we limit
ownership to the csv for the volume replication crds.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
The latest ceph image should be used for the base of
the rook image to pick up the latest security releases.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
In order to generate common.yaml from Helm charts, we have to have a
different way of generating CSV than from meta-comments in common.yaml.
This implementation changes what appears in the CSV's RBAC somewhat, but
these changes could be considered bugs fixed by using the new Helm
generation method.
- a few PSP related resources are removed from CSV
- resources related to 'rook-ceph-purge-osd' Job are added to CSV
- ClusterRoleBinding 'rook-ceph-object-bucket' is added to CSV
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
Prevent parallel build collisions in the 'ceph' image by building
prerequisites for the builds before running the build targets in
parallel. Build targets can collide and try to create the same target at
nearly the same time, causing failures.
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
Use yq instead of Python for parsing RBAC from the Helm chart. We need
to use yq v4.14.1 or higher to fix yq's handling of the yaml header
markers ('---'). Update the Makefile's yq version to v4, which also
requires updating the script to update the CRDs. This was quite easy.
It is very difficult, however, to change the version of yq used by the
CSV generating/parsing scripts, which already used their own yq
download. Continue using yq v3 for this.
In order to make sure the scripts are using the right version of yq, add
basic validation to them to verify they are running v3 or v4 as required
for their operation.
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
This reverts commit ceec0bc48c. The build
is failing to push images to master. This is not a critical update so
let's remove.
Signed-off-by: Sébastien Han <seb@redhat.com>
On mac, the docker build was failing due to an unspecified
S5CMD_ARCH. Now we default to build amd64 always and override
it if the arch is arm64.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
The toolbox can now interact with S3 gateways using the `s5cmd` tool.
The binary is only 12M so this does not add up too much to the operator
image size.
Closes: https://github.com/rook/rook/issues/4968
Signed-off-by: Sébastien Han <seb@redhat.com>
The rook operator as well as the toolbox pod run with the "rook" user
with UID 2016. The UID was chosen based on the year of the initial
commit in the rook/rook repository.
No more root user running.
Closes: https://github.com/rook/rook/issues/8734
Signed-off-by: Sébastien Han <seb@redhat.com>