d2iq-archive / universe

The Mesosphere Universe package repository.
http://mesosphere.github.io/universe
Apache License 2.0
307 stars 427 forks source link

Ceph package is broken. #1425

Closed minyk closed 4 years ago

minyk commented 7 years ago

The package needs a file from https://dl.bintray.com/vivint-smarthome/ceph-on-mesos/ceph-on-mesos-0.2.11.tgz, but it's response is forbidden.

bergerx commented 7 years ago

This broken link in package caused us to spend a couple of days to reach a state just to test the framework, check this discussion for the root cause of the "forbidden" issue: https://dcos-community.slackarchive.io/storage/page-25/ts-1504190894000515

We then had to spend good amount of time and effort to compile the framework due to several make and sbt issues until we are able to compile it ourselves.

joerg84 commented 7 years ago

@bergerx Should we host the file somewhere else? Can you share your changes so I can recompile?

minyk commented 7 years ago

Just for information, ceph-on-mesos cannot deploy ceph luminous version because luminous needs ceph-mgr daemon for cluster setup. But kraken is deployable.

bergerx commented 7 years ago

@joerg84 Hosting file in some other more reliable artifact store could be really helpful and just address this issue. It was Silvano from our team who compiled it for us you can find the compiled version here: https://github.com/Melozzola/ceph-on-mesos-0_2_11_tgz/raw/master/ceph-on-mesos-0.2.11.tgz

I'll try to find how he has compiled and share here.

But if I get it right the real issue about the framework is that it was written as a personal pet project and no longer maintained. There should be some kind of support/lifecycle management for packages.

bergerx commented 7 years ago

Below you can find a copy paste of compilation notes from our internal wiki, it was @Melozzola who did the hard work putting these together.

Build ceph-on-mesos

The first step is to install sbt. For mac I used homebrew

brew install sbt@0.13

The second step is to install ensime. In your ~/.sbt/0.13/plugins/plugins.sbt add

addSbtPlugin("org.ensime" % "sbt-ensime" % "1.12.14")

If the file is not there, create it.

The third step is to clone the git repository

git clone https://github.com/vivint-smarthome/ceph-on-mesos.git

The git project uses git submodules, so you need to initialise those running

cd ceph-on-mesos
git submodules init
git submodules update

Change the ceph-on-mesos/build.sbt file (line 168) and replace the line

ProjectRef(uri("git://github.com/timcharper/scalajs-react-bridge.git"), "scalajs-react-bridge"))

with

ProjectRef(uri("https://github.com/timcharper/scalajs-react-bridge.git"), "scalajs-react-bridge"))

Modify the ceph-on-mesos/project/plugins.sbt adding a few more repositories and bumping the version of the dependencies. The file should look like the following:

resolvers += Resolver.url("bintray-sbt-plugins", url("https://dl.bintray.com/sbt/sbt-plugin-releases/"))(Resolver.ivyStylePatterns)
resolvers += Resolver.sonatypeRepo("snapshots")
resolvers += Resolver.sonatypeRepo("releases")
addSbtPlugin("io.spray" % "sbt-revolver" % "0.9.0")
addSbtPlugin("com.typesafe.sbt" % "sbt-native-packager" % "1.2.2")
addSbtPlugin("org.scala-js" % "sbt-scalajs" % "0.6.20")

Make sure that you have the ceph-on-mesos/project/build.properties with

sbt.version=0.13.16

If not, just go ahead and create it. Finally you should be able to compile the project vit sbt. Launch the sbt console with

sbt

and then from the shell you can clean the project with

clean

you can compile running

compile

The projects uses submodules, and you need to generate the javascript ui with

ui/fullOptJS

To generate the distribution archive run

compile packageZipTarball