Remove all make-related references to NFS and Cassandra. This is limited
purely to make targets. Leave CRD and codegen script references to be
removed in a different commit.
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
If a user were to `make build` Rook, and after the Ceph CSV was
generated and before make had finished, the Rook repo would be left with
changes caused by the build modifying files temporarily in-place.
All CSV template generation in the Ceph makefile is now self-contained
and can be configured to operate outside of the main repo so that files
are not modified in-place.
In-place modification of files was also incorrect. On Mac some files
with `-e` trailing were left, and in-place backups were also present in
the form `<filename>''`. Therefore, also fix the generation to fix
in-place modifications.
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
CSV generation now requires versions of yq and operator-sdk that are
downloaded by the makefiles. Previously Ceph image creation used
makefile versions but `make csv-ceph` used versions present on the
system.
`sed -i 's///g' $FILE` doesn't work on Unix/Mac.
`sed -i'' -e 's///g' $FILE` is portable.
Signed-off-by: Blaine Gardner <blaine.gardner@redhat.com>
The YugabyteDB team has decided to move support of their operator
to a new repo at https://github.com/yugabyte/yugabyte-operator.
The operator in Rook is no longer needed. Further usage of
the YugabyteDB operator is recommended at the new location.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
shasum is not always available and sha256sum seems to exist more often
since it's part of coreutils where sha256sum comes with perl.
Signed-off-by: Sébastien Han <seb@redhat.com>
The cockroachDB operator has not had community support in Rook.
Therefore, the time has come to deprecate and remove it.
If the sources are still needed, there is always git history.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
The minio operator has not had community support nor
any updates since being added to Rook. Support is being
removed from Rook due to this lack of community interest.
Signed-off-by: Travis Nielsen <tnielsen@redhat.com>
Signed-off-by: Guy Margalit <guymguym@gmail.com>
Co-Authored-By: Sébastien Han <seb@redhat.com>
Co-Authored-By: Travis Nielsen <tnielsen@redhat.com>
This change is meant to allow running operators locally on a developer machine.
The idea is to allow faster development cycles by reducing the time and complexity of building -> deploying -> debugging on cluster.
For operators that rely only on kubernetes API this works easily - see cockroachdb and minio examples in development-flow doc.
The change includes:
- rook.NewContext() - Refactored to remove repeating initialization code that was copy-pasted in most of the operators in order to create the clusterd.Context and the Clientsets. Also it detects the mode of working in-cluster vs external and sets up the external mode with standard user config (~/.kube/config) and a job executor.
- rook.GetOperatorImage() - Refactor this repeating code in many operators to detect the operator pod image. Also added a global flag --operator-image that developers can use to override this when running locally.
- rook.TerminateOnError() - Added a convenient function.
Create a makefile (and shell) variable that can be used to invoke a
different command line, such as 'sha256sum' instead of the default
'shasum -a 256'. The shasum tool is left as the default but, at least on
fedora, this comes from a perl package and it may be that sha256sum,
which comes from coreutils would allow building on a more minimal
install.
Signed-off-by: John Mulligan <jmulligan@redhat.com>
Scaffolding of a Kubernetes controller using the informer-workqueue
pattern.
Dockerfiles and Makefiles to build the cassandra operator image.
Manifests to deploy the Cassandra operator and create a Cluster CRD.
Signed-off-by: Yannis Zarkadas <yanniszarkadas@gmail.com>
Raise the scope of the `IMAGES` config variable in the
`build/release/Makefile` to the `build/makelib/common.mk` file, and use
the `IMAGES` variable in the `images/Makefile` to allow users to build
only select images.
Examples of new use:
make IMAGES='ceph ceph-toolbox' build
make -C build/release IMAGES='ceph ceph-toolbox' publish
The 'images/image.mk' clean.build target was changed to use
`CLEAN_IMAGES` instead of `IMAGES`, as it was conflicting with use of
the parameter in image builds.
Added IMAGES option to top-level make's help text. The text for this
option exceeded 80 lines in the `Makefile` itself, so the help text was
refactored to eliminate ` @echo '<text>'`. The `Makefile` text should
now match exactly what is output to the user including line length.
Added IMAGES option to `INSTALL.md` file's "Build" section and also
moved some text around and added a few extra points of clarification
there to hopefully improve readability, especially for first-time
readers.
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
Instead of adding Ceph packages to Rook's base image, use
ceph-container's base image, which has Ceph packages preinstalled. Rook
now benefits from the testing the ceph-container project does, and the
scope of the Rook project no longer has to maintain builds of base
images containing Ceph packages.
The only ARM builds of ceph-container are CentOS, and as switching to
CentOS was already a thought, that is easily done at the same time as
this change.
Signed-off-by: Blaine Gardner <blaine.gardner@suse.com>
While ceph can build fine on armhf it is not a tested configuration
today nor are debian packages for ceph published. Also ceph requires
more horsepower than is typically available on armhf machines.
We are dropping armhf support for now. arm64 is still supported.
this commit will ensure that any concurrency during the go build only happens across platforms, and no concurrent calls to go build or go install happen for a given platform.
the goal here is to reduce races between concurrent invocations of go build where package files are removed form the file system leading to "can't find import" errors.
refactor integration tests splitting out the kubernetes
cluster setup to just be in a script and making it the reponsibility
of the host/user/jenkins.
integration tests now run just like unit tests using "go test".
inital commit to convert release scripts to makefiles for improved maintenance.
now publishing to docker hub including manifest list support.
initial attempt at reworking the jenkinsfile to pipeline syntax.