Commit Graph

34 Commits

Author SHA1 Message Date
John Mulligan
df3b6a95ad containers: work around protobuf package issues
Work around errors related to protobuf package locations on centos.
This is triggered by our squid jobs failing with errors like:
```
22.40  Problem: protobuf-3.14.0-13.el9.i686 from appstream  does not
belong to a distupgrade repository
22.40   - package protobuf-compiler-3.14.0-13.el9.x86_64 from @System
requires protobuf = 3.14.0-13.el9, but none of the providers can be
installed
22.40   - cannot install both protobuf-3.14.0-14.el9.x86_64 from
appstream and protobuf-3.14.0-13.el9.x86_64 from @System
22.40   - cannot install both protobuf-3.14.0-14.el9.x86_64 from
appstream and protobuf-3.14.0-13.el9.x86_64 from appstream
22.40   - cannot install the best update candidate for package
protobuf-3.14.0-13.el9.x86_64
22.40   - problem with installed package
protobuf-compiler-3.14.0-13.el9.x86_64
22.40 (try to add '--allowerasing' to command line to replace
conflicting packages or '--skip-broken' to skip uninstallable packages
or '--nobest' to use not only best candidate packages)
------
```

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-10-23 11:08:02 +00:00
John Mulligan
60ea53dabd containers: add rados striper ceph packages to container image
Add libradosstriper devel and debug packages to the test container
image. This is in preparation for adding a future `rados/striper`
package to go-ceph that will wrap these APIs.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
795ed073da containers: reorganize dockerfile command setting up repos and packages
Reorganize the RUN command in the Dockerfile that sets up distro based
repositories and ceph packages. Move the `&&` to the beginning of the
lines to highlight when commands begin (and end). Change the indent
level of items that are arguments to commands to further clarify
what is part of what.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-08-08 14:07:59 +00:00
John Mulligan
e0e4115a01 containers: work around centos 8 stream getting archived
The centos 8 stream distribution is now EOL and the yum repo mirrors are
now offline. However, our CI is designed to test older released versions
of ceph where the container images are still using centos 8 stream.
Borrow and adapt a line from the ceph-csi project in order to use the
centos 8 archives (vault) until either we stop testing these versions of
ceph or the ceph project changes the base distro for these release
versions.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2024-06-04 18:33:19 +00:00
Anoop C S
26ac6fa291 Dockerfile: Avoid conflict with curl-minimal package
With CentOS Stream 8 reaching end of builds phase most of our ceph
images are migrating their bases to CentOS Stream 9. Since they come
with curl by default in a minimal rpm package we switch to attempt the
install by directly linking the binary than the package name. This is
due to the conflict between curl and curl-minimal packages in CentOS
Stream 9 images.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-06-03 14:47:01 -04:00
Anoop C S
9a3796f853 Dockerfile: Bump golang version to 1.21
This bumps the Go version of the test container to 1.21.8, which is the
oldest supported Go version as of now.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2024-03-10 04:47:56 +00:00
Sven Anderson
fa8e6c803c CI: enable and collect core dumps in tests
Signed-off-by: Sven Anderson <sven@redhat.com>
2023-11-16 16:26:46 +00:00
John Mulligan
d4eac7d990 containers: workaround for ganesha package error on reef
Currently the tests on the released reef image fails due to an RPM
transaction error when updating nfs-ganesha. Since go-ceph doesn't
need ganesha packages to be up-to-date to ensure that
lib{cephfs,rados,rbd}-devel are installed we _temporarily_ disable
ganesha repo when running yum update.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2023-08-16 12:51:39 +00:00
Sven Anderson
533a0db386 CI: add tests for different Go versions
Signed-off-by: Sven Anderson <sven@redhat.com>
2023-08-08 17:42:33 +00:00
Anoop C S
7607fd801b Dockerfile: Add missing GOPROXY build argument
Previously, commit 102616b158 tried to
expose GOPROXY env var from developer environment by specifying it as
environment variable or build argument to container build process. But
using --build-arg to container build command would require the same to
be referenced inside Dockerfile/Containerfile so that the following
warning can be avoided:

[Warning] one or more build args were not consumed: [GOPROXY]

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2023-03-08 21:10:15 +00:00
Sven Anderson
1dfd94f9b3 Go: bump tested Go version to 1.19.5
This bumps the Go version of the test container to 1.19.5, which is
the oldest supported Go version as of now.

The go.mod file (including an upgrade of its dependencies) and the
revive environment is bumped to 1.19 as well.

Signed-off-by: Sven Anderson <sven@redhat.com>
2023-02-20 20:50:24 +00:00
Shachar Sharon
d930ba7157 containers: use proper go arch for local host
Use the GOARCH variable to define to proper version of go binaries to
download. Without this, the end result image can not run properly on
local host machine.

Signed-off-by: Shachar Sharon <ssharon@redhat.com>
2023-01-25 15:06:48 +00:00
Anoop C S
146ee24547 Dockerfile: Remove an unused CEPH_TAG env variable
Ceph version is already available from CEPH_VERSION env variable.
CEPH_TAG on the other hand is only defined to determine the tag for
ceph base image and seems to be unused in the resulting go-ceph
container image.

Signed-off-by: Anoop C S <anoopcs@cryptolab.net>
2022-06-28 12:54:48 +00:00
John Mulligan
40f1fa47d9 containers: update the go version used in the CI container
The Go 1.18 release was done in march 2022 and so we should
continue to use the older of the two supported releases which
is now Go 1.17.x.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-05-11 16:05:23 +00:00
John Mulligan
52bc6e9158 containers: drop apache arrow workaround
This issue should no longer be present in the base containers.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-05-02 14:14:25 +00:00
Sven Anderson
2ae01ab6bc CI: remove castxml from scripts and docs
Signed-off-by: Sven Anderson <sven@redhat.com>
2022-02-21 14:45:42 +00:00
John Mulligan
89631a50d3 containers: disable a repo to get the ci up and going again
This issue should have been fixed in ceph-containers already but for
whatever reason we don't seem to be getting the fix.
For now, disable the apache-arrow-centos repo.

Based on: 8b4c8dc730

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2022-02-07 21:20:20 +00:00
John Mulligan
953e3ab495 dockerfile: enable castxml when possible (again)
Return to trying to install castxml into the container image when
possible. This now appears to work (and function) on the centos 8 based
images.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-09-30 13:27:01 +00:00
John Mulligan
2456bf70a1 containers: update go version
With the recent release of go1.17 the oldest supported go version is
1.16. Update to the newest 1.16.z and clean up the structure of
the go install process a bit.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-09-02 13:53:09 +00:00
John Mulligan
cf6de4b12d containers: use ceph/ceph as our base image
First off, ceph is no longer using docker hub for the canonical image
hosting. We have also been recommended to use ceph/ceph instead of
ceph/daemon-base. Thus we switch to 'quay.io/ceph/ceph'.

However, ceph/ceph doesn't use codenames for tags so we also have to use
version number tags. These are set as build args now. To retain
compatibility with the way we were working previously we have add a
best-effort "assertion" to ensure the code name we provide matches with
the codename embedded in the base image.

While working on this I discovered that our previous build args were
probably not working as intended, but only by accident. See:
https://docs.docker.com/engine/reference/builder/#understand-how-arg-and-from-interact
This is why we now name our build arg GO_CEPH_VERSION and it is located
after the 'FROM' line.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-09-02 13:53:09 +00:00
Sven Anderson
5cb1f79d74 tests: add USE_CACHE variable to enable go packages cache
If the make variable USE_CACHE is set, the test container will mount
the /go directory from a named volume that is reused in following
test runs, so that go dependencies don't have to be installed again.

Signed-off-by: Sven Anderson <sven@redhat.com>
2021-06-14 14:16:42 +00:00
Sven Anderson
78ff00f50b tests: update packages to keep ceph common and libraries in sync
Sometimes the version in the RPM repository don't match the version
of the base image. This change updates the packages before installing
the libraries in order to make them match.

Signed-off-by: Sven Anderson <sven@redhat.com>
2021-05-31 17:00:08 +02:00
John Mulligan
986dcab058 makefile: use "octopus" as our default ceph version
We're adding a fair amount of octopus (and later) only features now, and
at the time of this writing, pacific is already out. Stop defaulting to
nautilus and default to octopus instead.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-05-03 15:37:43 +00:00
John Mulligan
90e5af86ef containers: drop the unused rbd-fuse from the install packages
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-04-23 13:07:21 +00:00
Sven Anderson
0cc1dcb90d ci: add optional mirroring setup entrypoint.sh
Signed-off-by: Sven Anderson <sven@redhat.com>
2021-04-06 08:59:55 -04:00
John Mulligan
e9f8b47f71 containers: use the current Go 1.15 release
The current version we are testing with is no longer supported.
This updates Go to a supported released version.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2021-03-24 14:00:05 +00:00
Sven Anderson
01c9818729 ci: add GODEBUG=cgocheck=2 to the container environment
Signed-off-by: Sven Anderson <sven@redhat.com>
2021-02-08 13:36:28 -05:00
John Mulligan
9cd28289b5 testing: use supported golang version in ci container images
Bump the golang version to 1.14.7. Go 1.14 is now the older supported
version, with the recent release of Go.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2020-08-25 09:32:07 -04:00
John Mulligan
b7836c621e testing: drop castxml install from ci container build
The castxml install from centos8+epel has been rather fraught with
errors including broken/failed installs and, at the time of this commit,
it installs but can not run due to llvm integration/cli issues.
On top of this it was not available on centos7 anyway and so would,
in theory, only have worked on the octopus container image.
At this point it seem that running the implements tool is not worth
all the failures that trying to install castxml causes.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2020-08-13 13:33:11 -04:00
John Mulligan
4cf21dd0b3 testing: simplify package update, but require matching versions
Now that ceph/daemon-base:latest-octopus is on v15.2.4 we can
stop the need to update already installed packages in the container.
To make things "safer" and fail early with errors rather than mysterious
compatibility problems, I am adding explicit versions to the
lib{cephfs,rados,rbd}-devel-* packages. Now if the container can't find
these packages it will fail rather than partially upgrade the ceph
packages.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2020-08-13 13:33:11 -04:00
John Mulligan
5ee762c586 testing: update container packages before installing new ones
On octopus taking in the -devel packages causes *some* of the packages
to be updated but not all. This apparently makes ceph-fuse fail to
start correctly by blocking forever. This works around that issue.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2020-07-07 13:26:04 -04:00
John Mulligan
7bec335c31 containers: add castxml to container if it is available
Currently, this tool is only readily available on centos8 based
containers (octopus). But as it is being requested by binary name
it will be taken in if any repo used by the container makes it
available.

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2020-06-05 11:35:03 -04:00
John Mulligan
01b38c2e42 testing: move ubuntu xenial based Dockerfile to a subdir
Signed-off-by: John Mulligan <jmulligan@redhat.com>
2020-03-12 13:33:16 +01:00
John Mulligan
a61cc3f13d testing: add Dockerfile based on ceph containers
Ceph containers [1] are built by the ceph team and for our purposes,
only lack build tools and Go making the delta we need to do smaller.

1: https://github.com/ceph/ceph-container

Signed-off-by: John Mulligan <jmulligan@redhat.com>
2020-03-12 13:33:16 +01:00