mesosphere / universe

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

issue when building universe server locally #887

Open aalfonso-stratio opened 7 years ago

aalfonso-stratio commented 7 years ago

Hello,

I am seeing an issue when building universe server locally. I clone the mesosphere/universe github repo and then I follow the instructions in the README:

Now, I run the docker image generated in my machine: docker run -dit -p 8080:80 mesosphere/universe-server:mesosphere-universe

The problem comes here. When I browse to: 'http://:8080/repo', I download a repo.zip file and unzip it. In repo/packages/C/confluent-connect, I would expect to see all available versions 0,1,2,3, but I only see version 0. It seems it is not adding all the versions where 'minDcosReleaseVersion' is set to '1.8'.

Is this the expected behavior? Because from the README I understand that http://:8080/repo would serve all the packages suitable for DCOS 1.8+.

When I browse to: 'http://:8080/repo-1.7', I see the same content in repo/packages/C/confluent-connect, only 0 folder, but this is what I would expect, as this repo should only contain packages suitable for DCOS 1.7.

Am I doing anything wrong? Am I not understanding the README correctly?

fersantxez commented 7 years ago

That's not the correct way to install an offline repo. You shouldn't browse to that address or download a zip file, but rather add the repo address as a new repository either in system/repositories in the DC/OS UI (or with dcos package repo add [--index=] from the CLI).

On Thu, Dec 22, 2016 at 8:12 AM, Antonio Alfonso Pujante < notifications@github.com> wrote:

Hello,

I am seeing an issue when building universe server locally. I clone the mesosphere/universe github repo and then I follow the instructions in the README:

-

I validate and build the universe artifacts scripts/build.sh

I build the universe server docker image DOCKER_TAG="mesosphere-universe" docker/server/build.bash

Now, I run the docker image generated in my machine: docker run -dit -p 8080:80 mesosphere/universe-server:mesosphere-universe

The problem comes here. When I browse to: 'http://:8080/repo', I download a repo.zip file and unzip it. In repo/packages/C/confluent-connect, I would expect to see all available versions 0,1,2,3, but I only see version 0. It seems it is not adding all the versions where 'minDcosReleaseVersion' is set to '1.8'.

Is this the expected behavior? Because from the README I understand that http://:8080/repo would serve all the packages suitable for DCOS 1.8+.

When I browse to: 'http://:8080/repo-1.7', I see the same content in repo/packages/C/confluent-connect, only 0 folder, but this is what I would expect, as this repo should only contain packages suitable for DCOS 1.7.

Am I doing anything wrong? Am I not understanding the README correctly?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/mesosphere/universe/issues/887, or mute the thread https://github.com/notifications/unsubscribe-auth/AEEZTkHYhZQIZOXbMmLLto1c1i0r3ARKks5rKndNgaJpZM4LT97e .

-- Fernando Sanchez Sales Engineer Mesosphere

aalfonso-stratio commented 7 years ago

Downloading the zip file was a quick way to check what is gonna be served when I add it to the cluster in either of the two ways you comment.

When I add the repo as you comment, I see the same behavior, the packages marked with 'minDcosReleaseVersion' equal to '1.8' are not listed in the universe list.

I have a 1.8.4 DC/OS cluster and I add the repo with priority 0 and url http;//"my-machine-ip":8080/repo

fersantxez commented 7 years ago

That doesn't look like a valid URL. It'd be http://IP_address_of_the_node_where_your_offline_universe_repo_is_running:port /repo

Please refer to: https://docs.mesosphere.com/1.8/administration/installing/deploying-a-local-dcos-universe/

On Thu, Dec 22, 2016 at 9:36 AM, Antonio Alfonso Pujante < notifications@github.com> wrote:

Downloading the zip file was a quick way to check what is gonna be served when I add it to the cluster in either of the two ways you comment.

When I add the repo as you comment, I see the same behavior, the packages marked with 'minDcosReleaseVersion' equal to '1.8' are not listed in the universe list.

I have a 1.8.4 DC/OS cluster and I add the repo with priority 0 and url http;//:8080/repo

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/mesosphere/universe/issues/887#issuecomment-268811880, or mute the thread https://github.com/notifications/unsubscribe-auth/AEEZTsFvoMK6sZbk7LCQV09SDHg0aCjFks5rKor0gaJpZM4LT97e .

-- Fernando Sanchez Sales Engineer Mesosphere

aalfonso-stratio commented 7 years ago

But I am not using an offline universe. I am using the instructions in the README of this repo to build a universe server locally. In this way, a new docker image is created and I run it in my own system (which is reachable from the cluster), instead of running it inside the cluster itself, that is why I use my system ip and no the ip of a system inside the cluster.

aalfonso-stratio commented 7 years ago

Actually, you can serve an offline universe from a system outside the cluster, as long as it is reachable by the nodes in the cluster.

fersantxez commented 7 years ago

I am failing to follow. If you're deploying a universe on a docker image, independently of whether that image is running, you are indeed running what we call an offline universe. As opposed to using the "online universe" at https://universe.mesosphere.com/repo

Please refer to: https://docs.mesosphere.com/1.8/administration/installing/ deploying-a-local-dcos-universe/

On Thu, Dec 22, 2016 at 10:09 AM, Antonio Alfonso Pujante < notifications@github.com> wrote:

Actually, you can serve an offline universe from a system outside the cluster, as long as it is reachable by the nodes in the cluster.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/mesosphere/universe/issues/887#issuecomment-268818791, or mute the thread https://github.com/notifications/unsubscribe-auth/AEEZToI4LoqykiHx77VBIO4LsYyxtnwyks5rKpLAgaJpZM4LT97e .

-- Fernando Sanchez Sales Engineer Mesosphere

aalfonso-stratio commented 7 years ago

I am following these instructions from the README of this repo and I quote:

"Repository Consumption

In order for Universe to be consumed by DC/OS the build process needs to be run to create the Universe Server.

Universe Server

Universe Server is a new component introduce alongside packagingVersion 3.0. In order for Universe to be able to provide packages for many versions of DC/OS at the same time, it is necessary for a server to be responsible for serving the correct set of packages to a cluster based on the cluster's version.

All Pull Requests opened for Universe and the version-3.x branch will have their Docker image built and published to the DockerHub image mesosphere/universe-server. In the artifacts tab of the build results you can find docker/server/marathon.json which can be used to run the Universe Server for testing in your DC/OS cluster. For each Pull Request, click the details link of the "Universe Server Docker image" status report to view the build results.

Build Universe Server locally

Validate and build the Universe artifacts

scripts/build.sh Build the Universe Server Docker image

DOCKER_TAG="my-package" docker/server/build.bash This will create a Docker image universe-server:my-package and docker/server/target/marathon.json on your local machine

If you would like to publish the built Docker image, run

DOCKER_TAG="my-package" docker/server/build.bash publish Run Universe Server

Using the marathon.json that is created when building Universe Server we can run a Universe Server in our DC/OS Cluster which can then be used to install packages.

Run the following commands to configure DC/OS to use the custom Universe Server (DC/OS 1.8+):

dcos marathon app add marathon.json dcos package repo add --index=0 dev-universe http://universe.marathon.mesos:8085/repo For DC/OS 1.7, a different URL must be used:

dcos marathon app add marathon.json dcos package repo add --index=0 dev-universe http://universe.marathon.mesos:8085/repo-1.7"

So what I am doing is generating the docker universe server using my own tag with 'DOCKER_TAG="mesosphere-universe" docker/server/build.bash' as commented in your instructions.

And then instead of doing 'dcos marathon app add marathon.json' that basically tells marathon to create a docker in one of the nodes of the cluster to serve the universe, I run the docker in my machine with 'docker run -dit -p 8080:80 mesosphere/universe-server:mesosphere-universe'.

And finally I add the repository to the cluster pointing to my machine. And as explained in the README I would expect to see packages for 1.8, but this is not the case.