Details

    • Type: Task
    • Status: Resolved
    • Resolution: Done
    • Affects Version/s: None
    • Fix Version/s: 0.9.0
    • Component/s: None
    • Labels:

      Description

      For review.

      Supersedes MGI-362
      See issue MGI-359

      Note that build failures are due to the unavailability of the mesos-0.20.0.jar. To test locally, it's necessary to build a recent mesos and manually install it in to your local maven repository.

      Testing:
      1. Build a recent (0.20) Mesos

         $ cd <mesos-project-dir>
         $ mkdir build && cd build
         $ ../configure --disable-python
         $ make && make install
         

      2. Add the Mesos Java artifact to your local maven repository

         $ cd <mesos-project-dir>/build/src/java
         $ mvn install:install-file -Dfile=target/mesos-0.20.0.jar -DpomFile=mesos.pom
         

      3. Check out this branch of Marathon

         $ git clone git@github.com:mesosphere/marathon.git && cd marathon
         $ git checkout mesos-command-health-checks
         

      4. Build Marathon

         $ sbt clean assembly
         

      5. Start ZK

         $ sudo zkServer start
         

      6. Start the mesos master and slave

         $ sudo mesos-master --zk=zk://localhost:2181/mesos --work_dir=/var/log/mesos --quorum=1
         $ sudo mesos-slave --master=zk://localhost:2181/mesos
         

      7. Run Marathon with executor health checks enabled

         $ bin/start --master zk://localhost:2181/mesos --zk zk://localhost:2181/marathon --executor_health_checks
         

      8. Start an app with a command health check defined

         $ http -v POST localhost:8080/v2/apps < toggle-command.json
         

      listing: toggle-command.json

       json
         {
           "id": "toggle",
           "cmd": "python toggle.py $PORT0",
           "cpus": 0.2,
           "disk": 0.0,
           "healthChecks": [
             {
               "protocol": "COMMAND",
               "command": { "value": "env && http http://$HOST:$PORT0/" }
             }
           ],
           "instances": 2,
           "mem": 32.0,
           "ports": [0],
           "uris": ["http://downloads.mesosphere.io/misc/toggle.tgz"]
         }
         

      9. Monitor the health status as reported by the Marathon API

         $ http GET localhost:8080/v2/apps/toggle/tasks
         

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              GitHub_ConnorDoyle Connor Doyle (Inactive)
              Team:
              Orchestration Team
              Watchers:
            • Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: